diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-02-16 21:49:06 -0600 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-02-24 15:22:09 -0600 |
commit | 8c74c5402f6dd400163fed7c3b39a376fa9e9dc1 (patch) | |
tree | 59fa7d5b8adc1bd6fc4bb43780cd17a95b2ef8f5 /llvm/lib/Support/PrettyStackTrace.cpp | |
parent | 85e83058212b5c78f2a285182feb3ac77f189ba6 (diff) | |
download | llvm-8c74c5402f6dd400163fed7c3b39a376fa9e9dc1.zip llvm-8c74c5402f6dd400163fed7c3b39a376fa9e9dc1.tar.gz llvm-8c74c5402f6dd400163fed7c3b39a376fa9e9dc1.tar.bz2 |
Make `(and/or (icmp eq/ne A,C0), (icmp eq/ne A,C1))` where `IsPow(dif(C0,C1))` work for more patterns.
`(and/or (icmp eq/ne A,C0), (icmp eq/ne A,C1))` can be lowered to
`(icmp eq/ne (and (sub A, (smin C0, C1)), (not (sub (smax C0, C1), (smin C0, C1)))), 0)`
generically if `(sub (smax C0, C1), (smin C0,C1))` is a power of 2.
This covers the existing case of `(and/or (icmp eq/ne A, C_Pow2),(icmp eq/ne A, -C_Pow2))`
as well as other cases.
Alive2 Links:
EQ: https://alive2.llvm.org/ce/z/mLJiUW
NE: https://alive2.llvm.org/ce/z/TKnzUr
Differential Revision: https://reviews.llvm.org/D144283
Diffstat (limited to 'llvm/lib/Support/PrettyStackTrace.cpp')
0 files changed, 0 insertions, 0 deletions