1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 7
4; Bound: 35
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
10               OpExecutionMode %main LocalSize 1 1 1
11               OpSource GLSL 450
12               OpName %main "main"
13               OpName %SSBO "SSBO"
14               OpMemberName %SSBO 0 "count"
15               OpMemberName %SSBO 1 "data"
16               OpName %_ ""
17               OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
18               OpDecorate %_runtimearr_uint ArrayStride 4
19               OpMemberDecorate %SSBO 0 Offset 0
20               OpMemberDecorate %SSBO 1 Offset 4
21               OpDecorate %SSBO BufferBlock
22               OpDecorate %_ DescriptorSet 0
23               OpDecorate %_ Binding 0
24               OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
25       %void = OpTypeVoid
26          %3 = OpTypeFunction %void
27       %uint = OpTypeInt 32 0
28%_runtimearr_uint = OpTypeRuntimeArray %uint
29       %SSBO = OpTypeStruct %uint %_runtimearr_uint
30%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO
31          %_ = OpVariable %_ptr_Uniform_SSBO Uniform
32        %int = OpTypeInt 32 1
33      %int_0 = OpConstant %int 0
34%_ptr_Uniform_uint = OpTypePointer Uniform %uint
35     %uint_1 = OpConstant %uint 1
36     %uint_0 = OpConstant %uint 0
37  %uint_1024 = OpConstant %uint 1024
38       %bool = OpTypeBool
39      %int_1 = OpConstant %int 1
40     %v3uint = OpTypeVector %uint 3
41%_ptr_Input_v3uint = OpTypePointer Input %v3uint
42%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
43%_ptr_Input_uint = OpTypePointer Input %uint
44       %main = OpFunction %void None %3
45          %5 = OpLabel
46         %16 = OpAccessChain %_ptr_Uniform_uint %_ %int_0
47         %19 = OpAtomicIAdd %uint %16 %uint_1 %uint_0 %uint_1
48         %23 = OpULessThan %bool %19 %uint_1024
49               OpSelectionMerge %25 None
50               OpBranchConditional %23 %24 %25
51         %24 = OpLabel
52         %32 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_0
53         %33 = OpLoad %uint %32
54         %34 = OpAccessChain %_ptr_Uniform_uint %_ %int_1 %19
55               OpStore %34 %33
56               OpBranch %25
57         %25 = OpLabel
58               OpReturn
59               OpFunctionEnd
60