| ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck --check-prefixes=CHECK,SPIRV %s |
| ; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-amd-amdhsa %s -o - | FileCheck --check-prefixes=CHECK,AMDGCNSPIRV %s |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %} |
| ; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-amd-amdhsa %s -o - -filetype=obj | spirv-val %} |
| |
| ; CHECK: OpName %[[#XKER:]] "x" |
| ; CHECK-DAG: OpName %[[#XFN:]] "x" |
| ; SPIRV-NOT: OpDecorate %[[#XKER]] FuncParamAttr ByVal |
| ; AMDGCNSPIRV: OpDecorate %[[#XKER]] FuncParamAttr ByVal |
| ; SPIRV-NOT: OpDecorate %[[#XFN]] FuncParamAttr ByVal |
| ; AMDGCNSPIRV: OpDecorate %[[#XFN]] FuncParamAttr ByVal |
| |
| %struct.S = type { i32 } |
| %struct.SS = type { [7 x %struct.S] } |
| |
| define spir_kernel void @ker(ptr addrspace(2) noundef byref(%struct.SS) %x) { |
| entry: |
| ret void |
| } |
| |
| define spir_func void @fn(ptr noundef byref(%struct.SS) %x) { |
| entry: |
| ret void |
| } |