[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