[llvm] [AArch64] Consider StreamingSVE in shouldExpandGetActiveLaneMask (PR #144722)
Kerry McLaughlin via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 20 07:43:17 PDT 2025
================
@@ -292,61 +293,117 @@ define <2 x i1> @lane_mask_v2i1_i64(i64 %index, i64 %TC) {
}
define <16 x i1> @lane_mask_v16i1_i8(i8 %index, i8 %TC) {
-; CHECK-LABEL: lane_mask_v16i1_i8:
-; CHECK: // %bb.0:
-; CHECK-NEXT: index z0.b, #0, #1
-; CHECK-NEXT: dup v1.16b, w0
-; CHECK-NEXT: uqadd v0.16b, v1.16b, v0.16b
-; CHECK-NEXT: dup v1.16b, w1
-; CHECK-NEXT: cmhi v0.16b, v1.16b, v0.16b
-; CHECK-NEXT: ret
+; CHECK-SVE-LABEL: lane_mask_v16i1_i8:
+; CHECK-SVE: // %bb.0:
+; CHECK-SVE-NEXT: index z0.b, #0, #1
+; CHECK-SVE-NEXT: dup v1.16b, w0
+; CHECK-SVE-NEXT: uqadd v0.16b, v1.16b, v0.16b
+; CHECK-SVE-NEXT: dup v1.16b, w1
+; CHECK-SVE-NEXT: cmhi v0.16b, v1.16b, v0.16b
+; CHECK-SVE-NEXT: ret
+;
+; CHECK-STREAMING-LABEL: lane_mask_v16i1_i8:
----------------
kmclaughlin-arm wrote:
I think this is happening because the `v16i8 uaddsat` is expanded before lowering with SVE instructions. I can try to address this in another patch.
https://github.com/llvm/llvm-project/pull/144722
More information about the llvm-commits
mailing list