| Chris Lattner | 419bda1 | 2002-08-03 20:30:26 +0000 | [diff] [blame] | 1 | ; 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 Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 5 | ; RUN: opt < %s -instcombine -S | \ |
| Reid Spencer | 91948d4 | 2007-04-14 20:13:02 +0000 | [diff] [blame] | 6 | ; RUN: grep -v {icmp eq} | grep -v {icmp ne} | not grep icmp |
| Tanya Lattner | aa6f5c9 | 2008-03-09 08:16:40 +0000 | [diff] [blame] | 7 | ; END. |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 8 | |
| 9 | define i1 @test1(i32 %A) { |
| 10 | ; setne %A, 0 |
| 11 | %B = icmp uge i32 %A, 1 ; <i1> [#uses=1] |
| 12 | ret i1 %B |
| Chris Lattner | 419bda1 | 2002-08-03 20:30:26 +0000 | [diff] [blame] | 13 | } |
| 14 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 15 | define i1 @test2(i32 %A) { |
| 16 | ; setne %A, 0 |
| 17 | %B = icmp ugt i32 %A, 0 ; <i1> [#uses=1] |
| 18 | ret i1 %B |
| Chris Lattner | 419bda1 | 2002-08-03 20:30:26 +0000 | [diff] [blame] | 19 | } |
| 20 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 21 | define i1 @test3(i8 %A) { |
| 22 | ; setne %A, -128 |
| 23 | %B = icmp sge i8 %A, -127 ; <i1> [#uses=1] |
| 24 | ret i1 %B |
| Chris Lattner | 419bda1 | 2002-08-03 20:30:26 +0000 | [diff] [blame] | 25 | } |
| Chris Lattner | 840d469 | 2002-08-09 23:33:58 +0000 | [diff] [blame] | 26 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 27 | define i1 @test4(i8 %A) { |
| 28 | ; setne %A, 127 |
| 29 | %B = icmp sle i8 %A, 126 ; <i1> [#uses=1] |
| 30 | ret i1 %B |
| Chris Lattner | 840d469 | 2002-08-09 23:33:58 +0000 | [diff] [blame] | 31 | } |
| 32 | |
| Tanya Lattner | 5640bd1 | 2008-03-01 09:15:35 +0000 | [diff] [blame] | 33 | define i1 @test5(i8 %A) { |
| 34 | ; setne %A, 127 |
| 35 | %B = icmp slt i8 %A, 127 ; <i1> [#uses=1] |
| 36 | ret i1 %B |
| Chris Lattner | 840d469 | 2002-08-09 23:33:58 +0000 | [diff] [blame] | 37 | } |