brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · 50c239a Raw
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