[PATCH] D152068: [InstCombine] add overflow checking on AddSub `C-(X+C2) --> (C-C2)-X`

Kohei Asano via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Jun 3 17:54:54 PDT 2023


khei4 added a comment.

Thank you for the review!

> I don't think this proof is correct, because the sub nsw i8 %c1, %c2 will already be poison on overflow,

Seems so! The original assumption seemed to allow all c1 and c2. Thanks!



================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:2004
+      Res->setHasNoSignedWrap(I.hasNoSignedWrap() &&
+                              OBO1->hasNoUnsignedWrap() &&
+                              willNotOverflowSignedSub(C, C2, *Res));
----------------
nikic wrote:
> hasNoUnsignedWrap -> hasNoSignedWrap
Ah... Thanks!


================
Comment at: llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp:2005
+                              OBO1->hasNoUnsignedWrap() &&
+                              willNotOverflowSignedSub(C, C2, *Res));
+      return Res;
----------------
nikic wrote:
> `*Res` should be `I` here.
Seems reasonable!


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152068/new/

https://reviews.llvm.org/D152068



More information about the llvm-commits mailing list