We can simplify ule/ugt -> eq/ne and we can remove the xor in some
cases of eq/ne.
icmp (X | Y) u<= X --> (X | Y) == X
icmp (X | Y) u> X --> (X | Y) != X
icmp (X | noundef Y) eq/ne X --> (X & noundef Y) eq/ne noundef Y
Differential D144610 Authored by goldstein.w.n on Feb 22 2023, 5:20 PM.
Details Summary We can simplify ule/ugt -> eq/ne and we can remove the xor in some icmp (X | Y) u<= X --> (X | Y) == X icmp (X | Y) u> X --> (X | Y) != X icmp (X | noundef Y) eq/ne X --> (X & noundef Y) eq/ne noundef Y
Diff Detail
Event Timelinegoldstein.w.n added a child revision: D145281: [InstCombine] Add transforms for `(icmp spred (or X, Y), X)`.Fri, Mar 3, 3:58 PM goldstein.w.n retitled this revision from [InstCombine] Add transforms for `(icmp (xor X, Y), X)` to [InstCombine] Add transforms for `(icmp upred (or X, Y), X)`.Fri, Mar 3, 4:01 PM
Revision Contents
Diff 502800 |