brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · c64fef9 Raw
27 lines · plain
1; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s2; RUN: llc -mtriple=arm-eabi -mcpu=swift %s -o - | FileCheck %s3 4; CHECK-LABEL: test1:5; CHECK: ldr {{.*, \[.*]}}, -r26; CHECK-NOT: ldr7define i32 @test1(i32 %a, i32 %b, i32 %c) {8        %tmp1 = mul i32 %a, %b          ; <i32> [#uses=2]9        %tmp2 = inttoptr i32 %tmp1 to ptr              ; <ptr> [#uses=1]10        %tmp3 = load i32, ptr %tmp2         ; <i32> [#uses=1]11        %tmp4 = sub i32 %tmp1, %c               ; <i32> [#uses=1]12        %tmp5 = mul i32 %tmp4, %tmp3            ; <i32> [#uses=1]13        ret i32 %tmp514}15 16; CHECK-LABEL: test2:17; CHECK: ldr {{.*, \[.*\]}}, #-1618; CHECK-NOT: ldr19define i32 @test2(i32 %a, i32 %b) {20        %tmp1 = mul i32 %a, %b          ; <i32> [#uses=2]21        %tmp2 = inttoptr i32 %tmp1 to ptr              ; <ptr> [#uses=1]22        %tmp3 = load i32, ptr %tmp2         ; <i32> [#uses=1]23        %tmp4 = sub i32 %tmp1, 16               ; <i32> [#uses=1]24        %tmp5 = mul i32 %tmp4, %tmp3            ; <i32> [#uses=1]25        ret i32 %tmp526}27