1 ; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s
3 define i32 @f1(i32 %a, i32 %b) {
4 %tmp = xor i32 %b, 4294967295
5 %tmp1 = or i32 %a, %tmp
9 ; CHECK: orn r0, r0, r1
11 define i32 @f2(i32 %a, i32 %b) {
12 %tmp = xor i32 %b, 4294967295
13 %tmp1 = or i32 %tmp, %a
17 ; CHECK: orn r0, r0, r1
19 define i32 @f3(i32 %a, i32 %b) {
20 %tmp = xor i32 4294967295, %b
21 %tmp1 = or i32 %a, %tmp
25 ; CHECK: orn r0, r0, r1
27 define i32 @f4(i32 %a, i32 %b) {
28 %tmp = xor i32 4294967295, %b
29 %tmp1 = or i32 %tmp, %a
33 ; CHECK: orn r0, r0, r1
35 define i32 @f5(i32 %a, i32 %b) {
37 %tmp1 = xor i32 4294967295, %tmp
38 %tmp2 = or i32 %a, %tmp1
42 ; CHECK: orn r0, r0, r1, lsl #5
44 define i32 @f6(i32 %a, i32 %b) {
46 %tmp1 = xor i32 4294967295, %tmp
47 %tmp2 = or i32 %a, %tmp1
51 ; CHECK: orn r0, r0, r1, lsr #6
53 define i32 @f7(i32 %a, i32 %b) {
55 %tmp1 = xor i32 4294967295, %tmp
56 %tmp2 = or i32 %a, %tmp1
60 ; CHECK: orn r0, r0, r1, asr #7
62 define i32 @f8(i32 %a, i32 %b) {
65 %tmp = or i32 %l8, %r8
66 %tmp1 = xor i32 4294967295, %tmp
67 %tmp2 = or i32 %a, %tmp1
71 ; CHECK: orn r0, r0, r0, ror #8