xref: /llvm-project/llvm/test/CodeGen/SPIRV/pointers/ptr-argument-byref.ll (revision 67d3ef74b31e1517d4f679e754cc2b3041c95901)
1*67d3ef74SVyacheslav Levytskyy; RUN: llc -verify-machineinstrs -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s
243222bd3SMichal Paszkowski; RUN: %if spirv-tools %{ llc -O0 -mtriple=spirv64-unknown-unknown %s -o - -filetype=obj | spirv-val %}
343222bd3SMichal Paszkowski
443222bd3SMichal Paszkowskitarget triple = "spirv64-unknown-unknown"
543222bd3SMichal Paszkowski
643222bd3SMichal Paszkowski; CHECK-DAG: %[[#VOID:]] = OpTypeVoid
743222bd3SMichal Paszkowski; CHECK-DAG: %[[#INT32:]] = OpTypeInt 32 0
843222bd3SMichal Paszkowski; CHECK-DAG: %[[#STRUCT1:]] = OpTypeStruct %[[#INT32]]
943222bd3SMichal Paszkowski; CHECK-DAG: %[[#CONST:]] = OpConstant %[[#INT32]] 7
1043222bd3SMichal Paszkowski; CHECK-DAG: %[[#ARRAY:]] = OpTypeArray %[[#STRUCT1]] %[[#CONST]]
1143222bd3SMichal Paszkowski; CHECK-DAG: %[[#STRUCT2:]] = OpTypeStruct %[[#ARRAY]]
1243222bd3SMichal Paszkowski; CHECK-DAG: %[[#PTR:]] = OpTypePointer Function %[[#STRUCT2]]
1343222bd3SMichal Paszkowski
1443222bd3SMichal Paszkowski; CHECK:  %[[#FUNC:]] = OpTypeFunction %[[#VOID]] %[[#PTR]]
1543222bd3SMichal Paszkowski; CHECK:  %[[#]] = OpFunction %[[#VOID]] None %[[#FUNC]]
1643222bd3SMichal Paszkowski; CHECK:  %[[#]] = OpFunctionParameter %[[#PTR]]
1743222bd3SMichal Paszkowski
1843222bd3SMichal Paszkowski%struct.S = type { i32 }
1943222bd3SMichal Paszkowski%struct.__wrapper_class = type { [7 x %struct.S] }
2043222bd3SMichal Paszkowski
2143222bd3SMichal Paszkowskidefine spir_kernel void @foo(ptr noundef byref(%struct.__wrapper_class) align 4 %_arg_Arr) {
2243222bd3SMichal Paszkowskientry:
2343222bd3SMichal Paszkowski  ret void
2443222bd3SMichal Paszkowski}
25