aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/fast-isel-static.ll
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-12-15 23:47:29 +0000
committerEric Christopher <echristo@apple.com>2010-12-15 23:47:29 +0000
commit836c6245ad7e8f2b9f72c2a9e4cb1df101eaf2c7 (patch)
tree9f003d0eb6959edf4156b0ccfea5c32008181762 /test/CodeGen/ARM/fast-isel-static.ll
parentd0bb5e2ca05d9c942223bf05e5940bb0c6cc9d3f (diff)
Don't handle -arm-long-calls in fast isel for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/ARM/fast-isel-static.ll')
-rw-r--r--test/CodeGen/ARM/fast-isel-static.ll30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/fast-isel-static.ll b/test/CodeGen/ARM/fast-isel-static.ll
new file mode 100644
index 0000000000..8f58480be1
--- /dev/null
+++ b/test/CodeGen/ARM/fast-isel-static.ll
@@ -0,0 +1,30 @@
+; RUN: llc < %s -mtriple=thumbv7-apple-darwin -O0 -relocation-model=static -arm-long-calls | FileCheck -check-prefix=LONG %s
+; RUN: llc < %s -mtriple=thumbv7-apple-darwin -O0 -relocation-model=static | FileCheck -check-prefix=NORM %s
+
+define void @myadd(float* %sum, float* %addend) nounwind {
+entry:
+ %sum.addr = alloca float*, align 4
+ %addend.addr = alloca float*, align 4
+ store float* %sum, float** %sum.addr, align 4
+ store float* %addend, float** %addend.addr, align 4
+ %tmp = load float** %sum.addr, align 4
+ %tmp1 = load float* %tmp
+ %tmp2 = load float** %addend.addr, align 4
+ %tmp3 = load float* %tmp2
+ %add = fadd float %tmp1, %tmp3
+ %tmp4 = load float** %sum.addr, align 4
+ store float %add, float* %tmp4
+ ret void
+}
+
+define i32 @main(i32 %argc, i8** %argv) nounwind {
+entry:
+ %ztot = alloca float, align 4
+ %z = alloca float, align 4
+ store float 0.000000e+00, float* %ztot, align 4
+ store float 1.000000e+00, float* %z, align 4
+; CHECK-LONG: blx r2
+; CHECK-NORM: blx _myadd
+ call void @myadd(float* %ztot, float* %z)
+ ret i32 0
+}