diff options
author | Sanjay Patel <spatel@rotateright.com> | 2021-10-10 10:58:58 -0400 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2021-10-10 11:06:49 -0400 |
commit | da210f5d3425e8877ceabaf6ed3483d52cbd7448 (patch) | |
tree | c4063454652411d6080beba8f01e9fa4e4c5b408 /clang/lib/Basic/Module.cpp | |
parent | c00cab878aa523e20a5dbd618e9852e191504cfe (diff) | |
download | llvm-da210f5d3425e8877ceabaf6ed3483d52cbd7448.zip llvm-da210f5d3425e8877ceabaf6ed3483d52cbd7448.tar.gz llvm-da210f5d3425e8877ceabaf6ed3483d52cbd7448.tar.bz2 |
[InstCombine] canonicalize "(C2 - Y) > C" as (Y + ~C2) < ~C
The test diffs show that we have better analysis/folds for 'add'
(although we should at least have the simplifications
independently, so we don't have the one-use restriction).
This is related to solving regressions that would appear in
transforms related to D111410, and that is part of a series
of enhancements that may eventually helpi solve PR34047.
https://alive2.llvm.org/ce/z/3tB9KG
define i1 @src(i8 %x, i8 %C, i8 %C2) {
%sub = sub nuw i8 %C2, %x
%r = icmp slt i8 %sub, %C
ret i1 %r
}
define i1 @tgt(i8 %x, i8 %C, i8 %C2) {
%Cnot = xor i8 %C, -1
%C2not = xor i8 %C2, -1
%add = add nuw i8 %x, %C2not
%r = icmp sgt i8 %add, %Cnot
ret i1 %r
}
Diffstat (limited to 'clang/lib/Basic/Module.cpp')
0 files changed, 0 insertions, 0 deletions