Home
last modified time | relevance | path

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

/llvm-project-15.0.7/llvm/lib/Transforms/Vectorize/
H A DVPlanValue.h44 class VPValue {
116 : VPValue(VPValueSC, UV, Def) {} in VPValue() function
117 VPValue(const VPValue &) = delete;
118 VPValue &operator=(const VPValue &) = delete;
120 virtual ~VPValue();
216 SmallVector<VPValue *, 2> Operands;
245 for (VPValue *Op : operands()) in ~VPUser()
313 friend class VPValue; variable
322 void addDefinedValue(VPValue *V) { in addDefinedValue()
388 VPValue *getVPSingleValue() { in getVPSingleValue()
[all …]
H A DVPlan.h925 VPValue(VPValue::VPVWidenSC, &I, this) {} in VPWidenRecipe()
954 VPValue(VPValue::VPVWidenCallSC, &I, this) {} in VPWidenCallRecipe()
984 VPValue(VPValue::VPVWidenSelectSC, &I, this), in VPWidenSelectRecipe()
1020 VPValue(VPValue::VPVWidenGEPSC, GEP, this), in VPWidenGEPRecipe()
1378 VPValue(VPValue::VPVBlendSC, Phi, this), Phi(Phi) { in VPBlendRecipe()
1513 VPValue *ChainOp, VPValue *VecOp, VPValue *CondOp, in VPReductionRecipe()
1677 VPValue(VPValue::VPVPredInstPHI, nullptr, this) {} in VPPredInstPHIRecipe()
1733 new VPValue(VPValue::VPVMemoryInstructionSC, &Load, this);
1921 VPValue(VPValue::VPVWidenCanonicalIVSC, nullptr, this) {}
1969 VPValue *CanonicalIV, VPValue *Start, VPValue *Step, in VPScalarIVStepsRecipe()
[all …]
H A DVPlanSLP.cpp49 if (all_of(Operands, [](VPValue *V) { in addCombined()
53 for (VPValue *V : Operands) { in addCombined()
69 if (!all_of(Operands, [](VPValue *Op) { in areVectorizable()
153 static SmallVector<VPValue *, 4> getOperands(ArrayRef<VPValue *> Values, in getOperands()
155 SmallVector<VPValue *, 4> Operands; in getOperands()
156 for (VPValue *V : Values) { in getOperands()
170 getOperands(ArrayRef<VPValue *> Values) { in getOperands()
217 static unsigned getLAScore(VPValue *V1, VPValue *V2, unsigned MaxLevel, in getLAScore()
236 std::pair<VPlanSlp::OpMode, VPValue *>
264 VPValue *Best = nullptr; in getBest()
[all …]
H A DVPRecipeBuilder.h24 using VPRecipeOrVPValueTy = PointerUnion<VPRecipeBase *, VPValue *>;
49 DenseMap<std::pair<BasicBlock *, BasicBlock *>, VPValue *>;
50 using BlockMaskCacheTy = DenseMap<BasicBlock *, VPValue *>;
72 VPRecipeBase *tryToWidenMemory(Instruction *I, ArrayRef<VPValue *> Operands,
78 ArrayRef<VPValue *> Operands,
84 tryToOptimizeInductionTruncate(TruncInst *I, ArrayRef<VPValue *> Operands,
91 VPRecipeOrVPValueTy tryToBlend(PHINode *Phi, ArrayRef<VPValue *> Operands,
97 VPWidenCallRecipe *tryToWidenCall(CallInst *CI, ArrayRef<VPValue *> Operands,
121 ArrayRef<VPValue *> Operands,
137 VPValue *createBlockInMask(BasicBlock *BB, VPlanPtr &Plan);
[all …]
H A DLoopVectorizationPlanner.h48 ArrayRef<VPValue *> Operands, DebugLoc DL,
57 std::initializer_list<VPValue *> Operands,
59 return createInstruction(Opcode, ArrayRef<VPValue *>(Operands), DL, Name);
126 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands,
135 VPValue *createNaryOp(unsigned Opcode, ArrayRef<VPValue *> Operands,
140 VPValue *createNot(VPValue *Operand, DebugLoc DL, const Twine &Name = "") {
144 VPValue *createAnd(VPValue *LHS, VPValue *RHS, DebugLoc DL,
149 VPValue *createOr(VPValue *LHS, VPValue *RHS, DebugLoc DL,
154 VPValue *createSelect(VPValue *Cond, VPValue *TrueVal, VPValue *FalseVal,
H A DVPlanTransforms.cpp36 VPValue *VPV = Ingredient.getVPSingleValue(); in VPInstructionsToVPRecipes()
39 VPValue DummyValue; in VPInstructionsToVPRecipes()
50 VPValue *Step = in VPInstructionsToVPRecipes()
116 for (VPValue *Op : RepR->operands()) in sinkScalarOperands()
124 VPValue *C; in sinkScalarOperands()
186 VPValue *getPredicatedMask(VPRegionBlock *R) { in getPredicatedMask()
241 VPValue *Mask1 = getPredicatedMask(Region1); in mergeReplicateRegions()
267 VPValue *PredInst1 = in mergeReplicateRegions()
314 VPValue *FindMyCast = IV; in removeRedundantInductionCasts()
394 VPValue *Step = in optimizeInductions()
[all …]
H A DVPlanHCFGBuilder.cpp54 DenseMap<Value *, VPValue *> IRDef2VPValue;
69 VPValue *getOrCreateVPOperand(Value *IRVal);
97 VPValue *VPVal = IRDef2VPValue[Phi]; in fixPhiNodes()
181 VPValue *PlainCFGBuilder::getOrCreateVPOperand(Value *IRVal) { in getOrCreateVPOperand()
199 VPValue *NewVPVal = Plan.getOrAddExternalDef(IRVal); in getOrCreateVPOperand()
222 VPValue *Cond = getOrCreateVPOperand(Br->getCondition()); in createVPInstructionsForVPBB()
231 VPValue *NewVPV; in createVPInstructionsForVPBB()
242 SmallVector<VPValue *, 4> VPOperands; in createVPInstructionsForVPBB()
H A DVPlan.cpp75 VPValue::VPValue(const unsigned char SC, Value *UV, VPDef *Def) in VPValue() function in VPValue
81 VPValue::~VPValue() { in ~VPValue()
95 void VPValue::dump() const { in dump()
382 void VPBasicBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
499 void VPRegionBlock::dropAllReferences(VPValue *NewValue) { in dropAllReferences()
792 void VPlan::addLiveOut(PHINode *PN, VPValue *V) { in addLiveOut()
979 void VPValue::replaceAllUsesWith(VPValue *New) { in replaceAllUsesWith()
1068 void VPSlotTracker::assignSlot(const VPValue *V) { in assignSlot()
1089 for (VPValue *Def : Recipe.definedValues()) in assignSlots()
1093 bool vputils::onlyFirstLaneUsed(VPValue *Def) { in onlyFirstLaneUsed()
[all …]
H A DLoopVectorize.cpp2543 VPTransformState &State, VPValue *Addr, ArrayRef<VPValue *> StoredValues, in vectorizeInterleaveGroup()
2544 VPValue *BlockInMask) { in vectorizeInterleaveGroup()
2777 VPValue *Operand = I.value(); in scalarizeInstruction()
8009 VPValue *BlockMask = nullptr; in createBlockInMask()
8087 VPValue *Mask = nullptr; in tryToWidenMemory()
8131 VPValue *Step = in createWidenInductionRecipes()
8206 VPValue *InLoopVal = nullptr; in tryToBlend()
8230 VPValue *EdgeMask = in tryToBlend()
8492 VPValue *StartV = Operands[0]; in tryToCreateWidenRecipe()
9185 VPValue *Cond = in adjustRecipesForReductions()
[all …]
H A DVPlanRecipes.cpp134 VPValue *ExitValue = getOperand(0); in fixPhi()
413 for (const VPValue *Operand : operands()) { in print()
522 for (VPValue *VPOp : operands()) in execute()
720 VPValue *Operand = getOperand(I); in execute()
855 O, [&O, &SlotTracker](VPValue *Op) { in print()
876 VPValue *BlockInMask = getMask(); in execute()
1116 VPValue *StartVPV = getStartValue(); in execute()
H A DVPlanVerifier.cpp178 for (const VPValue *V : R.definedValues()) { in verifyVPBasicBlock()
/llvm-project-15.0.7/llvm/unittests/Transforms/Vectorize/
H A DVPlanTest.cpp130 VPValue *VPV1 = new VPValue(); in TEST()
131 VPValue *VPV2 = new VPValue(); in TEST()
139 VPValue *VPV3 = new VPValue(); in TEST()
156 VPValue *VPV4 = new VPValue(); in TEST()
176 VPValue *VPV1 = new VPValue(); in TEST()
177 VPValue *VPV2 = new VPValue(); in TEST()
181 VPValue *VPV3 = new VPValue(); in TEST()
222 VPValue *VPV1 = new VPValue(); in TEST()
223 VPValue *VPV2 = new VPValue(); in TEST()
770 VPValue Op1; in TEST()
[all …]
H A DVPlanSlpTest.cpp108 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
182 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
252 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
316 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
325 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in checkReorderExample()
598 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
735 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
798 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
857 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
916 SmallVector<VPValue *, 4> StoreRoot = {Store1, Store2}; in TEST_F()
/llvm-project-15.0.7/llvm/docs/Proposals/
H A DVectorizationPlan.rst148 :VPValue: