This implements the second half of the fix for PR3290, handling
[oota-llvm.git] / test / Transforms / InstCombine / 2008-08-17-ICmpXorSignbit.ll
1 ; RUN: llvm-as < %s | opt -instcombine | llvm-dis | not grep xor
2 ; XFAIL: *
3
4 define i1 @test1(i8 %x, i8 %y) {
5   %X = xor i8 %x, 128
6   %Y = xor i8 %y, 128
7   %tmp = icmp slt i8 %X, %Y
8   ret i1 %tmp
9 }
10
11 define i1 @test2(i8 %x, i8 %y) {
12   %X = xor i8 %x, 128
13   %Y = xor i8 %y, 128
14   %tmp = icmp ult i8 %X, %Y
15   ret i1 %tmp
16 }
17
18 define i1 @test3(i8 %x) {
19   %X = xor i8 %x, 128
20   %tmp = icmp uge i8 %X, 15
21   ret i1 %tmp
22 }
23
24 define i1 @test4(i8 %x, i8 %y) {
25   %X = xor i8 %x, 127
26   %Y = xor i8 %y, 127
27   %tmp = icmp slt i8 %X, %Y
28   ret i1 %tmp
29 }
30
31 define i1 @test5(i8 %x, i8 %y) {
32   %X = xor i8 %x, 127
33   %Y = xor i8 %y, 127
34   %tmp = icmp ult i8 %X, %Y
35   ret i1 %tmp
36 }
37
38 define i1 @test6(i8 %x) {
39   %X = xor i8 %x, 127
40   %tmp = icmp uge i8 %X, 15
41   ret i1 %tmp
42 }