[llvm] [AArch64] Allow unrolling of scalar epilogue loops (PR #151164)

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 31 01:04:15 PDT 2025


================
@@ -4905,14 +4905,17 @@ void AArch64TTIImpl::getUnrollingPreferences(
   // Disable partial & runtime unrolling on -Os.
   UP.PartialOptSizeThreshold = 0;
 
-  // No need to unroll auto-vectorized loops
-  if (findStringMetadataForLoop(L, "llvm.loop.isvectorized"))
-    return;
-
   // Scan the loop: don't unroll loops with calls as this could prevent
-  // inlining.
+  // inlining. Don't unroll auto-vectorized loops either, though do allow
+  // unrolling of the scalar remainder.
----------------
fhahn wrote:

One thing that we now may also allow to unroll is loops that are only interleaved by LV I think, but that was the same before, so should be fine for now.

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


More information about the llvm-commits mailing list