[llvm] [SCEV] Infer NUW on AR in getUDivExpr (PR #217133)
Ramkumar Ramachandra via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 19 03:59:32 PDT 2026
================
@@ -3536,11 +3538,9 @@ const SCEV *ScalarEvolution::getUDivExpr(SCEVUse LHS, SCEVUse RHS) {
// {X,+,N}/C --> {X/C,+,N/C} if safe and N/C can be folded.
const APInt &StepInt = Step->getAPInt();
const APInt &DivInt = RHSC->getAPInt();
- if (!StepInt.urem(DivInt) &&
- getZeroExtendExpr(AR, ExtTy) ==
- getAddRecExpr(getZeroExtendExpr(AR->getStart(), ExtTy),
- getZeroExtendExpr(Step, ExtTy),
- AR->getLoop(), SCEV::FlagAnyWrap)) {
+ bool HasNUW = hasFlags(proveNoUnsignedWrapViaInduction(AR),
+ SCEVNoWrapFlags::FlagNUW);
----------------
artagnon wrote:
Thanks, relevant to the singular small regression I'm looking at: https://github.com/dtcxzyw/llvm-opt-benchmark-nightly/pull/957/changes.
https://github.com/llvm/llvm-project/pull/217133
More information about the llvm-commits
mailing list