| Dan Gohman | 1880092 | 2009-09-11 18:01:28 +0000 | [diff] [blame] | 1 | ; RUN: opt < %s -instcombine -S | not grep xor |
| Nick Lewycky | 18f50b2 | 2008-08-17 07:34:14 +0000 | [diff] [blame] | 2 | |
| 3 | define i1 @test1(i8 %x, i8 %y) { |
| 4 | %X = xor i8 %x, 128 |
| 5 | %Y = xor i8 %y, 128 |
| 6 | %tmp = icmp slt i8 %X, %Y |
| 7 | ret i1 %tmp |
| 8 | } |
| 9 | |
| 10 | define i1 @test2(i8 %x, i8 %y) { |
| 11 | %X = xor i8 %x, 128 |
| 12 | %Y = xor i8 %y, 128 |
| 13 | %tmp = icmp ult i8 %X, %Y |
| 14 | ret i1 %tmp |
| 15 | } |
| 16 | |
| 17 | define i1 @test3(i8 %x) { |
| 18 | %X = xor i8 %x, 128 |
| 19 | %tmp = icmp uge i8 %X, 15 |
| 20 | ret i1 %tmp |
| 21 | } |
| 22 | |
| Nick Lewycky | 53b4402 | 2008-08-17 19:58:24 +0000 | [diff] [blame] | 23 | define i1 @test4(i8 %x, i8 %y) { |
| 24 | %X = xor i8 %x, 127 |
| 25 | %Y = xor i8 %y, 127 |
| 26 | %tmp = icmp slt i8 %X, %Y |
| 27 | ret i1 %tmp |
| 28 | } |
| 29 | |
| 30 | define i1 @test5(i8 %x, i8 %y) { |
| 31 | %X = xor i8 %x, 127 |
| 32 | %Y = xor i8 %y, 127 |
| 33 | %tmp = icmp ult i8 %X, %Y |
| 34 | ret i1 %tmp |
| 35 | } |
| 36 | |
| 37 | define i1 @test6(i8 %x) { |
| 38 | %X = xor i8 %x, 127 |
| 39 | %tmp = icmp uge i8 %X, 15 |
| 40 | ret i1 %tmp |
| 41 | } |