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