File tree Expand file tree Collapse file tree 1 file changed +8
-9
lines changed
llvm/lib/Transforms/Vectorize Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Original file line number Diff line number Diff line change @@ -1307,16 +1307,15 @@ void VPlanTransforms::addActiveLaneMask(
1307
1307
// / ...
1308
1308
// /
1309
1309
bool VPlanTransforms::addExplicitVectorLength (VPlan &Plan) {
1310
- // EVL transform doesn't support backends where EVL diffs from RuntimeVF
1311
- // in the second-to-last iteration.
1312
- // Return false if any recipes rely on RuntimeVF.
1313
- if (any_of (Plan.getVectorLoopRegion ()->getEntryBasicBlock ()->phis (),
1314
- [](VPRecipeBase &Phi) {
1315
- return (isa<VPWidenIntOrFpInductionRecipe>(&Phi) ||
1316
- isa<VPWidenPointerInductionRecipe>(&Phi));
1317
- }))
1318
- return false ;
1319
1310
VPBasicBlock *Header = Plan.getVectorLoopRegion ()->getEntryBasicBlock ();
1311
+ // The transform updates all users of inductions to work based on EVL, instead
1312
+ // of the VF directly. At the moment, widened inductions cannot be updated, so
1313
+ // bail out if the plan contains any.
1314
+ if (any_of (Header->phis (), [](VPRecipeBase &Phi) {
1315
+ return (isa<VPWidenIntOrFpInductionRecipe>(&Phi) ||
1316
+ isa<VPWidenPointerInductionRecipe>(&Phi));
1317
+ }))
1318
+ return false ;
1320
1319
auto *CanonicalIVPHI = Plan.getCanonicalIV ();
1321
1320
VPValue *StartV = CanonicalIVPHI->getStartValue ();
1322
1321
You can’t perform that action at this time.
0 commit comments