File tree Expand file tree Collapse file tree 1 file changed +9
-8
lines changed
llvm/lib/Transforms/Vectorize Expand file tree Collapse file tree 1 file changed +9
-8
lines changed Original file line number Diff line number Diff line change @@ -4164,16 +4164,17 @@ static bool canNarrowOps(ArrayRef<VPValue *> Ops) {
41644164 if (!WideMember0)
41654165 return false ;
41664166
4167+ for (const auto &[_, V] : enumerate(Ops)) {
4168+ auto *R = dyn_cast<VPWidenRecipe>(V);
4169+ if (!R || R->getOpcode () != WideMember0->getOpcode () ||
4170+ R->getNumOperands () > 2 )
4171+ return false ;
4172+ }
4173+
41674174 for (unsigned Idx = 0 ; Idx != WideMember0->getNumOperands (); ++Idx) {
41684175 SmallVector<VPValue *> Ops0;
4169- for (const auto &[I, V] : enumerate(Ops)) {
4170- auto *R = dyn_cast_or_null<VPWidenRecipe>(V->getDefiningRecipe ());
4171- if (!R || R->getOpcode () != WideMember0->getOpcode () ||
4172- R->getNumOperands () > 2 )
4173- return false ;
4174-
4175- Ops0.push_back (R->getOperand (Idx));
4176- }
4176+ for (VPValue *Op : Ops)
4177+ Ops0.push_back (Op->getDefiningRecipe ()->getOperand (Idx));
41774178 if (any_of (enumerate(Ops0), [WideMember0, Idx](const auto &P) {
41784179 const auto &[OpIdx, OpV] = P;
41794180 return !canNarrowLoad (WideMember0, Idx, OpV, OpIdx);
You can’t perform that action at this time.
0 commit comments