OSDN Git Service

Remove support for ORN to workaround <rdar://problem/7096522>.
[android-x86/external-llvm.git] / test / CodeGen / Thumb2 / thumb2-orn.ll
1 ; XFAIL: *
2 ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {orn\\W*r\[0-9\]*,\\W*r\[0-9\]*,\\W*r\[0-9\]*$} | count 4
3 ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {orn\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\],\\W*lsl\\W*#5$} | count 1
4 ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {orn\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\],\\W*lsr\\W*#6$} | count 1
5 ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {orn\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\],\\W*asr\\W*#7$} | count 1
6 ; RUN: llvm-as < %s | llc -march=thumb -mattr=+thumb2 | grep {orn\\W*r\[0-9\],\\W*r\[0-9\],\\W*r\[0-9\],\\W*ror\\W*#8$} | count 1
7
8 define i32 @f1(i32 %a, i32 %b) {
9     %tmp = xor i32 %b, 4294967295
10     %tmp1 = or i32 %a, %tmp
11     ret i32 %tmp1
12 }
13
14 define i32 @f2(i32 %a, i32 %b) {
15     %tmp = xor i32 %b, 4294967295
16     %tmp1 = or i32 %tmp, %a
17     ret i32 %tmp1
18 }
19
20 define i32 @f3(i32 %a, i32 %b) {
21     %tmp = xor i32 4294967295, %b
22     %tmp1 = or i32 %a, %tmp
23     ret i32 %tmp1
24 }
25
26 define i32 @f4(i32 %a, i32 %b) {
27     %tmp = xor i32 4294967295, %b
28     %tmp1 = or i32 %tmp, %a
29     ret i32 %tmp1
30 }
31
32 define i32 @f5(i32 %a, i32 %b) {
33     %tmp = shl i32 %b, 5
34     %tmp1 = xor i32 4294967295, %tmp
35     %tmp2 = or i32 %a, %tmp1
36     ret i32 %tmp2
37 }
38
39 define i32 @f6(i32 %a, i32 %b) {
40     %tmp = lshr i32 %b, 6
41     %tmp1 = xor i32 4294967295, %tmp
42     %tmp2 = or i32 %a, %tmp1
43     ret i32 %tmp2
44 }
45
46 define i32 @f7(i32 %a, i32 %b) {
47     %tmp = ashr i32 %b, 7
48     %tmp1 = xor i32 4294967295, %tmp
49     %tmp2 = or i32 %a, %tmp1
50     ret i32 %tmp2
51 }
52
53 define i32 @f8(i32 %a, i32 %b) {
54     %l8 = shl i32 %a, 24
55     %r8 = lshr i32 %a, 8
56     %tmp = or i32 %l8, %r8
57     %tmp1 = xor i32 4294967295, %tmp
58     %tmp2 = or i32 %a, %tmp1
59     ret i32 %tmp2
60 }