; RUN: llc -O0 -mtriple=spirv32-unknown-unknown %s -o - | FileCheck %s ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv32-unknown-unknown %s -o - -filetype=obj | spirv-val %} %struct.Node = type { ptr addrspace(1) } %struct.Node.0 = type opaque ; With opaque pointers, parameters are lowered to generic pointer-to-i8. ; CHECK-DAG: %[[#I8:]] = OpTypeInt 8 ; CHECK-DAG: %[[#PTR:]] = OpTypePointer CrossWorkgroup %[[#I8]] ; CHECK-DAG: %[[#I32:]] = OpTypeInt 32 ; CHECK-DAG: %[[#VOID:]] = OpTypeVoid ; CHECK-DAG: %[[#FNTY:]] = OpTypeFunction %[[#VOID]] %[[#PTR]] %[[#PTR]] %[[#I32]] ; CHECK: %[[#]] = OpFunction %[[#VOID]] None %[[#FNTY]] ; CHECK: OpFunctionParameter %[[#PTR]] ; CHECK: OpFunctionParameter %[[#PTR]] ; CHECK: OpFunctionParameter %[[#I32]] define spir_kernel void @create_linked_lists(ptr addrspace(1) nocapture %pNodes, ptr addrspace(1) nocapture %allocation_index, i32 %list_length) { entry: ret void }