blob: e1f0bba7c4b86e0e3abb5b0f996a6c58fb303e42 [file] [log] [blame]
Saleem Abdulrasool905b6d192014-04-03 23:47:24 +00001; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
Evan Cheng34c8c742009-06-26 05:59:16 +00002
3define i32 @f1(i32 %a, i32 %b) {
4 %tmp = xor i32 %b, 4294967295
David Goodwin34f7ede2009-06-26 16:20:06 +00005 %tmp1 = or i32 %a, %tmp
Evan Cheng34c8c742009-06-26 05:59:16 +00006 ret i32 %tmp1
7}
Stephen Lind24ab202013-07-14 06:24:09 +00008; CHECK-LABEL: f1:
Edward O'Callaghanf161e972009-11-22 15:35:28 +00009; CHECK: orn r0, r0, r1
Evan Cheng34c8c742009-06-26 05:59:16 +000010
11define i32 @f2(i32 %a, i32 %b) {
12 %tmp = xor i32 %b, 4294967295
David Goodwin34f7ede2009-06-26 16:20:06 +000013 %tmp1 = or i32 %tmp, %a
Evan Cheng34c8c742009-06-26 05:59:16 +000014 ret i32 %tmp1
15}
Stephen Lind24ab202013-07-14 06:24:09 +000016; CHECK-LABEL: f2:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000017; CHECK: orn r0, r0, r1
David Goodwin3bd42af2009-06-26 18:10:30 +000018
19define i32 @f3(i32 %a, i32 %b) {
20 %tmp = xor i32 4294967295, %b
21 %tmp1 = or i32 %a, %tmp
22 ret i32 %tmp1
23}
Stephen Lind24ab202013-07-14 06:24:09 +000024; CHECK-LABEL: f3:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000025; CHECK: orn r0, r0, r1
David Goodwin3bd42af2009-06-26 18:10:30 +000026
27define i32 @f4(i32 %a, i32 %b) {
28 %tmp = xor i32 4294967295, %b
29 %tmp1 = or i32 %tmp, %a
30 ret i32 %tmp1
31}
Stephen Lind24ab202013-07-14 06:24:09 +000032; CHECK-LABEL: f4:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000033; CHECK: orn r0, r0, r1
David Goodwin17512662009-06-30 01:02:20 +000034
35define i32 @f5(i32 %a, i32 %b) {
36 %tmp = shl i32 %b, 5
37 %tmp1 = xor i32 4294967295, %tmp
38 %tmp2 = or i32 %a, %tmp1
39 ret i32 %tmp2
40}
Stephen Lind24ab202013-07-14 06:24:09 +000041; CHECK-LABEL: f5:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000042; CHECK: orn r0, r0, r1, lsl #5
David Goodwin17512662009-06-30 01:02:20 +000043
44define i32 @f6(i32 %a, i32 %b) {
45 %tmp = lshr i32 %b, 6
46 %tmp1 = xor i32 4294967295, %tmp
47 %tmp2 = or i32 %a, %tmp1
48 ret i32 %tmp2
49}
Stephen Lind24ab202013-07-14 06:24:09 +000050; CHECK-LABEL: f6:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000051; CHECK: orn r0, r0, r1, lsr #6
David Goodwin17512662009-06-30 01:02:20 +000052
53define i32 @f7(i32 %a, i32 %b) {
54 %tmp = ashr i32 %b, 7
55 %tmp1 = xor i32 4294967295, %tmp
56 %tmp2 = or i32 %a, %tmp1
57 ret i32 %tmp2
58}
Stephen Lind24ab202013-07-14 06:24:09 +000059; CHECK-LABEL: f7:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000060; CHECK: orn r0, r0, r1, asr #7
David Goodwin17512662009-06-30 01:02:20 +000061
62define i32 @f8(i32 %a, i32 %b) {
63 %l8 = shl i32 %a, 24
64 %r8 = lshr i32 %a, 8
65 %tmp = or i32 %l8, %r8
66 %tmp1 = xor i32 4294967295, %tmp
67 %tmp2 = or i32 %a, %tmp1
68 ret i32 %tmp2
69}
Stephen Lind24ab202013-07-14 06:24:09 +000070; CHECK-LABEL: f8:
Edward O'Callaghanf161e972009-11-22 15:35:28 +000071; CHECK: orn r0, r0, r0, ror #8