Skip to content

Commit c3d2af0

Browse files
committed
[VPlan] VPEVLBasedIVPHI is a VPSingleDefRecipe.
VPEVLBasedIVPHIRecipe inherits from VPSingleDefRecipe. Add VPEVLBasedIVPHISC to VPSingleDefRecipe::classof to make isa/dyn_cast & co work as expected. Split off #67934.
1 parent 8fd838a commit c3d2af0

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

llvm/lib/Transforms/Vectorize/VPlan.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,7 @@ class VPSingleDefRecipe : public VPRecipeBase, public VPValue {
841841
static inline bool classof(const VPRecipeBase *R) {
842842
switch (R->getVPDefID()) {
843843
case VPRecipeBase::VPDerivedIVSC:
844+
case VPRecipeBase::VPEVLBasedIVPHISC:
844845
case VPRecipeBase::VPExpandSCEVSC:
845846
case VPRecipeBase::VPInstructionSC:
846847
case VPRecipeBase::VPReductionSC:

llvm/unittests/Transforms/Vectorize/VPlanTest.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1530,5 +1530,13 @@ TEST(VPDoubleValueDefTest, traverseUseLists) {
15301530
EXPECT_EQ(&DoubleValueDef, I3.getOperand(0)->getDefiningRecipe());
15311531
}
15321532

1533+
TEST(VPRecipeTest, CastToVPSingleDefRecipe) {
1534+
VPValue Start;
1535+
VPEVLBasedIVPHIRecipe R(&Start, {});
1536+
VPRecipeBase *B = &R;
1537+
EXPECT_TRUE(isa<VPSingleDefRecipe>(B));
1538+
// TODO: check other VPSingleDefRecipes.
1539+
}
1540+
15331541
} // namespace
15341542
} // namespace llvm

0 commit comments

Comments
 (0)