[llvm] [AArch64] Lower masked.expandload intrinsic using SVE2p2/SME2p2 EXPAND (PR #190999)

Kerry McLaughlin via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 10 09:12:41 PDT 2026


================
@@ -5128,6 +5133,18 @@ AArch64TTIImpl::getCostOfKeepingLiveOverCall(ArrayRef<Type *> Tys) const {
   return Cost;
 }
 
+bool AArch64TTIImpl::isLegalMaskedExpandLoad(Type *DataTy,
+                                             Align Alignment) const {
+  // Neon types should be scalarised when we are not choosing to use SVE.
+  if (useNeonVector(DataTy))
+    return false;
+
+  // Return true only if we are able to lower using the SVE2p2/SME2p2
+  // expand instruction.
+  return (ST->hasSVE2p2() && (!ST->isStreaming() || ST->hasSMEFA64())) ||
+         ST->hasSME2p2();
----------------
kmclaughlin-arm wrote:

There was no reason not to update this, I just missed it with the last commit.

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


More information about the llvm-commits mailing list