aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/PrettyStackTrace.cpp
diff options
context:
space:
mode:
authorNoah Goldstein <goldstein.w.n@gmail.com>2023-02-16 21:49:06 -0600
committerNoah Goldstein <goldstein.w.n@gmail.com>2023-02-24 15:22:09 -0600
commit8c74c5402f6dd400163fed7c3b39a376fa9e9dc1 (patch)
tree59fa7d5b8adc1bd6fc4bb43780cd17a95b2ef8f5 /llvm/lib/Support/PrettyStackTrace.cpp
parent85e83058212b5c78f2a285182feb3ac77f189ba6 (diff)
downloadllvm-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