diff options
author | Sanjay Patel <spatel@rotateright.com> | 2018-09-11 22:40:20 +0000 |
---|---|---|
committer | Sanjay Patel <spatel@rotateright.com> | 2018-09-11 22:40:20 +0000 |
commit | 1cf0734b2f6b346993c41c18f4d6a9f2d1e11189 (patch) | |
tree | e282f5e9a4dbcde551704a7e42e3358bad860cbe /clang-tools-extra/clang-tidy/utils/ExprMutationAnalyzer.cpp | |
parent | 42e7cc1b0fdf3428ebd0dfd70a6e4efe162e1cd3 (diff) | |
download | bcm5719-llvm-1cf0734b2f6b346993c41c18f4d6a9f2d1e11189.tar.gz bcm5719-llvm-1cf0734b2f6b346993c41c18f4d6a9f2d1e11189.zip |
[InstCombine] add folds for unsigned-overflow compares
Name: op_ugt_sum
%a = add i8 %x, %y
%r = icmp ugt i8 %x, %a
=>
%notx = xor i8 %x, -1
%r = icmp ugt i8 %y, %notx
Name: sum_ult_op
%a = add i8 %x, %y
%r = icmp ult i8 %a, %x
=>
%notx = xor i8 %x, -1
%r = icmp ugt i8 %y, %notx
https://rise4fun.com/Alive/ZRxI
AFAICT, this doesn't interfere with any add-saturation patterns
because those have >1 use for the 'add'. But this should be
better for IR analysis and codegen in the basic cases.
This is another fold inspired by PR14613:
https://bugs.llvm.org/show_bug.cgi?id=14613
llvm-svn: 342004
Diffstat (limited to 'clang-tools-extra/clang-tidy/utils/ExprMutationAnalyzer.cpp')
0 files changed, 0 insertions, 0 deletions