[llvm] [AArch64] Account for fixed-SVE high-lane insertelement/extractelement costs (PR #219244)

Utpal Bora via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 2 08:50:59 PDT 2026


================
@@ -5744,12 +5759,16 @@ InstructionCost AArch64TTIImpl::getInterleavedMemoryOpCost(
   if (VecTy->isScalableTy() && !isPowerOf2_32(Factor))
     return InstructionCost::getInvalid();
 
+  auto MaxNativeInterleaveFactor = TLI->getMaxSupportedInterleaveFactor();
   // Vectorization for masked interleaved accesses is only enabled for scalable
-  // VF.
-  if (!VecTy->isScalableTy() && (UseMaskForCond || UseMaskForGaps))
+  // VF. For fixed-length SVE, avoid non-native interleave factor because
+  // the generic fallback costs wide fixed-vector shuffles too optimistically.
+  if (!VecTy->isScalableTy() && (UseMaskForCond || UseMaskForGaps ||
----------------
utpalbora wrote:

Updated. Thanks for the suggestion.

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


More information about the llvm-commits mailing list