1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 7
4; Bound: 37
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 %T "T"
14               OpMemberName %T 0 "a"
15               OpName %v "v"
16               OpName %T_0 "T"
17               OpMemberName %T_0 0 "b"
18               OpName %SSBO1 "SSBO1"
19               OpMemberName %SSBO1 0 "foo"
20               OpName %_ ""
21               OpName %T_1 "T"
22               OpMemberName %T_1 0 "c"
23               OpName %SSBO2 "SSBO2"
24               OpMemberName %SSBO2 0 "bar"
25               OpName %__0 ""
26               OpMemberDecorate %T_0 0 Offset 0
27               OpDecorate %_runtimearr_T_0 ArrayStride 4
28               OpMemberDecorate %SSBO1 0 Offset 0
29               OpDecorate %SSBO1 BufferBlock
30               OpDecorate %_ DescriptorSet 0
31               OpDecorate %_ Binding 0
32               OpMemberDecorate %T_1 0 Offset 0
33               OpDecorate %_runtimearr_T_1 ArrayStride 16
34               OpMemberDecorate %SSBO2 0 Offset 0
35               OpDecorate %SSBO2 BufferBlock
36               OpDecorate %__0 DescriptorSet 0
37               OpDecorate %__0 Binding 1
38       %void = OpTypeVoid
39          %3 = OpTypeFunction %void
40      %float = OpTypeFloat 32
41          %T = OpTypeStruct %float
42%_ptr_Function_T = OpTypePointer Function %T
43   %float_40 = OpConstant %float 40
44         %11 = OpConstantComposite %T %float_40
45        %T_0 = OpTypeStruct %float
46%_runtimearr_T_0 = OpTypeRuntimeArray %T_0
47      %SSBO1 = OpTypeStruct %_runtimearr_T_0
48%_ptr_Uniform_SSBO1 = OpTypePointer Uniform %SSBO1
49          %_ = OpVariable %_ptr_Uniform_SSBO1 Uniform
50        %int = OpTypeInt 32 1
51      %int_0 = OpConstant %int 0
52     %int_10 = OpConstant %int 10
53%_ptr_Uniform_T_0 = OpTypePointer Uniform %T_0
54%_ptr_Uniform_float = OpTypePointer Uniform %float
55        %T_1 = OpTypeStruct %float
56%_runtimearr_T_1 = OpTypeRuntimeArray %T_1
57      %SSBO2 = OpTypeStruct %_runtimearr_T_1
58%_ptr_Uniform_SSBO2 = OpTypePointer Uniform %SSBO2
59        %__0 = OpVariable %_ptr_Uniform_SSBO2 Uniform
60     %int_30 = OpConstant %int 30
61%_ptr_Uniform_T_1 = OpTypePointer Uniform %T_1
62       %main = OpFunction %void None %3
63          %5 = OpLabel
64          %v = OpVariable %_ptr_Function_T Function
65               OpStore %v %11
66         %20 = OpLoad %T %v
67         %22 = OpAccessChain %_ptr_Uniform_T_0 %_ %int_0 %int_10
68         %23 = OpCompositeExtract %float %20 0
69         %25 = OpAccessChain %_ptr_Uniform_float %22 %int_0
70               OpStore %25 %23
71         %32 = OpLoad %T %v
72         %34 = OpAccessChain %_ptr_Uniform_T_1 %__0 %int_0 %int_30
73         %35 = OpCompositeExtract %float %32 0
74         %36 = OpAccessChain %_ptr_Uniform_float %34 %int_0
75               OpStore %36 %35
76               OpReturn
77               OpFunctionEnd
78