72 lines · plain
1; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s2 3define i32 @f1(ptr %v) {4; CHECK-LABEL: f1:5; CHECK: ldr r06entry:7 %tmp = load i32, ptr %v8 ret i32 %tmp9}10 11define i32 @f2(ptr %v) {12; CHECK-LABEL: f2:13; CHECK: ldr r014entry:15 %tmp2 = getelementptr i32, ptr %v, i32 102316 %tmp = load i32, ptr %tmp217 ret i32 %tmp18}19 20define i32 @f3(ptr %v) {21; CHECK-LABEL: f3:22; CHECK: mov23; CHECK: ldr r024entry:25 %tmp2 = getelementptr i32, ptr %v, i32 102426 %tmp = load i32, ptr %tmp227 ret i32 %tmp28}29 30define i32 @f4(i32 %base) {31; CHECK-LABEL: f4:32; CHECK-NOT: mvn33; CHECK: ldr r034entry:35 %tmp1 = sub i32 %base, 12836 %tmp2 = inttoptr i32 %tmp1 to ptr37 %tmp3 = load i32, ptr %tmp238 ret i32 %tmp339}40 41define i32 @f5(i32 %base, i32 %offset) {42; CHECK-LABEL: f5:43; CHECK: ldr r044entry:45 %tmp1 = add i32 %base, %offset46 %tmp2 = inttoptr i32 %tmp1 to ptr47 %tmp3 = load i32, ptr %tmp248 ret i32 %tmp349}50 51define i32 @f6(i32 %base, i32 %offset) {52; CHECK-LABEL: f6:53; CHECK: ldr r0{{.*}}lsl{{.*}}54entry:55 %tmp1 = shl i32 %offset, 256 %tmp2 = add i32 %base, %tmp157 %tmp3 = inttoptr i32 %tmp2 to ptr58 %tmp4 = load i32, ptr %tmp359 ret i32 %tmp460}61 62define i32 @f7(i32 %base, i32 %offset) {63; CHECK-LABEL: f7:64; CHECK: ldr r0{{.*}}lsr{{.*}}65entry:66 %tmp1 = lshr i32 %offset, 267 %tmp2 = add i32 %base, %tmp168 %tmp3 = inttoptr i32 %tmp2 to ptr69 %tmp4 = load i32, ptr %tmp370 ret i32 %tmp471}72