1; SPIR-V
2; Version: 1.0
3; Generator: Codeplay; 0
4; Bound: 31
5; Schema: 0
6               OpCapability Shader
7               OpCapability VariablePointers
8               OpExtension "SPV_KHR_storage_buffer_storage_class"
9               OpExtension "SPV_KHR_variable_pointers"
10               OpMemoryModel Logical GLSL450
11               OpEntryPoint GLCompute %22 "main" %gl_WorkGroupID
12               OpSource OpenCL_C 120
13               OpDecorate %15 SpecId 0
14               ;OpDecorate %16 SpecId 1
15               OpDecorate %17 SpecId 2
16               OpDecorate %_runtimearr_float ArrayStride 4
17               OpMemberDecorate %_struct_4 0 Offset 0
18               OpDecorate %_struct_4 Block
19               OpDecorate %gl_WorkGroupID BuiltIn WorkgroupId
20               OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
21               OpDecorate %20 DescriptorSet 0
22               OpDecorate %20 Binding 0
23               OpDecorate %21 DescriptorSet 0
24               OpDecorate %21 Binding 1
25      %float = OpTypeFloat 32
26%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
27%_runtimearr_float = OpTypeRuntimeArray %float
28  %_struct_4 = OpTypeStruct %_runtimearr_float
29%_ptr_StorageBuffer__struct_4 = OpTypePointer StorageBuffer %_struct_4
30       %uint = OpTypeInt 32 0
31       %void = OpTypeVoid
32          %8 = OpTypeFunction %void
33     %v3uint = OpTypeVector %uint 3
34%_ptr_Input_v3uint = OpTypePointer Input %v3uint
35%_ptr_Input_uint = OpTypePointer Input %uint
36%_ptr_Private_v3uint = OpTypePointer Private %v3uint
37     %uint_0 = OpConstant %uint 0
38%gl_WorkGroupID = OpVariable %_ptr_Input_v3uint Input
39         %15 = OpSpecConstant %uint 1
40         %16 = OpConstant %uint 2
41         %17 = OpSpecConstant %uint 3
42%gl_WorkGroupSize = OpSpecConstantComposite %v3uint %15 %16 %17
43         %19 = OpVariable %_ptr_Private_v3uint Private %gl_WorkGroupSize
44         %20 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer
45         %21 = OpVariable %_ptr_StorageBuffer__struct_4 StorageBuffer
46         %22 = OpFunction %void None %8
47         %23 = OpLabel
48         %24 = OpAccessChain %_ptr_Input_uint %gl_WorkGroupID %uint_0
49         %25 = OpLoad %uint %24
50         %26 = OpAccessChain %_ptr_StorageBuffer_float %21 %uint_0 %25
51         %27 = OpLoad %float %26
52         %28 = OpAccessChain %_ptr_StorageBuffer_float %20 %uint_0 %25
53         %29 = OpLoad %float %28
54         %30 = OpFAdd %float %27 %29
55               OpStore %28 %30
56               OpReturn
57               OpFunctionEnd
58