diff options
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/VPlan.h | 12 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp | 2 |
2 files changed, 7 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Vectorize/VPlan.h b/llvm/lib/Transforms/Vectorize/VPlan.h index d76f739..009913f 100644 --- a/llvm/lib/Transforms/Vectorize/VPlan.h +++ b/llvm/lib/Transforms/Vectorize/VPlan.h @@ -2680,12 +2680,6 @@ public: return map_range(Operands, Fn); } - /// Returns true if \p VPV is uniform after vectorization. - bool isUniformAfterVectorization(VPValue *VPV) const { - auto RepR = dyn_cast_or_null<VPReplicateRecipe>(VPV->getDef()); - return !VPV->getDef() || (RepR && RepR->isUniform()); - } - /// Returns the VPRegionBlock of the vector loop. VPRegionBlock *getVectorLoopRegion() { return cast<VPRegionBlock>(getEntry()->getSingleSuccessor()); @@ -3061,6 +3055,12 @@ bool onlyFirstLaneUsed(VPValue *Def); /// create a new one. VPValue *getOrCreateVPValueForSCEVExpr(VPlan &Plan, const SCEV *Expr, ScalarEvolution &SE); + +/// Returns true if \p VPV is uniform after vectorization. +inline bool isUniformAfterVectorization(VPValue *VPV) { + auto RepR = dyn_cast_or_null<VPReplicateRecipe>(VPV->getDef()); + return !VPV->getDef() || (RepR && RepR->isUniform()); +} } // end namespace vputils } // end namespace llvm diff --git a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp index a8db508..5b98d7c 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanRecipes.cpp @@ -134,7 +134,7 @@ bool VPRecipeBase::mayHaveSideEffects() const { void VPLiveOut::fixPhi(VPlan &Plan, VPTransformState &State) { auto Lane = VPLane::getLastLaneForVF(State.VF); VPValue *ExitValue = getOperand(0); - if (Plan.isUniformAfterVectorization(ExitValue)) + if (vputils::isUniformAfterVectorization(ExitValue)) Lane = VPLane::getFirstLane(); Phi->addIncoming(State.get(ExitValue, VPIteration(State.UF - 1, Lane)), State.Builder.GetInsertBlock()); |
