1
; RUN: llc < %s -march=thumb -mattr=+thumb2 | FileCheck %s
4
define i32 @f1(i32 %a, i32 %b) {
5
%tmp = xor i32 %b, 4294967295
6
%tmp1 = or i32 %a, %tmp
10
; CHECK: orn r0, r0, r1
12
define i32 @f2(i32 %a, i32 %b) {
13
%tmp = xor i32 %b, 4294967295
14
%tmp1 = or i32 %tmp, %a
18
; CHECK: orn r0, r0, r1
20
define i32 @f3(i32 %a, i32 %b) {
21
%tmp = xor i32 4294967295, %b
22
%tmp1 = or i32 %a, %tmp
26
; CHECK: orn r0, r0, r1
28
define i32 @f4(i32 %a, i32 %b) {
29
%tmp = xor i32 4294967295, %b
30
%tmp1 = or i32 %tmp, %a
34
; CHECK: orn r0, r0, r1
36
define i32 @f5(i32 %a, i32 %b) {
38
%tmp1 = xor i32 4294967295, %tmp
39
%tmp2 = or i32 %a, %tmp1
43
; CHECK: orn r0, r0, r1, lsl #5
45
define i32 @f6(i32 %a, i32 %b) {
47
%tmp1 = xor i32 4294967295, %tmp
48
%tmp2 = or i32 %a, %tmp1
52
; CHECK: orn r0, r0, r1, lsr #6
54
define i32 @f7(i32 %a, i32 %b) {
56
%tmp1 = xor i32 4294967295, %tmp
57
%tmp2 = or i32 %a, %tmp1
61
; CHECK: orn r0, r0, r1, asr #7
63
define i32 @f8(i32 %a, i32 %b) {
66
%tmp = or i32 %l8, %r8
67
%tmp1 = xor i32 4294967295, %tmp
68
%tmp2 = or i32 %a, %tmp1
72
; CHECK: orn r0, r0, r0, ror #8