blob: 9051d032cff0c826093d0239e1081c96914e7e7c [file] [log] [blame]
Chris Lattner419bda12002-08-03 20:30:26 +00001; This test ensures that "strength reduction" of conditional expressions are
2; working. Basically this boils down to converting setlt,gt,le,ge instructions
3; into equivalent setne,eq instructions.
4;
5
Chris Lattner11c21f32003-06-28 22:44:42 +00006; RUN: as < %s | opt -instcombine | dis | grep -v seteq | grep -v setne | grep-not set
Chris Lattner419bda12002-08-03 20:30:26 +00007
8bool "test1"(uint %A) {
9 %B = setge uint %A, 1 ; setne %A, 0
10 ret bool %B
11}
12
13bool "test2"(uint %A) {
14 %B = setgt uint %A, 0 ; setne %A, 0
15 ret bool %B
16}
17
18bool "test3"(sbyte %A) {
19 %B = setge sbyte %A, -127 ; setne %A, -128
20 ret bool %B
21}
Chris Lattner840d4692002-08-09 23:33:58 +000022
23bool %test4(sbyte %A) {
24 %B = setle sbyte %A, 126 ; setne %A, 127
25 ret bool %B
26}
27
28bool %test5(sbyte %A) {
29 %B = setlt sbyte %A, 127 ; setne %A, 127
30 ret bool %B
31}