1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 8
4; Bound: 48
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint GLCompute %main "main" %ssbo
10               OpExecutionMode %main LocalSize 1 1 1
11               OpSource GLSL 450
12		OpName %B1 "B1"
13		OpName %A "A"
14		OpName %C "C"
15		OpName %B2 "B2"
16		OpMemberName %A 0 "a"
17		OpMemberName %A 1 "b1"
18		OpMemberName %A 2 "b1_array"
19		OpMemberName %C 0 "c"
20		OpMemberName %C 1 "b2"
21		OpMemberName %C 2 "b2_array"
22		OpMemberName %B1 0 "elem1"
23		OpMemberName %B2 0 "elem2"
24		OpMemberName %SSBO 0 "a_block"
25		OpMemberName %SSBO 1 "c_block"
26		OpDecorate %B1Array ArrayStride 16
27		OpDecorate %B2Array ArrayStride 16
28               OpMemberDecorate %B1 0 Offset 0
29               OpMemberDecorate %A 0 Offset 0
30               OpMemberDecorate %A 1 Offset 16
31               OpMemberDecorate %A 2 Offset 32
32               OpMemberDecorate %B2 0 Offset 0
33               OpMemberDecorate %C 0 Offset 0
34               OpMemberDecorate %C 1 Offset 16
35               OpMemberDecorate %C 2 Offset 32
36               OpMemberDecorate %SSBO 0 Offset 0
37               OpMemberDecorate %SSBO 1 Offset 96
38               OpDecorate %SSBO Block
39               OpDecorate %ssbo DescriptorSet 0
40               OpDecorate %ssbo Binding 0
41       %void = OpTypeVoid
42          %3 = OpTypeFunction %void
43      %float = OpTypeFloat 32
44	%uint = OpTypeInt 32 0
45	%uint_4 = OpConstant %uint 4
46    %v4float = OpTypeVector %float 4
47         %B2 = OpTypeStruct %v4float
48	%B2Array = OpTypeArray %B2 %uint_4
49          %C = OpTypeStruct %v4float %B2 %B2Array
50         %B1 = OpTypeStruct %v4float
51	%B1Array = OpTypeArray %B1 %uint_4
52          %A = OpTypeStruct %v4float %B1 %B1Array
53       %SSBO = OpTypeStruct %A %C
54%_ptr_Uniform_SSBO = OpTypePointer StorageBuffer %SSBO
55       %ssbo = OpVariable %_ptr_Uniform_SSBO StorageBuffer
56        %int = OpTypeInt 32 1
57      %int_1 = OpConstant %int 1
58%_ptr_Uniform_C = OpTypePointer StorageBuffer %C
59      %int_0 = OpConstant %int 0
60%_ptr_Uniform_A = OpTypePointer StorageBuffer %A
61       %main = OpFunction %void None %3
62          %5 = OpLabel
63         %22 = OpAccessChain %_ptr_Uniform_C %ssbo %int_1
64         %39 = OpAccessChain %_ptr_Uniform_A %ssbo %int_0
65         %23 = OpLoad %C %22
66         %24 = OpCopyLogical %A %23
67               OpStore %39 %24
68               OpReturn
69               OpFunctionEnd
70