[llvm] [ScalarEvolutionExpander] Don't drop nowrap flags on addrec expansion (PR #78199)
William Moses via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 15 10:29:29 PST 2024
https://github.com/wsmoses updated https://github.com/llvm/llvm-project/pull/78199
>From ba0a556a3d3079181ce42404bdf149a4f96d12e7 Mon Sep 17 00:00:00 2001
From: "William S. Moses" <gh at wsmoses.com>
Date: Mon, 15 Jan 2024 13:20:15 -0500
Subject: [PATCH] [ScalarEvolutionExpander] Don't drop nowrap flags on addrec
expansion
---
llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
index a1d7f0f9ba0f74..17a43c80c39b05 100644
--- a/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+++ b/llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
@@ -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)),
Ty));
// If this is a chain of recurrences, turn it into a closed form, using the
More information about the llvm-commits
mailing list