[llvm] [ScalarEvolutionExpander] Don't drop nowrap flags on addrec expansion (PR #78199)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 15 12:57:26 PST 2024
================
@@ -1250,11 +1250,11 @@ Value *SCEVExpander::visitAddRecExpr(const SCEVAddRecExpr *S) {
// If this is a simple linear addrec, emit it now as a special case.
if (S->isAffine()) // {0,+,F} --> i*F
- return
- expand(SE.getTruncateOrNoop(
- SE.getMulExpr(SE.getUnknown(CanonicalIV),
- SE.getNoopOrAnyExtend(S->getOperand(1),
- CanonicalIV->getType())),
+ return expand(SE.getTruncateOrNoop(
+ SE.getMulExpr(
+ SE.getUnknown(CanonicalIV),
+ SE.getNoopOrAnyExtend(S->getOperand(1), CanonicalIV->getType()),
+ S->getNoWrapFlags(SCEV::FlagNW)),
----------------
nikic wrote:
This doesn't make sense. NW is only meaningful on addrecs, while you're applying it to a mul.
https://github.com/llvm/llvm-project/pull/78199
More information about the llvm-commits
mailing list