umax(uadd.sat(X, Y), X) --> uadd.sat(X, Y)
umin(uadd.sat(X, Y), X) --> X
umax(usub.sat(X, Y), X) --> X
umin(usub.sat(X, Y), X) --> usub.sat(X, Y)
Differential D145457
[InstSimplify] Add simplifications for `umin/umax(uadd/usub.sat(X, Y), X)` goldstein.w.n on Mon, Mar 6, 6:07 PM. Authored by
Details umax(uadd.sat(X, Y), X) --> uadd.sat(X, Y) umin(uadd.sat(X, Y), X) --> X umax(usub.sat(X, Y), X) --> X umin(usub.sat(X, Y), X) --> usub.sat(X, Y)
Diff Detail
Event TimelineComment Actions I believe this is taking the wrong approach to these folds. What you want to implement is simplification for something like this: https://alive2.llvm.org/ce/z/f_Eg7U And then min/max simplification should fall out of that for free. |