Home
last modified time | relevance | path

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

/external/llvm-project/llvm/unittests/Transforms/Vectorize/
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()
109 VPInstruction *CombinedStore = Slp.buildGraph(StoreRoot); in TEST_F()
111 EXPECT_EQ(VPInstruction::SLPStore, CombinedStore->getOpcode()); in TEST_F()
113 auto *CombinedAdd = cast<VPInstruction>(CombinedStore->getOperand(0)); in TEST_F()
116 auto *CombinedLoadA = cast<VPInstruction>(CombinedAdd->getOperand(0)); in TEST_F()
117 auto *CombinedLoadB = cast<VPInstruction>(CombinedAdd->getOperand(1)); in TEST_F()
118 EXPECT_EQ(VPInstruction::SLPLoad, CombinedLoadA->getOpcode()); in TEST_F()
119 EXPECT_EQ(VPInstruction::SLPLoad, CombinedLoadB->getOpcode()); in TEST_F()
176 VPInstruction *Store1 = cast<VPInstruction>(&*std::next(Body->begin(), 12)); in TEST_F()
[all …]
DVPlanTest.cpp21 std::vector<VPInstruction *> Tmp = {__VA_ARGS__}; \
29 VPInstruction *I1 = new VPInstruction(0, {}); in TEST()
30 VPInstruction *I2 = new VPInstruction(1, {}); in TEST()
31 VPInstruction *I3 = new VPInstruction(2, {}); in TEST()
44 VPInstruction *I1 = new VPInstruction(0, {}); in TEST()
45 VPInstruction *I2 = new VPInstruction(1, {}); in TEST()
46 VPInstruction *I3 = new VPInstruction(2, {}); in TEST()
64 VPInstruction *I1 = new VPInstruction(0, {}); in TEST()
65 VPInstruction *I2 = new VPInstruction(1, {}); in TEST()
66 VPInstruction *I3 = new VPInstruction(2, {}); in TEST()
[all …]
DVPlanPredicatorTest.cpp87 VPInstruction *InnerAnd = in TEST_F()
88 cast<VPInstruction>(InnerIf->getEntryBasicBlock()->begin()); in TEST_F()
187 VPInstruction *And = in TEST_F()
188 cast<VPInstruction>(InnerIfTSucc->getEntryBasicBlock()->begin()); in TEST_F()
189 VPInstruction *Not = in TEST_F()
190 cast<VPInstruction>(InnerIfFSucc->getEntryBasicBlock()->begin()); in TEST_F()
191 VPInstruction *NotAnd = cast<VPInstruction>( in TEST_F()
193 VPInstruction *Or = in TEST_F()
194 cast<VPInstruction>(TSuccSucc->getEntryBasicBlock()->begin()); in TEST_F()
205 EXPECT_EQ(Not->getOpcode(), VPInstruction::Not); in TEST_F()
[all …]
DVPlanHCFGTest.cpp57 VPInstruction *Phi = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
60 VPInstruction *Idx = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
65 VPInstruction *Load = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
70 VPInstruction *Add = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
75 VPInstruction *Store = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
81 VPInstruction *IndvarAdd = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
86 VPInstruction *ICmp = dyn_cast<VPInstruction>(&*Iter++); in TEST_F()
/external/swiftshader/third_party/llvm-10.0/llvm/lib/Transforms/Vectorize/
DVPlanSLP.cpp50 VPInstruction *VPlanSlp::markFailed() { in markFailed()
57 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { in addCombined()
59 return cast<VPInstruction>(V)->getUnderlyingInstr(); in addCombined()
63 Type *T = cast<VPInstruction>(V)->getUnderlyingInstr()->getType(); in addCombined()
79 return Op && isa<VPInstruction>(Op) && in areVectorizable()
80 cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable()
91 cast<VPInstruction>(Operands[0])->getUnderlyingInstr(); in areVectorizable()
95 const Instruction *I = cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable()
105 return cast<VPInstruction>(Op)->getParent() != &this->BB; in areVectorizable()
123 VPBasicBlock *Parent = cast<VPInstruction>(Operands[0])->getParent(); in areVectorizable()
[all …]
DLoopVectorizationPlanner.h40 VPInstruction *createInstruction(unsigned Opcode, in createInstruction()
42 VPInstruction *Instr = new VPInstruction(Opcode, Operands); in createInstruction()
48 VPInstruction *createInstruction(unsigned Opcode, in createInstruction()
110 VPInstruction *insert(VPInstruction *I) const { in insert()
119 VPInstruction *NewVPInst = createInstruction(Opcode, Operands);
130 return createInstruction(VPInstruction::Not, {Operand}); in createNot()
DVPlan.cpp52 if (const VPInstruction *Instr = dyn_cast<VPInstruction>(&V)) in operator <<()
310 void VPInstruction::generateInstruction(VPTransformState &State, in generateInstruction()
323 case VPInstruction::Not: { in generateInstruction()
329 case VPInstruction::ICmpULE: { in generateInstruction()
349 void VPInstruction::execute(VPTransformState &State) { in execute()
355 void VPInstruction::print(raw_ostream &O, const Twine &Indent) const { in print()
361 void VPInstruction::print(raw_ostream &O) const { in print()
366 case VPInstruction::Not: in print()
369 case VPInstruction::ICmpULE: in print()
372 case VPInstruction::SLPLoad: in print()
[all …]
DVPlanHCFGBuilder.cpp97 assert(isa<VPInstruction>(VPVal) && "Expected VPInstruction for phi node."); in fixPhiNodes()
98 auto *VPPhi = cast<VPInstruction>(VPVal); in fixPhiNodes()
213 VPInstruction *NewVPInst; in createVPInstructionsForVPBB()
218 NewVPInst = cast<VPInstruction>(VPIRBuilder.createNaryOp( in createVPInstructionsForVPBB()
230 NewVPInst = cast<VPInstruction>( in createVPInstructionsForVPBB()
DVPlan.h652 class VPInstruction : public VPUser, public VPRecipeBase {
680 VPInstruction(unsigned Opcode, ArrayRef<VPValue *> Operands) in VPInstruction() function
684 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands) in VPInstruction() function
685 : VPInstruction(Opcode, ArrayRef<VPValue *>(Operands)) {} in VPInstruction()
692 VPInstruction *clone() const { in clone()
694 return new VPInstruction(Opcode, Operands); in clone()
1639 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *>
1645 InterleaveGroup<VPInstruction> *>;
1660 SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
1671 InterleaveGroup<VPInstruction> *
[all …]
DVPlanTransforms.cpp49 VPInstruction *VPInst = cast<VPInstruction>(Ingredient); in VPInstructionsToVPRecipes()
DLoopVectorize.cpp6754 BlockMask = Builder.createNaryOp(VPInstruction::ICmpULE, {IV, BTC}); in createBlockInMask()
/external/llvm-project/llvm/lib/Transforms/Vectorize/
DVPlanSLP.cpp50 VPInstruction *VPlanSlp::markFailed() { in markFailed()
57 void VPlanSlp::addCombined(ArrayRef<VPValue *> Operands, VPInstruction *New) { in addCombined()
59 return cast<VPInstruction>(V)->getUnderlyingInstr(); in addCombined()
63 Type *T = cast<VPInstruction>(V)->getUnderlyingInstr()->getType(); in addCombined()
79 return Op && isa<VPInstruction>(Op) && in areVectorizable()
80 cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable()
91 cast<VPInstruction>(Operands[0])->getUnderlyingInstr(); in areVectorizable()
95 const Instruction *I = cast<VPInstruction>(Op)->getUnderlyingInstr(); in areVectorizable()
105 return cast<VPInstruction>(Op)->getParent() != &this->BB; in areVectorizable()
123 VPBasicBlock *Parent = cast<VPInstruction>(Operands[0])->getParent(); in areVectorizable()
[all …]
DVPlan.cpp53 const VPInstruction *Instr = dyn_cast<VPInstruction>(&V); in operator <<()
73 if (const VPInstruction *Instr = dyn_cast<VPInstruction>(this)) in print()
80 const VPInstruction *Instr = dyn_cast<VPInstruction>(this); in dump()
94 if (auto *U = dyn_cast<VPInstruction>(this)) in toVPUser()
122 if (auto *V = dyn_cast<VPInstruction>(this)) in toVPValue()
142 if (auto *V = dyn_cast<VPInstruction>(this)) in toVPValue()
475 void VPInstruction::generateInstruction(VPTransformState &State, in generateInstruction()
488 case VPInstruction::Not: { in generateInstruction()
494 case VPInstruction::ICmpULE: { in generateInstruction()
509 case VPInstruction::ActiveLaneMask: { in generateInstruction()
[all …]
DLoopVectorizationPlanner.h44 VPInstruction *createInstruction(unsigned Opcode, in createInstruction()
46 VPInstruction *Instr = new VPInstruction(Opcode, Operands); in createInstruction()
52 VPInstruction *createInstruction(unsigned Opcode, in createInstruction()
114 VPInstruction *insert(VPInstruction *I) const { in insert()
123 VPInstruction *NewVPInst = createInstruction(Opcode, Operands);
134 return createInstruction(VPInstruction::Not, {Operand}); in createNot()
DVPlanHCFGBuilder.cpp97 assert(isa<VPInstruction>(VPVal) && "Expected VPInstruction for phi node."); in fixPhiNodes()
98 auto *VPPhi = cast<VPInstruction>(VPVal); in fixPhiNodes()
213 VPInstruction *NewVPInst; in createVPInstructionsForVPBB()
218 NewVPInst = cast<VPInstruction>(VPIRBuilder.createNaryOp( in createVPInstructionsForVPBB()
230 NewVPInst = cast<VPInstruction>( in createVPInstructionsForVPBB()
DVPlan.h741 class VPInstruction : public VPUser, public VPValue, public VPRecipeBase {
766 VPInstruction(unsigned Opcode, ArrayRef<VPValue *> Operands) in VPInstruction() function
770 VPInstruction(unsigned Opcode, std::initializer_list<VPValue *> Operands) in VPInstruction() function
771 : VPInstruction(Opcode, ArrayRef<VPValue *>(Operands)) {} in VPInstruction()
778 VPInstruction *clone() const { in clone()
780 return new VPInstruction(Opcode, Operands); in clone()
1986 DenseMap<VPInstruction *, InterleaveGroup<VPInstruction> *>
1992 InterleaveGroup<VPInstruction> *>;
2007 SmallPtrSet<InterleaveGroup<VPInstruction> *, 4> DelSet;
2018 InterleaveGroup<VPInstruction> *
[all …]
DVPlanTransforms.cpp49 VPInstruction *VPInst = cast<VPInstruction>(Ingredient); in VPInstructionsToVPRecipes()
DLoopVectorize.cpp7938 BlockMask = Builder.createNaryOp(VPInstruction::ActiveLaneMask, {IV}); in createBlockInMask()
7940 BlockMask = Builder.createNaryOp(VPInstruction::ICmpULE, {IV, BTC}); in createBlockInMask()
/external/llvm-project/llvm/docs/Proposals/
DVectorizationPlan.rst162 :VPInstruction:
163 A VPInstruction is both a VPRecipe and a VPUser. It models a single