aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/CodeGenPrepare.cpp
diff options
context:
space:
mode:
authorNoah Goldstein <goldstein.w.n@gmail.com>2024-06-08 14:22:37 -0500
committerNoah Goldstein <goldstein.w.n@gmail.com>2024-06-10 13:00:28 -0500
commit77f75b45fd8a4bbc061e85a4432c23b64ca7d4f2 (patch)
treee82b1c0b9d4f5bcc9568d055a9b8228dafc506d9 /llvm/lib/CodeGen/CodeGenPrepare.cpp
parent4ac158e04c2eb693fba81bcc2e728208104af71d (diff)
downloadllvm-77f75b45fd8a4bbc061e85a4432c23b64ca7d4f2.zip
llvm-77f75b45fd8a4bbc061e85a4432c23b64ca7d4f2.tar.gz
llvm-77f75b45fd8a4bbc061e85a4432c23b64ca7d4f2.tar.bz2
[InstCombine] Extend `(icmp eq/ne (and Z, X), (and Z, Y))` folds
Two ways to relaxed: 1) Only require one of the `and` ops to be single-use if both `X` and `Y` are constant. 2) Special case, if `X ^ Y` is a negative power of 2, then `Z ^ NegP2 ==/!= 0` will fold to `Z u</u>= -NegP2` which creates no additional instructions so fold irrelivant of use counts. Closes #94867
Diffstat (limited to 'llvm/lib/CodeGen/CodeGenPrepare.cpp')
0 files changed, 0 insertions, 0 deletions