57 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2 3define i32 @f1(i32 %a, i32 %b) {4; CHECK-LABEL: f1:5; CHECK: eors r0, r16 %tmp = xor i32 %a, %b7 ret i32 %tmp8}9 10define i32 @f2(i32 %a, i32 %b) {11; CHECK-LABEL: f2:12; CHECK: eors r0, r113 %tmp = xor i32 %b, %a14 ret i32 %tmp15}16 17define i32 @f2b(i32 %a, i32 %b, i32 %c) {18; CHECK-LABEL: f2b:19; CHECK: eor.w r0, r1, r220 %tmp = xor i32 %b, %c21 ret i32 %tmp22}23 24define i32 @f3(i32 %a, i32 %b) {25; CHECK-LABEL: f3:26; CHECK: eor.w r0, r0, r1, lsl #527 %tmp = shl i32 %b, 528 %tmp1 = xor i32 %a, %tmp29 ret i32 %tmp130}31 32define i32 @f4(i32 %a, i32 %b) {33; CHECK-LABEL: f4:34; CHECK: eor.w r0, r0, r1, lsr #635 %tmp = lshr i32 %b, 636 %tmp1 = xor i32 %tmp, %a37 ret i32 %tmp138}39 40define i32 @f5(i32 %a, i32 %b) {41; CHECK-LABEL: f5:42; CHECK: eor.w r0, r0, r1, asr #743 %tmp = ashr i32 %b, 744 %tmp1 = xor i32 %a, %tmp45 ret i32 %tmp146}47 48define i32 @f6(i32 %a, i32 %b) {49; CHECK-LABEL: f6:50; CHECK: eor.w r0, r0, r0, ror #851 %l8 = shl i32 %a, 2452 %r8 = lshr i32 %a, 853 %tmp = or i32 %l8, %r854 %tmp1 = xor i32 %tmp, %a55 ret i32 %tmp156}57