1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 8
4; Bound: 26
5; Schema: 0
6               OpCapability Shader
7               OpCapability ShaderNonUniform
8               OpCapability RuntimeDescriptorArray
9               OpCapability StorageBufferArrayNonUniformIndexing
10               OpExtension "SPV_EXT_descriptor_indexing"
11          %1 = OpExtInstImport "GLSL.std.450"
12               OpMemoryModel Logical GLSL450
13               OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID
14               OpExecutionMode %main LocalSize 1 1 1
15               OpSource GLSL 450
16               OpSourceExtension "GL_EXT_nonuniform_qualifier"
17               OpName %main "main"
18               OpName %SSBO "SSBO"
19               OpMemberName %SSBO 0 "v"
20               OpName %ssbos "ssbos"
21               OpName %gl_GlobalInvocationID "gl_GlobalInvocationID"
22               OpMemberDecorate %SSBO 0 Offset 0
23               OpDecorate %SSBO BufferBlock
24               OpDecorate %ssbos DescriptorSet 0
25               OpDecorate %ssbos Binding 0
26               OpDecorate %gl_GlobalInvocationID BuiltIn GlobalInvocationId
27               OpDecorate %22 NonUniform
28       %void = OpTypeVoid
29          %3 = OpTypeFunction %void
30       %uint = OpTypeInt 32 0
31       %SSBO = OpTypeStruct %uint
32%_runtimearr_SSBO = OpTypeRuntimeArray %SSBO
33%_ptr_Uniform__runtimearr_SSBO = OpTypePointer Uniform %_runtimearr_SSBO
34      %ssbos = OpVariable %_ptr_Uniform__runtimearr_SSBO Uniform
35     %v3uint = OpTypeVector %uint 3
36%_ptr_Input_v3uint = OpTypePointer Input %v3uint
37%gl_GlobalInvocationID = OpVariable %_ptr_Input_v3uint Input
38     %uint_2 = OpConstant %uint 2
39%_ptr_Input_uint = OpTypePointer Input %uint
40        %int = OpTypeInt 32 1
41      %int_0 = OpConstant %int 0
42%_ptr_Uniform_uint = OpTypePointer Uniform %uint
43     %uint_1 = OpConstant %uint 1
44     %uint_0 = OpConstant %uint 0
45       %main = OpFunction %void None %3
46          %5 = OpLabel
47         %16 = OpAccessChain %_ptr_Input_uint %gl_GlobalInvocationID %uint_2
48         %17 = OpLoad %uint %16
49         %18 = OpCopyObject %uint %17
50         %22 = OpAccessChain %_ptr_Uniform_uint %ssbos %18 %int_0
51         %25 = OpAtomicIAdd %uint %22 %uint_1 %uint_0 %uint_1
52               OpReturn
53               OpFunctionEnd
54