diff options
author | Roman Lebedev <lebedev.ri@gmail.com> | 2019-09-05 17:40:28 +0000 |
---|---|---|
committer | Roman Lebedev <lebedev.ri@gmail.com> | 2019-09-05 17:40:28 +0000 |
commit | 745046c23f76d3f44f81f5fb5b504a62df380464 (patch) | |
tree | 1e49fa40cd1c42547634185fd62d0496afcd310f /llvm/lib/Support/Hashing.cpp | |
parent | 541ab7130e2c34097fd9e15f70ce193a37c2ad19 (diff) | |
download | bcm5719-llvm-745046c23f76d3f44f81f5fb5b504a62df380464.tar.gz bcm5719-llvm-745046c23f76d3f44f81f5fb5b504a62df380464.zip |
[InstCombine][NFC] Tests for 'unsigned add overflow' check
----------------------------------------
Name: unsigned add, overflow, v0
%add = add i8 %x, %y
%ov = icmp ult i8 %add, %x
=>
%agg = uadd_overflow i8 %x, %y
%add = extractvalue {i8, i1} %agg, 0
%ov = extractvalue {i8, i1} %agg, 1
Done: 1
Optimization is correct!
----------------------------------------
Name: unsigned add, overflow, v1
%add = add i8 %x, %y
%ov = icmp ult i8 %add, %y
=>
%agg = uadd_overflow i8 %x, %y
%add = extractvalue {i8, i1} %agg, 0
%ov = extractvalue {i8, i1} %agg, 1
Done: 1
Optimization is correct!
----------------------------------------
Name: unsigned add, no overflow, v0
%add = add i8 %x, %y
%ov = icmp uge i8 %add, %x
=>
%agg = uadd_overflow i8 %x, %y
%add = extractvalue {i8, i1} %agg, 0
%not.ov = extractvalue {i8, i1} %agg, 1
%ov = xor %not.ov, -1
Done: 1
Optimization is correct!
----------------------------------------
Name: unsigned add, no overflow, v1
%add = add i8 %x, %y
%ov = icmp uge i8 %add, %y
=>
%agg = uadd_overflow i8 %x, %y
%add = extractvalue {i8, i1} %agg, 0
%not.ov = extractvalue {i8, i1} %agg, 1
%ov = xor %not.ov, -1
Done: 1
Optimization is correct!
llvm-svn: 371098
Diffstat (limited to 'llvm/lib/Support/Hashing.cpp')
0 files changed, 0 insertions, 0 deletions