| /llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/ |
| H A D | VPlanSlpTest.cpp | 104 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12)); in TEST_F() 105 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14)); in TEST_F() 176 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12)); in TEST_F() 177 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 14)); in TEST_F() 195 VPInstruction *GetA = cast<VPInstruction>(&*std::next(Body->begin(), 1)); in TEST_F() 196 VPInstruction *GetB = cast<VPInstruction>(&*std::next(Body->begin(), 3)); in TEST_F() 248 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 8)); in TEST_F() 249 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10)); in TEST_F() 312 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 5)); in TEST_F() 313 VPInstruction *Store2 = cast<VPInstruction>(&*std::next(Body->begin(), 10)); in TEST_F() [all …]
|
| H A D | VPlanTest.cpp | 32 VPInstruction *I1 = new VPInstruction(0, {}); in TEST() 33 VPInstruction *I2 = new VPInstruction(1, {}); in TEST() 34 VPInstruction *I3 = new VPInstruction(2, {}); in TEST() 47 VPInstruction *I1 = new VPInstruction(0, {}); in TEST() 48 VPInstruction *I2 = new VPInstruction(1, {}); in TEST() 49 VPInstruction *I3 = new VPInstruction(2, {}); in TEST() 67 VPInstruction *I1 = new VPInstruction(0, {}); in TEST() 68 VPInstruction *I2 = new VPInstruction(1, {}); in TEST() 69 VPInstruction *I3 = new VPInstruction(2, {}); in TEST() 80 VPInstruction *I4 = new VPInstruction(4, {}); in TEST() [all …]
|
| H A D | VPlanHCFGTest.cpp | 63 VPInstruction *Idx = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 68 VPInstruction *Load = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 73 VPInstruction *Add = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 78 VPInstruction *Store = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 84 VPInstruction *IndvarAdd = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 89 VPInstruction *ICmp = dyn_cast<VPInstruction>(&*Iter++); in TEST_F() 194 EXPECT_NE(nullptr, dyn_cast<VPInstruction>(&*Iter++)); in TEST_F()
|
| /llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/ |
| H A D | VPlanSLP.cpp | 41 VPInstruction *VPlanSlp::markFailed() { in markFailed() 70 return Op && isa<VPInstruction>(Op) && in areVectorizable() 158 auto *U = cast<VPInstruction>(V); in getOperands() 172 auto *VPI = cast<VPInstruction>(Values[0]); in getOperands() 201 static bool areConsecutiveOrMatch(VPInstruction *A, VPInstruction *B, in areConsecutiveOrMatch() 219 auto *I1 = dyn_cast<VPInstruction>(V1); in getLAScore() 220 auto *I2 = dyn_cast<VPInstruction>(V2); in getLAScore() 248 auto *LastI = cast<VPInstruction>(Last); in getBest() 410 VPInstruction *Op = new VPInstruction(0, {}); in buildGraph() 447 Opcode = VPInstruction::SLPLoad; in buildGraph() [all …]
|
| H A D | VPlanRecipes.cpp | 202 case VPInstruction::Not: { in generateInstruction() 208 case VPInstruction::ICmpULE: { in generateInstruction() 297 case VPInstruction::BranchOnCond: { in generateInstruction() 356 void VPInstruction::dump() const { in dump() 371 case VPInstruction::Not: in print() 374 case VPInstruction::ICmpULE: in print() 377 case VPInstruction::SLPLoad: in print() 380 case VPInstruction::SLPStore: in print() 383 case VPInstruction::ActiveLaneMask: in print() 395 case VPInstruction::BranchOnCond: in print() [all …]
|
| H A D | LoopVectorizationPlanner.h | 47 VPInstruction *createInstruction(unsigned Opcode, 50 VPInstruction *Instr = new VPInstruction(Opcode, Operands, DL, Name); 56 VPInstruction *createInstruction(unsigned Opcode, 119 VPInstruction *insert(VPInstruction *I) const { in insert() 131 VPInstruction *NewVPInst = createInstruction(Opcode, Operands, DL, Name); 141 return createInstruction(VPInstruction::Not, {Operand}, DL, Name);
|
| H A D | VPlan.cpp | 54 const VPInstruction *Instr = dyn_cast<VPInstruction>(&V); in operator <<() 436 auto *VPI = dyn_cast<VPInstruction>(R); in hasConditionalTerminator() 580 static bool canSimplifyBranchOnCond(VPInstruction *Term) { in canSimplifyBranchOnCond() 581 VPInstruction *Not = dyn_cast<VPInstruction>(Term->getOperand(0)); in canSimplifyBranchOnCond() 582 if (!Not || Not->getOpcode() != VPInstruction::Not) in canSimplifyBranchOnCond() 585 VPInstruction *ALM = dyn_cast<VPInstruction>(Not->getOperand(0)); in canSimplifyBranchOnCond() 602 (Term->getOpcode() == VPInstruction::BranchOnCount || in prepareToExecute() 609 new VPInstruction(VPInstruction::BranchOnCond, in prepareToExecute() 650 auto *VPI = cast<VPInstruction>(U); in prepareToExecute() 1033 auto *VPInst = cast<VPInstruction>(&VPI); in visitBlock() [all …]
|
| H A D | VPlan.h | 827 VPInstruction *clone() const { in clone() 885 case VPInstruction::BranchOnCond: in hasResult() 886 case VPInstruction::BranchOnCount: in hasResult() 905 case VPInstruction::ActiveLaneMask: in onlyFirstLaneUsed() 906 case VPInstruction::CanonicalIVIncrement: in onlyFirstLaneUsed() 907 case VPInstruction::CanonicalIVIncrementNUW: in onlyFirstLaneUsed() 910 case VPInstruction::BranchOnCount: in onlyFirstLaneUsed() 2923 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *> 2955 InterleaveGroup<VPInstruction> * 2956 getInterleaveGroup(VPInstruction *Instr) const { [all …]
|
| H A D | VPlanVerifier.cpp | 263 auto *LastInst = dyn_cast<VPInstruction>(std::prev(Exiting->end())); in verifyPlanIsValid() 264 if (!LastInst || (LastInst->getOpcode() != VPInstruction::BranchOnCount && in verifyPlanIsValid() 265 LastInst->getOpcode() != VPInstruction::BranchOnCond)) { in verifyPlanIsValid()
|
| H A D | VPlanHCFGBuilder.cpp | 224 new VPInstruction(VPInstruction::BranchOnCond, {Cond})); in createVPInstructionsForVPBB() 248 NewVPV = cast<VPInstruction>( in createVPInstructionsForVPBB()
|
| H A D | LoopVectorize.cpp | 8607 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementNUW in addCanonicalIVRecipes() 8623 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementForPartNUW in addCanonicalIVRecipes() 8630 auto *EntryALM = new VPInstruction(VPInstruction::ActiveLaneMask, in addCanonicalIVRecipes() 8642 new VPInstruction(HasNUW ? VPInstruction::CanonicalIVIncrementForPartNUW in addCanonicalIVRecipes() 8647 auto *ALM = new VPInstruction(VPInstruction::ActiveLaneMask, in addCanonicalIVRecipes() 8655 auto *NotMask = new VPInstruction(VPInstruction::Not, ALM, DL); in addCanonicalIVRecipes() 8658 VPInstruction *BranchBack = in addCanonicalIVRecipes() 8659 new VPInstruction(VPInstruction::BranchOnCond, {NotMask}, DL); in addCanonicalIVRecipes() 8663 VPInstruction *BranchBack = new VPInstruction( in addCanonicalIVRecipes() 8664 VPInstruction::BranchOnCount, in addCanonicalIVRecipes() [all …]
|
| H A D | VPlanValue.h | 47 friend class VPInstruction; variable
|
| H A D | VPlanTransforms.cpp | 59 assert(isa<VPInstruction>(&Ingredient) && in VPInstructionsToVPRecipes()
|
| /llvm-project-15.0.7/llvm/docs/Proposals/ |
| H A D | VectorizationPlan.rst | 162 :VPInstruction: 163 A VPInstruction is both a VPRecipe and a VPUser. It models a single
|