brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 5bde808 Raw
65 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2 3; These tests would be improved by 'movs r0, #0' being rematerialized below the4; tst as 'mov.w r0, #0'.5 6define i32 @f2(i32 %a, i32 %b) {7; CHECK-LABEL: f2:8; CHECK: tst {{.*}}, r19    %tmp = and i32 %a, %b10    %tmp1 = icmp eq i32 %tmp, 011    %ret = select i1 %tmp1, i32 42, i32 2412    ret i32 %ret13}14 15define i32 @f4(i32 %a, i32 %b) {16; CHECK-LABEL: f4:17; CHECK: tst {{.*}}, r118    %tmp = and i32 %a, %b19    %tmp1 = icmp eq i32 0, %tmp20    %ret = select i1 %tmp1, i32 42, i32 2421    ret i32 %ret22}23 24define i32 @f6(i32 %a, i32 %b) {25; CHECK-LABEL: f6:26; CHECK: tst.w {{.*}}, r1, lsl #527    %tmp = shl i32 %b, 528    %tmp1 = and i32 %a, %tmp29    %tmp2 = icmp eq i32 %tmp1, 030    %ret = select i1 %tmp2, i32 42, i32 2431    ret i32 %ret32}33 34define i32 @f7(i32 %a, i32 %b) {35; CHECK-LABEL: f7:36; CHECK: tst.w {{.*}}, r1, lsr #637    %tmp = lshr i32 %b, 638    %tmp1 = and i32 %a, %tmp39    %tmp2 = icmp eq i32 %tmp1, 040    %ret = select i1 %tmp2, i32 42, i32 2441    ret i32 %ret42}43 44define i32 @f8(i32 %a, i32 %b) {45; CHECK-LABEL: f8:46; CHECK: tst.w {{.*}}, r1, asr #747    %tmp = ashr i32 %b, 748    %tmp1 = and i32 %a, %tmp49    %tmp2 = icmp eq i32 %tmp1, 050    %ret = select i1 %tmp2, i32 42, i32 2451    ret i32 %ret52}53 54define i32 @f9(i32 %a, i32 %b) {55; CHECK-LABEL: f9:56; CHECK: tst.w {{.*}}, {{.*}}, ror #857    %l8 = shl i32 %a, 2458    %r8 = lshr i32 %a, 859    %tmp = or i32 %l8, %r860    %tmp1 = and i32 %a, %tmp61    %tmp2 = icmp eq i32 %tmp1, 062    %ret = select i1 %tmp2, i32 42, i32 2463    ret i32 %ret64}65