summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll')
-rw-r--r--llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll15
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll b/llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll
new file mode 100644
index 00000000000..cb548584db0
--- /dev/null
+++ b/llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll
@@ -0,0 +1,15 @@
+; A call to a libcall function is not a statepoint.
+; This test verifies that calls to libcalls functions do not get converted to
+; statepoint calls.
+; RUN: opt -S -rewrite-statepoints-for-gc < %s | FileCheck %s
+; RUN: opt -S -passes=rewrite-statepoints-for-gc < %s | FileCheck %s
+
+declare double @ldexp(double %x, i32 %n) nounwind readnone
+
+define double @test_libcall(double %x) gc "statepoint-example" {
+; CHECK-LABEL: test_libcall
+; CHECK-NEXT: %res = call double @ldexp(double %x, i32 5)
+; CHECK-NEXT: ret double %res
+ %res = call double @ldexp(double %x, i32 5) nounwind readnone
+ ret double %res
+}
OpenPOWER on IntegriCloud