diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 09745ed6eac6a..b8dc8a21b43f0 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -9287,9 +9287,9 @@ isImpliedCondCommonOperandWithCR(CmpPredicate LPred, const ConstantRange &LCR, return Res; if (LPred.hasSameSign() ^ RPred.hasSameSign()) { LPred = LPred.hasSameSign() ? ICmpInst::getFlippedSignednessPredicate(LPred) - : static_cast(LPred); + : LPred.dropSameSign(); RPred = RPred.hasSameSign() ? ICmpInst::getFlippedSignednessPredicate(RPred) - : static_cast(RPred); + : RPred.dropSameSign(); return CRImpliesPred(ConstantRange::makeAllowedICmpRegion(LPred, LCR), RPred); }