summaryrefslogtreecommitdiff
path: root/test/CodeGen/ARM/call.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/ARM/call.ll')
-rw-r--r--test/CodeGen/ARM/call.ll19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/call.ll b/test/CodeGen/ARM/call.ll
new file mode 100644
index 0000000000000..6b196653e05ac
--- /dev/null
+++ b/test/CodeGen/ARM/call.ll
@@ -0,0 +1,19 @@
+; RUN: llvm-as < %s | llc -march=arm | grep {mov lr, pc}
+; RUN: llvm-as < %s | llc -march=arm -mattr=+v5t | grep blx
+; RUN: llvm-as < %s | llc -march=arm -mtriple=arm-linux-gnueabi\
+; RUN: -relocation-model=pic | grep {PLT}
+
+@t = weak global i32 ()* null ; <i32 ()**> [#uses=1]
+
+declare void @g(i32, i32, i32, i32)
+
+define void @f() {
+ call void @g( i32 1, i32 2, i32 3, i32 4 )
+ ret void
+}
+
+define void @g.upgrd.1() {
+ %tmp = load i32 ()** @t ; <i32 ()*> [#uses=1]
+ %tmp.upgrd.2 = tail call i32 %tmp( ) ; <i32> [#uses=0]
+ ret void
+}