Home
last modified time | relevance | path

Searched refs:VPInstruction (Results 1 – 14 of 14) sorted by relevance

/llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/
H A DVPlanSlpTest.cpp104 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 DVPlanTest.cpp32 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 DVPlanHCFGTest.cpp63 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 DVPlanSLP.cpp41 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 DVPlanRecipes.cpp202 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 DLoopVectorizationPlanner.h47 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 DVPlan.cpp54 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 DVPlan.h827 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 DVPlanVerifier.cpp263 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 DVPlanHCFGBuilder.cpp224 new VPInstruction(VPInstruction::BranchOnCond, {Cond})); in createVPInstructionsForVPBB()
248 NewVPV = cast<VPInstruction>( in createVPInstructionsForVPBB()
H A DLoopVectorize.cpp8607 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 DVPlanValue.h47 friend class VPInstruction; variable
H A DVPlanTransforms.cpp59 assert(isa<VPInstruction>(&Ingredient) && in VPInstructionsToVPRecipes()
/llvm-project-15.0.7/llvm/docs/Proposals/
H A DVectorizationPlan.rst162 :VPInstruction:
163 A VPInstruction is both a VPRecipe and a VPUser. It models a single