[llvm] [AArch64][SVE] Enable max vector bandwidth for SVE (PR #109671)

Graham Hunter via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 23 08:34:22 PDT 2024


================
@@ -333,8 +333,10 @@ AArch64TTIImpl::getInlineCallPenalty(const Function *F, const CallBase &Call,
 bool AArch64TTIImpl::shouldMaximizeVectorBandwidth(
     TargetTransformInfo::RegisterKind K) const {
   assert(K != TargetTransformInfo::RGK_Scalar);
-  return (K == TargetTransformInfo::RGK_FixedWidthVector &&
-          ST->isNeonAvailable());
+  return ((K == TargetTransformInfo::RGK_FixedWidthVector &&
+           ST->isNeonAvailable()) ||
+          (K == TargetTransformInfo::RGK_ScalableVector &&
+           ST->isSVEorStreamingSVEAvailable()));
----------------
huntergr-arm wrote:

Doing that causes the vectorizer to maximize bandwidth in streaming-compatible-sve-no-maximize-bandwidth.ll, which was explicitly testing against that. @sdesmalen-arm how important is this reduced VF?

I guess we could do something like `return !ST->isStreaming() && !ST->isStreamingCompatible()` ?

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


More information about the llvm-commits mailing list