106 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: bics r0, r16 %tmp = xor i32 %b, 42949672957 %tmp1 = and i32 %a, %tmp8 ret i32 %tmp19}10 11define i32 @f2(i32 %a, i32 %b) {12; CHECK-LABEL: f2:13; CHECK: bics r0, r114 %tmp = xor i32 %b, 429496729515 %tmp1 = and i32 %tmp, %a16 ret i32 %tmp117}18 19define i32 @f3(i32 %a, i32 %b) {20; CHECK-LABEL: f3:21; CHECK: bics r0, r122 %tmp = xor i32 4294967295, %b23 %tmp1 = and i32 %a, %tmp24 ret i32 %tmp125}26 27define i32 @f4(i32 %a, i32 %b) {28; CHECK-LABEL: f4:29; CHECK: bics r0, r130 %tmp = xor i32 4294967295, %b31 %tmp1 = and i32 %tmp, %a32 ret i32 %tmp133}34 35define i32 @f5(i32 %a, i32 %b) {36; CHECK-LABEL: f5:37; CHECK: bic.w r0, r0, r1, lsl #538 %tmp = shl i32 %b, 539 %tmp1 = xor i32 4294967295, %tmp40 %tmp2 = and i32 %a, %tmp141 ret i32 %tmp242}43 44define i32 @f6(i32 %a, i32 %b) {45; CHECK-LABEL: f6:46; CHECK: bic.w r0, r0, r1, lsr #647 %tmp = lshr i32 %b, 648 %tmp1 = xor i32 %tmp, 429496729549 %tmp2 = and i32 %tmp1, %a50 ret i32 %tmp251}52 53define i32 @f7(i32 %a, i32 %b) {54; CHECK-LABEL: f7:55; CHECK: bic.w r0, r0, r1, asr #756 %tmp = ashr i32 %b, 757 %tmp1 = xor i32 %tmp, 429496729558 %tmp2 = and i32 %a, %tmp159 ret i32 %tmp260}61 62define i32 @f8(i32 %a, i32 %b) {63; CHECK-LABEL: f8:64; CHECK: bic.w r0, r0, r0, ror #865 %l8 = shl i32 %a, 2466 %r8 = lshr i32 %a, 867 %tmp = or i32 %l8, %r868 %tmp1 = xor i32 4294967295, %tmp69 %tmp2 = and i32 %tmp1, %a70 ret i32 %tmp271}72 73; ~0x000000bb = 429496710874define i32 @f9(i32 %a) {75 %tmp = and i32 %a, 429496710876 ret i32 %tmp77 78; CHECK-LABEL: f9:79; CHECK: bic r0, r0, #18780}81 82; ~0x00aa00aa = 428382600583define i32 @f10(i32 %a) {84 %tmp = and i32 %a, 428382600585 ret i32 %tmp86 87; CHECK-LABEL: f10:88; CHECK: bic r0, r0, #1114129089}90 91; ~0xcc00cc00 = 87236300792define i32 @f11(i32 %a) {93 %tmp = and i32 %a, 87236300794 ret i32 %tmp95; CHECK-LABEL: f11:96; CHECK: bic r0, r0, #-87236300897}98 99; ~0x00110000 = 4293853183100define i32 @f12(i32 %a) {101 %tmp = and i32 %a, 4293853183102 ret i32 %tmp103; CHECK-LABEL: f12:104; CHECK: bic r0, r0, #1114112105}106