Home
last modified time | relevance | path

Searched refs:VPV (Results 1 – 7 of 7) sorted by relevance

/freebsd/contrib/llvm-project/llvm/lib/Transforms/Vectorize/
H A DVPlanUtils.h42 inline bool isSingleScalar(const VPValue *VPV) { in isSingleScalar() argument
59 if (VPV->isLiveIn()) in isSingleScalar()
62 if (auto *Rep = dyn_cast<VPReplicateRecipe>(VPV)) { in isSingleScalar()
73 VPWidenSelectRecipe>(VPV)) in isSingleScalar()
74 return all_of(VPV->getDefiningRecipe()->operands(), isSingleScalar); in isSingleScalar()
75 if (auto *WidenR = dyn_cast<VPWidenRecipe>(VPV)) { in isSingleScalar()
79 if (auto *VPI = dyn_cast<VPInstruction>(VPV)) in isSingleScalar()
85 return isa<VPExpandSCEVRecipe>(VPV); in isSingleScalar()
H A DVPlanTransforms.cpp59 VPValue *VPV = Ingredient.getVPSingleValue(); in tryToConvertVPInstructionsToVPRecipes() local
60 if (!VPV->getUnderlyingValue()) in tryToConvertVPInstructionsToVPRecipes()
63 Instruction *Inst = cast<Instruction>(VPV->getUnderlyingValue()); in tryToConvertVPInstructionsToVPRecipes()
114 VPV->replaceAllUsesWith(NewRecipe->getVPSingleValue()); in tryToConvertVPInstructionsToVPRecipes()
710 static VPWidenInductionRecipe *getOptimizableIVOf(VPValue *VPV) { in getOptimizableIVOf() argument
711 auto *WideIV = dyn_cast<VPWidenInductionRecipe>(VPV); in getOptimizableIVOf()
720 VPRecipeBase *Def = VPV->getDefiningRecipe(); in getOptimizableIVOf()
737 return match(VPV, m_c_Binary<Instruction::Add>(m_Specific(WideIV), in getOptimizableIVOf()
740 return match(VPV, m_c_Binary<Instruction::FAdd>(m_Specific(WideIV), in getOptimizableIVOf()
743 return match(VPV, m_Binary<Instruction::FSub>(m_Specific(WideIV), in getOptimizableIVOf()
[all …]
H A DVPlanPatternMatch.h64 bool match(VPValue *VPV) const { return VPV == Val; } in match()
67 inline specificval_ty m_Specific(const VPValue *VPV) { return VPV; } in m_Specific() argument
97 bool match(VPValue *VPV) const { in match()
98 if (!VPV->isLiveIn()) in match()
100 Value *V = VPV->getLiveInIRValue(); in match()
H A DVPlanUnroll.cpp95 for (const auto &[Idx, VPV] : enumerate(OrigR->definedValues())) { in addRecipeForPart()
96 auto Ins = VPV2Parts.insert({VPV, {}}); in addRecipeForPart()
110 bool contains(VPValue *VPV) const { return VPV2Parts.contains(VPV); } in contains()
H A DVPlan.cpp948 for (VPValue *VPV : getLiveIns()) in ~VPlan()
949 delete VPV; in ~VPlan()
1445 static bool isDefinedInsideLoopRegions(const VPValue *VPV) { in isDefinedInsideLoopRegions() argument
1446 const VPRecipeBase *DefR = VPV->getDefiningRecipe(); in isDefinedInsideLoopRegions()
H A DVPlan.h4108 VPValue *VPV = new VPValue(V);
4109 VPLiveIns.push_back(VPV);
4110 assert(VPV->isLiveIn() && "VPV must be a live-in.");
4111 It->second = VPV;
H A DLoopVectorize.cpp9775 VPValue *VPV = Plan.getOrAddLiveIn(EPResumeVal); in preparePlanForEpilogueVectorLoop() local
9786 IV->setOperand(0, VPV); in preparePlanForEpilogueVectorLoop()