blob: 62ab116367fe09b3e3ac9c6a21a9799c225c8a63 [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;
Dan Gohman18800922009-09-11 18:01:28 +00005; RUN: opt < %s -instcombine -S | \
Reid Spencer91948d42007-04-14 20:13:02 +00006; RUN: grep -v {icmp eq} | grep -v {icmp ne} | not grep icmp
Tanya Lattneraa6f5c92008-03-09 08:16:40 +00007; END.
Tanya Lattner5640bd12008-03-01 09:15:35 +00008
9define i1 @test1(i32 %A) {
10 ; setne %A, 0
11 %B = icmp uge i32 %A, 1 ; <i1> [#uses=1]
12 ret i1 %B
Chris Lattner419bda12002-08-03 20:30:26 +000013}
14
Tanya Lattner5640bd12008-03-01 09:15:35 +000015define i1 @test2(i32 %A) {
16 ; setne %A, 0
17 %B = icmp ugt i32 %A, 0 ; <i1> [#uses=1]
18 ret i1 %B
Chris Lattner419bda12002-08-03 20:30:26 +000019}
20
Tanya Lattner5640bd12008-03-01 09:15:35 +000021define i1 @test3(i8 %A) {
22 ; setne %A, -128
23 %B = icmp sge i8 %A, -127 ; <i1> [#uses=1]
24 ret i1 %B
Chris Lattner419bda12002-08-03 20:30:26 +000025}
Chris Lattner840d4692002-08-09 23:33:58 +000026
Tanya Lattner5640bd12008-03-01 09:15:35 +000027define i1 @test4(i8 %A) {
28 ; setne %A, 127
29 %B = icmp sle i8 %A, 126 ; <i1> [#uses=1]
30 ret i1 %B
Chris Lattner840d4692002-08-09 23:33:58 +000031}
32
Tanya Lattner5640bd12008-03-01 09:15:35 +000033define i1 @test5(i8 %A) {
34 ; setne %A, 127
35 %B = icmp slt i8 %A, 127 ; <i1> [#uses=1]
36 ret i1 %B
Chris Lattner840d4692002-08-09 23:33:58 +000037}