diff options
author | Noah Goldstein <goldstein.w.n@gmail.com> | 2024-06-08 14:22:37 -0500 |
---|---|---|
committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2024-06-10 13:00:28 -0500 |
commit | 77f75b45fd8a4bbc061e85a4432c23b64ca7d4f2 (patch) | |
tree | e82b1c0b9d4f5bcc9568d055a9b8228dafc506d9 /llvm/lib/CodeGen/CodeGenPrepare.cpp | |
parent | 4ac158e04c2eb693fba81bcc2e728208104af71d (diff) | |
download | llvm-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