[llvm] [IR] Remove pointer arguments from loop.dependence.{war|raw}.mask (PR #188248)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 13 03:19:24 PDT 2026
================
@@ -306,41 +306,53 @@ define <vscale x 16 x i1> @whilewr_badimm(ptr %a, ptr %b) {
; CHECK-NEXT: whilelo p0.b, xzr, x8
; CHECK-NEXT: ret
entry:
- %0 = call <vscale x 16 x i1> @llvm.loop.dependence.war.mask.nxv16i1(ptr %a, ptr %b, i64 3)
+ %0 = call <vscale x 16 x i1> @llvm.loop.dependence.war.mask.nxv16i1.i64(i64 %a, i64 %b, i64 3)
ret <vscale x 16 x i1> %0
}
-define <vscale x 8 x i1> @whilewr_extract_nxv8i1(ptr %a, ptr %b) {
+define <vscale x 8 x i1> @whilewr_extract_nxv8i1(i64 %a, i64 %b) {
; CHECK-LABEL: whilewr_extract_nxv8i1:
; CHECK: // %bb.0: // %entry
; CHECK-NEXT: whilewr p0.b, x0, x1
; CHECK-NEXT: punpklo p0.h, p0.b
; CHECK-NEXT: ret
entry:
- %0 = call <vscale x 8 x i1> @llvm.loop.dependence.war.mask.nxv8i1(ptr %a, ptr %b, i64 1)
+ %0 = call <vscale x 8 x i1> @llvm.loop.dependence.war.mask.nxv8i1.i64(i64 %a, i64 %b, i64 1)
ret <vscale x 8 x i1> %0
}
-define <vscale x 4 x i1> @whilewr_extract_nxv4i1(ptr %a, ptr %b) {
+define <vscale x 4 x i1> @whilewr_extract_nxv4i1(i64 %a, i64 %b) {
; CHECK-LABEL: whilewr_extract_nxv4i1:
; CHECK: // %bb.0: // %entry
; CHECK-NEXT: whilewr p0.b, x0, x1
; CHECK-NEXT: punpklo p0.h, p0.b
; CHECK-NEXT: punpklo p0.h, p0.b
; CHECK-NEXT: ret
entry:
- %0 = call <vscale x 4 x i1> @llvm.loop.dependence.war.mask.nxv4i1(ptr %a, ptr %b, i64 1)
+ %0 = call <vscale x 4 x i1> @llvm.loop.dependence.war.mask.nxv4i1.i64(i64 %a, i64 %b, i64 1)
ret <vscale x 4 x i1> %0
}
-define <vscale x 2 x i1> @whilewr_extract_nxv2i1(ptr %a, ptr %b) {
+define <vscale x 2 x i1> @whilewr_extract_nxv2i1(i64 %a, i64 %b) {
; CHECK-LABEL: whilewr_extract_nxv2i1:
; CHECK: // %bb.0: // %entry
; CHECK-NEXT: whilewr p0.s, x0, x1
; CHECK-NEXT: punpklo p0.h, p0.b
; CHECK-NEXT: ret
entry:
- %0 = call <vscale x 2 x i1> @llvm.loop.dependence.war.mask.nxv2i1(ptr %a, ptr %b, i64 4)
+ %0 = call <vscale x 2 x i1> @llvm.loop.dependence.war.mask.nxv2i1.i64(i64 %a, i64 %b, i64 4)
ret <vscale x 2 x i1> %0
}
+
+define <vscale x 4 x i1> @whilewr_i32_addresses(i32 %a, i32 %b) {
+; CHECK-LABEL: whilewr_i32_addresses:
+; CHECK: // %bb.0: // %entry
+; CHECK-NEXT: mov w8, w1
+; CHECK-NEXT: mov w9, w0
+; CHECK-NEXT: whilewr p0.s, x9, x8
+; CHECK-NEXT: ret
+entry:
+ %0 = call <vscale x 4 x i1> @llvm.loop.dependence.war.mask.nxv4i1.i64(i32 %a, i32 %b, i64 4)
----------------
fhahn wrote:
```suggestion
%0 = call <vscale x 4 x i1> @llvm.loop.dependence.war.mask.nxv4i1.i32(i32 %a, i32 %b, i64 4)
```
https://github.com/llvm/llvm-project/pull/188248
More information about the llvm-commits
mailing list