diff --git a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp index e060e7081042a..c436d8cd9032e 100644 --- a/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp +++ b/llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp @@ -2911,11 +2911,6 @@ void VPlanTransforms::replaceSymbolicStrides( const DenseMap &StridesMap) { // Replace VPValues for known constant strides guaranteed by predicate scalar // evolution. - auto CanUseVersionedStride = [&Plan](VPUser &U, unsigned) { - auto *R = cast(&U); - return R->getRegion() || - R->getParent() == Plan.getVectorLoopRegion()->getSinglePredecessor(); - }; ValueToSCEVMapTy RewriteMap; for (const SCEV *Stride : StridesMap.values()) { using namespace SCEVPatternMatch; @@ -2928,7 +2923,7 @@ void VPlanTransforms::replaceSymbolicStrides( auto *CI = Plan.getOrAddLiveIn(ConstantInt::get(Stride->getType(), *StrideConst)); if (VPValue *StrideVPV = Plan.getLiveIn(StrideV)) - StrideVPV->replaceUsesWithIf(CI, CanUseVersionedStride); + StrideVPV->replaceAllUsesWith(CI); // The versioned value may not be used in the loop directly but through a // sext/zext. Add new live-ins in those cases. @@ -2942,7 +2937,7 @@ void VPlanTransforms::replaceSymbolicStrides( APInt C = isa(U) ? StrideConst->sext(BW) : StrideConst->zext(BW); VPValue *CI = Plan.getOrAddLiveIn(ConstantInt::get(U->getType(), C)); - StrideVPV->replaceUsesWithIf(CI, CanUseVersionedStride); + StrideVPV->replaceAllUsesWith(CI); } RewriteMap[StrideV] = PSE.getSCEV(StrideV); }