[llvm] [LV] Consider interleaving & tail-folding when -enable-wide-lane-mask=true (PR #163387)

Kerry McLaughlin via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 20 06:25:49 PDT 2025


================
@@ -6146,8 +6154,11 @@ bool AArch64TTIImpl::preferPredicateOverEpilogue(TailFoldingInfo *TFI) const {
   if (Required == TailFoldingOpts::Disabled)
     Required |= TailFoldingOpts::Simple;
 
-  if (!TailFoldingOptionLoc.satisfies(ST->getSVETailFoldingDefaultOpts(),
-                                      Required))
+  TailFoldingOpts DefaultOpts = ST->getSVETailFoldingDefaultOpts();
----------------
kmclaughlin-arm wrote:

Enabling wide lane masks should not force tail-folding to be used. The intention was just to allow tail-folding to be considered when the flag is passed, which is why I didn't update the name.

I didn't consider that we can already request tail-folding for different types of loops when I created this PR. I think a a better change would have been to have the `-enable-wide-lane-mask` flag imply `PredicateElseScalarEpilogue`.

Given that there are already flags which give more fine-grained control, I've removed the tail-folding changes from this PR. Enabling wide lane masks will instead just consider interleaving too, which there is otherwise no way to enable without forcing.

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


More information about the llvm-commits mailing list