1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 8
4; Bound: 23
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint GLCompute %main "main"
10               OpExecutionMode %main LocalSize 1 1 1
11               OpSource GLSL 450
12               OpName %main "main"
13               OpName %c "c"
14               OpName %SSBO "SSBO"
15               OpMemberName %SSBO 0 "a"
16               OpMemberName %SSBO 1 "b"
17               OpName %_ ""
18               OpMemberDecorate %SSBO 0 Offset 0
19               OpMemberDecorate %SSBO 1 Offset 4
20               OpDecorate %SSBO BufferBlock
21               OpDecorate %_ DescriptorSet 0
22               OpDecorate %_ Binding 0
23               OpDecorate %gl_WorkGroupSize BuiltIn WorkgroupSize
24       %void = OpTypeVoid
25          %3 = OpTypeFunction %void
26       %uint = OpTypeInt 32 0
27%_ptr_Function_uint = OpTypePointer Function %uint
28       %SSBO = OpTypeStruct %uint %uint
29%_ptr_Uniform_SSBO = OpTypePointer Uniform %SSBO
30          %_ = OpVariable %_ptr_Uniform_SSBO Uniform
31        %int = OpTypeInt 32 1
32      %int_1 = OpConstant %int 1
33%_ptr_Uniform_uint = OpTypePointer Uniform %uint
34      %int_0 = OpConstant %int 0
35     %v3uint = OpTypeVector %uint 3
36     %uint_1 = OpConstant %uint 1
37%gl_WorkGroupSize = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
38       %main = OpFunction %void None %3
39          %5 = OpLabel
40          %c = OpVariable %_ptr_Function_uint Function
41         %15 = OpAccessChain %_ptr_Uniform_uint %_ %int_1
42         %16 = OpAtomicLoad %uint %15 %int_1 %int_0
43               OpStore %c %16
44         %18 = OpLoad %uint %c
45         %19 = OpAccessChain %_ptr_Uniform_uint %_ %int_0
46               OpAtomicStore %19 %int_1 %int_0 %18
47               OpReturn
48               OpFunctionEnd
49