Lines Matching refs:VPRecipeBase

345     BasicBlock *getPreheaderBBFor(VPRecipeBase *R);
370 SmallPtrSet<VPRecipeBase *, 16> MayGeneratePoisonRecipes;
659 class VPRecipeBase : public ilist_node_with_parent<VPRecipeBase, VPBasicBlock>,
669 VPRecipeBase(const unsigned char SC, ArrayRef<VPValue *> Operands) in VPRecipeBase() function
673 VPRecipeBase(const unsigned char SC, iterator_range<IterT> Operands) in VPRecipeBase() function
675 virtual ~VPRecipeBase() = default;
687 void insertBefore(VPRecipeBase *InsertPos);
690 void insertBefore(VPBasicBlock &BB, iplist<VPRecipeBase>::iterator IP);
694 void insertAfter(VPRecipeBase *InsertPos);
698 void moveAfter(VPRecipeBase *MovePos);
703 void moveBefore(VPBasicBlock &BB, iplist<VPRecipeBase>::iterator I);
712 iplist<VPRecipeBase>::iterator eraseFromParent();
754 return Def->getVPDefID() == VPRecipeBase::VPInstructionSC || in classof()
755 Def->getVPDefID() == VPRecipeBase::VPWidenSC || in classof()
756 Def->getVPDefID() == VPRecipeBase::VPWidenCallSC || in classof()
757 Def->getVPDefID() == VPRecipeBase::VPWidenSelectSC || in classof()
758 Def->getVPDefID() == VPRecipeBase::VPWidenGEPSC || in classof()
759 Def->getVPDefID() == VPRecipeBase::VPBlendSC || in classof()
760 Def->getVPDefID() == VPRecipeBase::VPInterleaveSC || in classof()
761 Def->getVPDefID() == VPRecipeBase::VPReplicateSC || in classof()
762 Def->getVPDefID() == VPRecipeBase::VPReductionSC || in classof()
763 Def->getVPDefID() == VPRecipeBase::VPBranchOnMaskSC || in classof()
764 Def->getVPDefID() == VPRecipeBase::VPWidenMemoryInstructionSC; in classof()
771 class VPInstruction : public VPRecipeBase, public VPValue {
814 : VPRecipeBase(VPRecipeBase::VPInstructionSC, Operands), in VPRecipeBase() function
834 return R->getVPDefID() == VPRecipeBase::VPInstructionSC; in classof()
840 auto *R = dyn_cast<VPRecipeBase>(U); in classof()
841 return R && R->getVPDefID() == VPRecipeBase::VPInstructionSC; in classof()
843 static inline bool classof(const VPRecipeBase *R) { in classof()
844 return R->getVPDefID() == VPRecipeBase::VPInstructionSC; in classof()
920 class VPWidenRecipe : public VPRecipeBase, public VPValue {
924 : VPRecipeBase(VPRecipeBase::VPWidenSC, Operands), in VPWidenRecipe()
931 return D->getVPDefID() == VPRecipeBase::VPWidenSC; in classof()
948 class VPWidenCallRecipe : public VPRecipeBase, public VPValue {
953 : VPRecipeBase(VPRecipeBase::VPWidenCallSC, CallArguments), in VPWidenCallRecipe()
960 return D->getVPDefID() == VPRecipeBase::VPWidenCallSC; in classof()
974 class VPWidenSelectRecipe : public VPRecipeBase, public VPValue {
983 : VPRecipeBase(VPRecipeBase::VPWidenSelectSC, Operands), in VPWidenSelectRecipe()
991 return D->getVPDefID() == VPRecipeBase::VPWidenSelectSC; in classof()
1005 class VPWidenGEPRecipe : public VPRecipeBase, public VPValue {
1012 : VPRecipeBase(VPRecipeBase::VPWidenGEPSC, Operands), in VPWidenGEPRecipe()
1019 : VPRecipeBase(VPRecipeBase::VPWidenGEPSC, Operands), in VPWidenGEPRecipe()
1031 return D->getVPDefID() == VPRecipeBase::VPWidenGEPSC; in classof()
1046 class VPWidenIntOrFpInductionRecipe : public VPRecipeBase, public VPValue {
1055 : VPRecipeBase(VPWidenIntOrFpInductionSC, {Start, Step}), in VPWidenIntOrFpInductionRecipe()
1062 : VPRecipeBase(VPWidenIntOrFpInductionSC, {Start, Step}), in VPWidenIntOrFpInductionRecipe()
1070 return D->getVPDefID() == VPRecipeBase::VPWidenIntOrFpInductionSC; in classof()
1123 class VPHeaderPHIRecipe : public VPRecipeBase, public VPValue {
1127 : VPRecipeBase(VPDefID, {}), VPValue(VPVID, Phi, this) {
1136 static inline bool classof(const VPRecipeBase *B) { in classof()
1137 return B->getVPDefID() == VPRecipeBase::VPCanonicalIVPHISC || in classof()
1138 B->getVPDefID() == VPRecipeBase::VPActiveLaneMaskPHISC || in classof()
1139 B->getVPDefID() == VPRecipeBase::VPFirstOrderRecurrencePHISC || in classof()
1140 B->getVPDefID() == VPRecipeBase::VPReductionPHISC || in classof()
1141 B->getVPDefID() == VPRecipeBase::VPWidenIntOrFpInductionSC || in classof()
1142 B->getVPDefID() == VPRecipeBase::VPWidenPHISC; in classof()
1177 VPRecipeBase *getBackedgeRecipe() { in getBackedgeRecipe()
1178 return cast<VPRecipeBase>(getBackedgeValue()->getDef()); in getBackedgeRecipe()
1209 static inline bool classof(const VPRecipeBase *B) { in classof()
1210 return B->getVPDefID() == VPRecipeBase::VPWidenPointerInductionSC; in classof()
1213 return R->getVPDefID() == VPRecipeBase::VPWidenPointerInductionSC; in classof()
1250 static inline bool classof(const VPRecipeBase *B) { in classof()
1251 return B->getVPDefID() == VPRecipeBase::VPWidenPHISC; in classof()
1254 return R->getVPDefID() == VPRecipeBase::VPWidenPHISC; in classof()
1291 static inline bool classof(const VPRecipeBase *R) { in classof()
1292 return R->getVPDefID() == VPRecipeBase::VPFirstOrderRecurrencePHISC; in classof()
1295 return R->getVPDefID() == VPRecipeBase::VPFirstOrderRecurrencePHISC; in classof()
1337 static inline bool classof(const VPRecipeBase *R) { in classof()
1338 return R->getVPDefID() == VPRecipeBase::VPReductionPHISC; in classof()
1341 return R->getVPDefID() == VPRecipeBase::VPReductionPHISC; in classof()
1369 class VPBlendRecipe : public VPRecipeBase, public VPValue {
1377 : VPRecipeBase(VPBlendSC, Operands), in VPBlendRecipe()
1387 return D->getVPDefID() == VPRecipeBase::VPBlendSC; in classof()
1424 class VPInterleaveRecipe : public VPRecipeBase {
1432 : VPRecipeBase(VPInterleaveSC, {Addr}), IG(IG) { in VPInterleaveRecipe()
1451 return D->getVPDefID() == VPRecipeBase::VPInterleaveSC; in classof()
1505 class VPReductionRecipe : public VPRecipeBase, public VPValue {
1515 : VPRecipeBase(VPRecipeBase::VPReductionSC, {ChainOp, VecOp}), in VPReductionRecipe()
1551 class VPReplicateRecipe : public VPRecipeBase, public VPValue {
1565 : VPRecipeBase(VPReplicateSC, Operands), VPValue(VPVReplicateSC, I, this), in VPRecipeBase() function
1579 return D->getVPDefID() == VPRecipeBase::VPReplicateSC; in classof()
1621 class VPBranchOnMaskRecipe : public VPRecipeBase {
1624 : VPRecipeBase(VPBranchOnMaskSC, {}) { in VPBranchOnMaskRecipe()
1631 return D->getVPDefID() == VPRecipeBase::VPBranchOnMaskSC; in classof()
1671 class VPPredInstPHIRecipe : public VPRecipeBase, public VPValue {
1676 : VPRecipeBase(VPPredInstPHISC, PredV), in VPPredInstPHIRecipe()
1682 return D->getVPDefID() == VPRecipeBase::VPPredInstPHISC; in classof()
1708 class VPWidenMemoryInstructionRecipe : public VPRecipeBase {
1730 : VPRecipeBase(VPWidenMemoryInstructionSC, {Addr}), Ingredient(Load), in VPWidenMemoryInstructionRecipe()
1740 : VPRecipeBase(VPWidenMemoryInstructionSC, {Addr, StoredValue}), in VPWidenMemoryInstructionRecipe()
1748 return D->getVPDefID() == VPRecipeBase::VPWidenMemoryInstructionSC; in classof()
1804 class VPExpandSCEVRecipe : public VPRecipeBase, public VPValue {
1810 : VPRecipeBase(VPExpandSCEVSC, {}), VPValue(nullptr, this), Expr(Expr), in VPExpandSCEVRecipe()
1917 class VPWidenCanonicalIVRecipe : public VPRecipeBase, public VPValue {
1920 : VPRecipeBase(VPWidenCanonicalIVSC, {CanonicalIV}), in VPWidenCanonicalIVRecipe()
1927 return D->getVPDefID() == VPRecipeBase::VPWidenCanonicalIVSC; in classof()
1933 auto *R = dyn_cast<VPRecipeBase>(U); in classof()
1934 return R && R->getVPDefID() == VPRecipeBase::VPWidenCanonicalIVSC; in classof()
1936 static inline bool classof(const VPRecipeBase *R) { in classof()
1937 return R->getVPDefID() == VPRecipeBase::VPWidenCanonicalIVSC; in classof()
1960 class VPScalarIVStepsRecipe : public VPRecipeBase, public VPValue {
1971 : VPRecipeBase(VPScalarIVStepsSC, {CanonicalIV, Start, Step}), in VPScalarIVStepsRecipe()
1979 return D->getVPDefID() == VPRecipeBase::VPScalarIVStepsSC; in classof()
1984 auto *R = dyn_cast<VPRecipeBase>(U); in classof()
1985 return R && R->getVPDefID() == VPRecipeBase::VPScalarIVStepsSC; in classof()
1987 static inline bool classof(const VPRecipeBase *R) { in classof()
1988 return R->getVPDefID() == VPRecipeBase::VPScalarIVStepsSC; in classof()
2021 using RecipeListTy = iplist<VPRecipeBase>;
2028 VPBasicBlock(const Twine &Name = "", VPRecipeBase *Recipe = nullptr)
2060 inline const VPRecipeBase &front() const { return Recipes.front(); } in front()
2061 inline VPRecipeBase &front() { return Recipes.front(); } in front()
2062 inline const VPRecipeBase &back() const { return Recipes.back(); } in back()
2063 inline VPRecipeBase &back() { return Recipes.back(); } in back()
2069 static RecipeListTy VPBasicBlock::*getSublistAccess(VPRecipeBase *) { in getSublistAccess() argument
2078 void insert(VPRecipeBase *Recipe, iterator InsertPt) { in insert()
2087 void appendRecipe(VPRecipeBase *Recipe) { insert(Recipe, end()); } in appendRecipe()
2123 VPRecipeBase *getTerminator();
2124 const VPRecipeBase *getTerminator() const;
2886 for (VPRecipeBase &R : make_early_inc_range(*VPBB))