diff options
Diffstat (limited to 'llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll')
-rw-r--r-- | llvm/test/Transforms/RewriteStatepointsForGC/libcall.ll | 15 |
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 +} |