aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/PowerPC/calls.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/PowerPC/calls.ll')
-rw-r--r--test/CodeGen/PowerPC/calls.ll31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/CodeGen/PowerPC/calls.ll b/test/CodeGen/PowerPC/calls.ll
new file mode 100644
index 0000000..f2a6003
--- /dev/null
+++ b/test/CodeGen/PowerPC/calls.ll
@@ -0,0 +1,31 @@
+; Test various forms of calls.
+
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
+; RUN: grep {bl } | wc -l | grep 2
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
+; RUN: grep {bctrl} | wc -l | grep 1
+; RUN: llvm-upgrade < %s | llvm-as | llc -march=ppc32 | \
+; RUN: grep {bla } | wc -l | grep 1
+
+declare void %foo()
+
+void %test_direct() {
+ call void %foo()
+ ret void
+}
+
+void %test_extsym(sbyte *%P) {
+ free sbyte* %P
+ ret void
+}
+
+void %test_indirect(void()* %fp) {
+ call void %fp()
+ ret void
+}
+
+void %test_abs() {
+ %fp = cast int 400 to void()*
+ call void %fp()
+ ret void
+}