OpCapability Shader %1 = OpExtInstImport "GLSL.std.450" OpMemoryModel Logical GLSL450 OpEntryPoint GLCompute %main "main" OpExecutionMode %main LocalSize 16 16 1 OpName %outX "outX" OpName %outY "outY" OpName %outZ "outZ" OpName %one_i "one_i" OpName %two_i "two_i" OpName %three_i "three_i" OpName %main "main" OpName %IndirectDispatchArgs "IndirectDispatchArgs" OpMemberName %IndirectDispatchArgs 0 "x" OpMemberName %IndirectDispatchArgs 1 "y" OpMemberName %IndirectDispatchArgs 2 "z" OpMemberDecorate %IndirectDispatchArgs 0 Offset 0 OpMemberDecorate %IndirectDispatchArgs 1 Offset 4 OpMemberDecorate %IndirectDispatchArgs 2 Offset 8 %int = OpTypeInt 32 1 %_ptr_Workgroup_int = OpTypePointer Workgroup %int %outX = OpVariable %_ptr_Workgroup_int Workgroup %outY = OpVariable %_ptr_Workgroup_int Workgroup %outZ = OpVariable %_ptr_Workgroup_int Workgroup %11 = OpTypeFunction %int %int_1 = OpConstant %int 1 %int_2 = OpConstant %int 2 %int_3 = OpConstant %int 3 %void = OpTypeVoid %19 = OpTypeFunction %void %IndirectDispatchArgs = OpTypeStruct %int %int %int %_ptr_Function_IndirectDispatchArgs = OpTypePointer Function %IndirectDispatchArgs %int_0 = OpConstant %int 0 %_ptr_Function_int = OpTypePointer Function %int %one_i = OpFunction %int None %11 %12 = OpLabel OpReturnValue %int_1 OpFunctionEnd %two_i = OpFunction %int None %11 %14 = OpLabel OpReturnValue %int_2 OpFunctionEnd %three_i = OpFunction %int None %11 %16 = OpLabel OpReturnValue %int_3 OpFunctionEnd %main = OpFunction %void None %19 %20 = OpLabel %21 = OpVariable %_ptr_Function_IndirectDispatchArgs Function %32 = OpVariable %_ptr_Function_IndirectDispatchArgs Function %39 = OpVariable %_ptr_Function_IndirectDispatchArgs Function %24 = OpFunctionCall %int %one_i %25 = OpFunctionCall %int %two_i %26 = OpFunctionCall %int %three_i %27 = OpCompositeConstruct %IndirectDispatchArgs %24 %25 %26 OpStore %21 %27 %29 = OpAccessChain %_ptr_Function_int %21 %int_0 %31 = OpLoad %int %29 OpStore %outX %31 %33 = OpFunctionCall %int %one_i %34 = OpFunctionCall %int %two_i %35 = OpFunctionCall %int %three_i %36 = OpCompositeConstruct %IndirectDispatchArgs %33 %34 %35 OpStore %32 %36 %37 = OpAccessChain %_ptr_Function_int %32 %int_1 %38 = OpLoad %int %37 OpStore %outY %38 %40 = OpFunctionCall %int %one_i %41 = OpFunctionCall %int %two_i %42 = OpFunctionCall %int %three_i %43 = OpCompositeConstruct %IndirectDispatchArgs %40 %41 %42 OpStore %39 %43 %44 = OpAccessChain %_ptr_Function_int %39 %int_2 %45 = OpLoad %int %44 OpStore %outZ %45 OpReturn OpFunctionEnd