diff options
| author | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-04-17 19:49:27 -0500 |
|---|---|---|
| committer | Noah Goldstein <goldstein.w.n@gmail.com> | 2023-04-17 22:39:06 -0500 |
| commit | a3fd060d4223c6a7470554561bc479d4b8e423f4 (patch) | |
| tree | 6616977a82b4d0e496b76391e7e9c0f5985366f5 /llvm/lib/Support/VirtualFileSystem.cpp | |
| parent | 7c5cc22b55673e451b5643c3b921d1fea0a41d30 (diff) | |
| download | llvm-a3fd060d4223c6a7470554561bc479d4b8e423f4.zip llvm-a3fd060d4223c6a7470554561bc479d4b8e423f4.tar.gz llvm-a3fd060d4223c6a7470554561bc479d4b8e423f4.tar.bz2 | |
[InstCombine] Add transforms for `(icmp {u|s}ge/le (xor X, Y), X)`
If Y is non-zero we can simplify the ge/le -> gt/lt
`(X ^ Y_NonZero) u>= X` --> `(X ^ Y_NonZero) u> X`
- https://alive2.llvm.org/ce/z/k482NQ
`(X ^ Y_NonZero) u<= X` --> `(X ^ Y_NonZero) u< X`
- https://alive2.llvm.org/ce/z/TuUDGy
`(X ^ Y_NonZero) s>= X` --> `(X ^ Y_NonZero) s> X`
- https://alive2.llvm.org/ce/z/vXQypR
`(X ^ Y_NonZero) s<= X` --> `(X ^ Y_NonZero) s< X `
- https://alive2.llvm.org/ce/z/fbUq-z
Reviewed By: spatel
Differential Revision: https://reviews.llvm.org/D144608
Diffstat (limited to 'llvm/lib/Support/VirtualFileSystem.cpp')
0 files changed, 0 insertions, 0 deletions
