brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · d4dca02 Raw
73 lines · plain
1; RUN: llc -mtriple=thumb-eabi -mcpu=arm1156t2-s -mattr=+thumb2 %s -o - | FileCheck %s2 3define i8 @f1(ptr %v) {4entry:5; CHECK-LABEL: f1:6; CHECK: ldrb r0, [r0]7        %tmp = load i8, ptr %v8        ret i8 %tmp9}10 11define i8 @f2(ptr %v) {12entry:13; CHECK-LABEL: f2:14; CHECK: ldrb r0, [r0, #-1]15        %tmp2 = getelementptr i8, ptr %v, i8 102316        %tmp = load i8, ptr %tmp217        ret i8 %tmp18}19 20define i8 @f3(i32 %base) {21entry:22; CHECK-LABEL: f3:23; CHECK: mov.w r1, #409624; CHECK: ldrb r0, [r0, r1]25        %tmp1 = add i32 %base, 409626        %tmp2 = inttoptr i32 %tmp1 to ptr27        %tmp3 = load i8, ptr %tmp228        ret i8 %tmp329}30 31define i8 @f4(i32 %base) {32entry:33; CHECK-LABEL: f4:34; CHECK: ldrb r0, [r0, #-128]35        %tmp1 = sub i32 %base, 12836        %tmp2 = inttoptr i32 %tmp1 to ptr37        %tmp3 = load i8, ptr %tmp238        ret i8 %tmp339}40 41define i8 @f5(i32 %base, i32 %offset) {42entry:43; CHECK-LABEL: f5:44; CHECK: ldrb r0, [r0, r1]45        %tmp1 = add i32 %base, %offset46        %tmp2 = inttoptr i32 %tmp1 to ptr47        %tmp3 = load i8, ptr %tmp248        ret i8 %tmp349}50 51define i8 @f6(i32 %base, i32 %offset) {52entry:53; CHECK-LABEL: f6:54; CHECK: ldrb.w r0, [r0, r1, lsl #2]55        %tmp1 = shl i32 %offset, 256        %tmp2 = add i32 %base, %tmp157        %tmp3 = inttoptr i32 %tmp2 to ptr58        %tmp4 = load i8, ptr %tmp359        ret i8 %tmp460}61 62define i8 @f7(i32 %base, i32 %offset) {63entry:64; CHECK-LABEL: f7:65; CHECK: lsrs r1, r1, #266; CHECK: ldrb r0, [r0, r1]67        %tmp1 = lshr i32 %offset, 268        %tmp2 = add i32 %base, %tmp169        %tmp3 = inttoptr i32 %tmp2 to ptr70        %tmp4 = load i8, ptr %tmp371        ret i8 %tmp472}73