blob: 97a3fd75f068547f455f1d9fa53f9c6d25d8ee34 [file] [log] [blame]
Edward O'Callaghanf161e972009-11-22 15:35:28 +00001; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
2
Evan Cheng34c8c742009-06-26 05:59:16 +00003
4define i32 @f1(i32 %a, i32 %b) {
5 %tmp = xor i32 %b, 4294967295
David Goodwin34f7ede2009-06-26 16:20:06 +00006 %tmp1 = or i32 %a, %tmp
Evan Cheng34c8c742009-06-26 05:59:16 +00007 ret i32 %tmp1
8}
Edward O'Callaghanf161e972009-11-22 15:35:28 +00009; CHECK: f1:
10; CHECK: orn r0, r0, r1
Evan Cheng34c8c742009-06-26 05:59:16 +000011
12define i32 @f2(i32 %a, i32 %b) {
13 %tmp = xor i32 %b, 4294967295
David Goodwin34f7ede2009-06-26 16:20:06 +000014 %tmp1 = or i32 %tmp, %a
Evan Cheng34c8c742009-06-26 05:59:16 +000015 ret i32 %tmp1
16}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000017; CHECK: f2:
18; CHECK: orn r0, r0, r1
David Goodwin3bd42af2009-06-26 18:10:30 +000019
20define i32 @f3(i32 %a, i32 %b) {
21 %tmp = xor i32 4294967295, %b
22 %tmp1 = or i32 %a, %tmp
23 ret i32 %tmp1
24}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000025; CHECK: f3:
26; CHECK: orn r0, r0, r1
David Goodwin3bd42af2009-06-26 18:10:30 +000027
28define i32 @f4(i32 %a, i32 %b) {
29 %tmp = xor i32 4294967295, %b
30 %tmp1 = or i32 %tmp, %a
31 ret i32 %tmp1
32}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000033; CHECK: f4:
34; CHECK: orn r0, r0, r1
David Goodwin17512662009-06-30 01:02:20 +000035
36define i32 @f5(i32 %a, i32 %b) {
37 %tmp = shl i32 %b, 5
38 %tmp1 = xor i32 4294967295, %tmp
39 %tmp2 = or i32 %a, %tmp1
40 ret i32 %tmp2
41}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000042; CHECK: f5:
43; CHECK: orn r0, r0, r1, lsl #5
David Goodwin17512662009-06-30 01:02:20 +000044
45define i32 @f6(i32 %a, i32 %b) {
46 %tmp = lshr i32 %b, 6
47 %tmp1 = xor i32 4294967295, %tmp
48 %tmp2 = or i32 %a, %tmp1
49 ret i32 %tmp2
50}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000051; CHECK: f6:
52; CHECK: orn r0, r0, r1, lsr #6
David Goodwin17512662009-06-30 01:02:20 +000053
54define i32 @f7(i32 %a, i32 %b) {
55 %tmp = ashr i32 %b, 7
56 %tmp1 = xor i32 4294967295, %tmp
57 %tmp2 = or i32 %a, %tmp1
58 ret i32 %tmp2
59}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000060; CHECK: f7:
61; CHECK: orn r0, r0, r1, asr #7
David Goodwin17512662009-06-30 01:02:20 +000062
63define i32 @f8(i32 %a, i32 %b) {
64 %l8 = shl i32 %a, 24
65 %r8 = lshr i32 %a, 8
66 %tmp = or i32 %l8, %r8
67 %tmp1 = xor i32 4294967295, %tmp
68 %tmp2 = or i32 %a, %tmp1
69 ret i32 %tmp2
70}
Edward O'Callaghanf161e972009-11-22 15:35:28 +000071; CHECK: f8:
72; CHECK: orn r0, r0, r0, ror #8