diff --git a/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll new file mode 100644 index 000000000000..5c44f9e4e3bb --- /dev/null +++ b/llvm/test/CodeGen/SPIRV/passes/SPIRVEmitIntrinsics-infer-ptr-type.ll @@ -0,0 +1,28 @@ +; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 +; RUN: opt -S -passes=spirv-emit-intrinsics %s -mtriple=spirv64-unknown-unknown -o - | FileCheck %s +; RUN: opt -S -passes=spirv-emit-intrinsics %s -mtriple=spirv64-unknown-vulkan -o - | FileCheck %s + +define spir_func i32 @foo(ptr %fn) { +; CHECK-LABEL: define spir_func i32 @foo( +; CHECK-SAME: ptr [[FN:%.*]]) { +; CHECK-NEXT: [[ENTRY:.*:]] +; CHECK-NEXT: call void @llvm.spv.assign.ptr.type.p0(ptr [[FN]], metadata void () poison, i32 0) +; CHECK-NEXT: ret i32 0 +; +entry: + ret i32 0 +} + +declare spir_func void @bar() + +define spir_kernel void @infer_ptr_type() { +; CHECK-LABEL: define spir_kernel void @infer_ptr_type() { +; CHECK-NEXT: [[ENTRY:.*:]] +; CHECK-NEXT: [[C:%.*]] = call spir_func i32 @foo(ptr @bar) +; CHECK-NEXT: call void @llvm.spv.assign.type.i32(i32 [[C]], metadata i32 poison) +; CHECK-NEXT: ret void +; +entry: + %C = call spir_func i32 @foo(ptr @bar) + ret void +}