[llvm] [Intrinsics][AArch64] Add intrinsic to mask off aliasing vector lanes (PR #117007)

Sander de Smalen via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 1 03:19:37 PDT 2025


================
@@ -1899,6 +1899,16 @@ AArch64TargetLowering::AArch64TargetLowering(const TargetMachine &TM,
     }
   }
 
+  // Handle non-aliasing elements mask
+  if (Subtarget->hasSVE2() ||
+      (Subtarget->hasSME() && Subtarget->isStreaming())) {
+    for (auto VT : {MVT::v2i32, MVT::v4i16, MVT::v8i8, MVT::v16i8, MVT::nxv2i1,
+                    MVT::nxv4i1, MVT::nxv8i1, MVT::nxv16i1}) {
----------------
sdesmalen-arm wrote:

Please split this into two loops, one for scalable vectors (where the operation action should be `Legal`) and one for the fixed-length types (using `Custom`). Also add a FIXME that we need to support wider fixed-length types for when `msve-vector-bits` is used.

https://github.com/llvm/llvm-project/pull/117007


More information about the llvm-commits mailing list