[llvm] [LoopVectorize] Generate wide active lane masks (PR #147535)

David Sherwood via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 14 06:19:55 PDT 2025


================
@@ -7328,7 +7332,10 @@ DenseMap<const SCEV *, Value *> LoopVectorizationPlanner::executePlan(
     VPlanTransforms::runPass(VPlanTransforms::addBranchWeightToMiddleTerminator,
                              BestVPlan, BestVF, VScale);
   }
-  VPlanTransforms::optimizeForVFAndUF(BestVPlan, BestVF, BestUF, PSE);
+  VPlanTransforms::optimizeForVFAndUF(
----------------
david-arm wrote:

Perhaps instead of passing in `DataAndControlFlowWithoutRuntimeCheck` to `optimizeForVFAndUF` and `simplifyBranchConditionForVFAndUF` you can just pass a `UseWideActiveLaneMask` flag instead and when calling `optimizeForVFAndUF`, i.e.

```
bool UseWideActiveLaneMask = EnableWideActiveLaneMask && ILV.Cost->getTailFoldingStyle() == TailFoldingStyle::DataAndControlFlowWithoutRuntimeCheck;
optimizeForVFAndUF(..., UseWideActiveLaneMask);
```

What do you think?

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


More information about the llvm-commits mailing list