[llvm] [InstCombine] When -A + B both have nsw flag, set nsw flag. (PR #72127)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 14 08:36:48 PST 2023
================
@@ -1487,7 +1487,11 @@ Instruction *InstCombinerImpl::visitAdd(BinaryOperator &I) {
return BinaryOperator::CreateNeg(Builder.CreateAdd(A, B));
// -A + B --> B - A
- return BinaryOperator::CreateSub(RHS, A);
+ auto *Sub = BinaryOperator::CreateSub(RHS, A);
+ if (auto *Op1 = dyn_cast<BinaryOperator>(LHS)) {
+ Sub->setHasNoSignedWrap(I.hasNoSignedWrap() && Op1->hasNoSignedWrap());
+ }
----------------
Z572 wrote:
https://github.com/llvm/llvm-project/pull/72282
https://github.com/llvm/llvm-project/pull/72127
More information about the llvm-commits
mailing list