brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 5b77c59 Raw
66 lines · plain
1; RUN: llc -mtriple=arm-eabi -mattr=+v6t2 %s -o - | FileCheck %s2 3define i32 @f1(i32 %a) {4entry:5; CHECK-LABEL: f1:6; CHECK: sbfx r0, r0, #0, #207    %tmp = shl i32 %a, 128    %tmp2 = ashr i32 %tmp, 129    ret i32 %tmp210}11 12define i32 @f2(i32 %a) {13entry:14; CHECK-LABEL: f2:15; CHECK: bfc	r0, #20, #1216    %tmp = shl i32 %a, 1217    %tmp2 = lshr i32 %tmp, 1218    ret i32 %tmp219}20 21define i32 @f3(i32 %a) {22entry:23; CHECK-LABEL: f3:24; CHECK: sbfx r0, r0, #5, #325    %tmp = shl i32 %a, 2426    %tmp2 = ashr i32 %tmp, 2927    ret i32 %tmp228}29 30define i32 @f4(i32 %a) {31entry:32; CHECK-LABEL: f4:33; CHECK: ubfx r0, r0, #5, #334    %tmp = shl i32 %a, 2435    %tmp2 = lshr i32 %tmp, 2936    ret i32 %tmp237}38 39define i32 @f5(i32 %a) {40entry:41; CHECK-LABEL: f5:42; CHECK-NOT: sbfx43; CHECK: bx44    %tmp = shl i32 %a, 345    %tmp2 = ashr i32 %tmp, 146    ret i32 %tmp247}48 49define signext i8 @f6(i32 %a) {50; CHECK-LABEL: f6:51; CHECK: sbfx r0, r0, #23, #852 53  %tmp = lshr i32 %a, 2354  %res = trunc i32 %tmp to i855  ret i8 %res56}57 58define signext i8 @f7(i32 %a) {59; CHECK-LABEL: f7:60; CHECK-NOT: sbfx61 62  %tmp = lshr i32 %a, 2563  %res = trunc i32 %tmp to i864  ret i8 %res65}66