summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AMDGPU/call.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/AMDGPU/call.ll')
-rw-r--r--llvm/test/CodeGen/AMDGPU/call.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/call.ll b/llvm/test/CodeGen/AMDGPU/call.ll
index a3e986d367e..6d101e1537c 100644
--- a/llvm/test/CodeGen/AMDGPU/call.ll
+++ b/llvm/test/CodeGen/AMDGPU/call.ll
@@ -5,6 +5,7 @@
; CHECK: in function test_call_external{{.*}}: unsupported call to function external_function
; CHECK: in function test_call{{.*}}: unsupported call to function defined_function
; CHECK: in function test_tail_call{{.*}}: unsupported call to function defined_function
+; CHECK: in function test_tail_call_bitcast_extern_variadic{{.*}}: unsupported call to function extern_variadic
declare i32 @external_function(i32) nounwind
@@ -43,3 +44,16 @@ define void @test_tail_call(i32 addrspace(1)* %out, i32 addrspace(1)* %in) {
store i32 %result, i32 addrspace(1)* %out
ret void
}
+
+define i32 @test_tail_call_ret() {
+ %call = call i32 @external_function(i32 10)
+ ret i32 %call
+}
+
+declare i32 @extern_variadic(...)
+
+define i32 @test_tail_call_bitcast_extern_variadic(<4 x float> %arg0, <4 x float> %arg1, i32 %arg2) {
+ %add = fadd <4 x float> %arg0, %arg1
+ %call = tail call i32 bitcast (i32 (...)* @extern_variadic to i32 (<4 x float>)*)(<4 x float> %add) #7
+ ret i32 %call
+}
OpenPOWER on IntegriCloud