[PATCH] D117365: [InstCombine] optimize icmp-ugt-ashr
Nadav Rotem via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 19 07:48:43 PST 2022
nadav added a comment.
@craig.topper Thank you for the review, and for writing the proof, of course. This is my understanding of the code and of your proof.
Your proof has two checks, which I added as comments.
;Assume: C + 1 == ((C+1 << y) >> y)
;Assume ((c +1 ) << y) != 127 -- only needed for the sgt case
The first check is implemented with the code:
APInt ShiftedC = (C + 1).shl(ShAmtVal) - 1;
if ((ShiftedC + 1).ashr(ShAmtVal) == (C + 1))
And the second one with:
!C.isMaxSignedValue() && (ShiftedC + 1).ashr(ShAmtVal) == (C + 1)
The code also has this check, which I removed, because the proof does not have this check:
!(C + 1).shl(ShAmtVal).isMinSignedValue()
Is this also your understanding, or did I miss something.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117365/new/
https://reviews.llvm.org/D117365
More information about the llvm-commits
mailing list