Skip to content

Commit 471e12b

Browse files
committed
!fixup restructure op handling a bit
1 parent bac893f commit 471e12b

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4274,16 +4274,17 @@ static bool canNarrowOps(ArrayRef<VPValue *> Ops) {
42744274
if (!WideMember0)
42754275
return false;
42764276

4277+
for (const auto &[_, V] : enumerate(Ops)) {
4278+
auto *R = dyn_cast<VPWidenRecipe>(V);
4279+
if (!R || R->getOpcode() != WideMember0->getOpcode() ||
4280+
R->getNumOperands() > 2)
4281+
return false;
4282+
}
4283+
42774284
for (unsigned Idx = 0; Idx != WideMember0->getNumOperands(); ++Idx) {
42784285
SmallVector<VPValue *> Ops0;
4279-
for (const auto &[I, V] : enumerate(Ops)) {
4280-
auto *R = dyn_cast_or_null<VPWidenRecipe>(V);
4281-
if (!R || R->getOpcode() != WideMember0->getOpcode() ||
4282-
R->getNumOperands() > 2)
4283-
return false;
4284-
4285-
Ops0.push_back(R->getOperand(Idx));
4286-
}
4286+
for (VPValue *Op : Ops)
4287+
Ops0.push_back(Op->getDefiningRecipe()->getOperand(Idx));
42874288
if (any_of(enumerate(Ops0), [WideMember0, Idx](const auto &P) {
42884289
const auto &[OpIdx, OpV] = P;
42894290
return !canNarrowLoad(WideMember0, Idx, OpV, OpIdx);

0 commit comments

Comments
 (0)