llvm-project
79bf8c03 - [InstCombine] Fold select(X >s 0, 0, -X) | smax(X, 0) to abs(X) (#165200)

Commit
175 days ago
[InstCombine] Fold select(X >s 0, 0, -X) | smax(X, 0) to abs(X) (#165200) The IR pattern is compiled from OpenCL code: __builtin_astype(x > (uchar2)(0) ? x : -x, uchar2); where smax is created by foldSelectInstWithICmp + canonicalizeSPF. smax could also come from direct elementwise max call: int c = b > (int)(0) ? (int)(0) : -b; int d = __builtin_elementwise_max(b, (int)(0)); *a = c | d; https://alive2.llvm.org/ce/z/2-brvr https://alive2.llvm.org/ce/z/Dowjzk https://alive2.llvm.org/ce/z/kathwZ --------- Co-authored-by: Yingwei Zheng <dtcxzyw@qq.com> Co-authored-by: Matt Arsenault <arsenm2@gmail.com>
Author
Parents
Loading