1; SPIR-V
2; Version: 1.0
3; Generator: Khronos Glslang Reference Front End; 6
4; Bound: 61
5; Schema: 0
6               OpCapability Shader
7          %1 = OpExtInstImport "GLSL.std.450"
8               OpMemoryModel Logical GLSL450
9               OpEntryPoint GLCompute %main "main" %id_1
10               OpExecutionMode %main LocalSize 1 1 1
11               OpSource HLSL 500
12               OpName %main "main"
13               OpName %Load_u1_ "Load(u1;"
14               OpName %size "size"
15               OpName %_main_vu3_ "@main(vu3;"
16               OpName %id "id"
17               OpName %data "data"
18               OpName %byteAddrTemp "byteAddrTemp"
19               OpName %ssbo "ssbo"
20               OpMemberName %ssbo 0 "@data"
21               OpName %ssbo_0 "ssbo"
22               OpName %param "param"
23               OpName %id_0 "id"
24               OpName %id_1 "id"
25               OpName %param_0 "param"
26               OpDecorate %_runtimearr_uint ArrayStride 4
27               OpMemberDecorate %ssbo 0 NonWritable
28               OpMemberDecorate %ssbo 0 Offset 0
29               OpDecorate %ssbo BufferBlock
30               OpDecorate %ssbo_0 DescriptorSet 0
31               OpDecorate %ssbo_0 Binding 1
32               OpDecorate %id_1 BuiltIn GlobalInvocationId
33       %void = OpTypeVoid
34          %3 = OpTypeFunction %void
35       %uint = OpTypeInt 32 0
36%_ptr_Function_uint = OpTypePointer Function %uint
37          %8 = OpTypeFunction %void %_ptr_Function_uint
38     %v3uint = OpTypeVector %uint 3
39%_ptr_Function_v3uint = OpTypePointer Function %v3uint
40         %14 = OpTypeFunction %void %_ptr_Function_v3uint
41     %v4uint = OpTypeVector %uint 4
42%_ptr_Function_v4uint = OpTypePointer Function %v4uint
43        %int = OpTypeInt 32 1
44%_ptr_Function_int = OpTypePointer Function %int
45      %int_2 = OpConstant %int 2
46%_runtimearr_uint = OpTypeRuntimeArray %uint
47       %ssbo = OpTypeStruct %_runtimearr_uint
48%_ptr_Uniform_ssbo = OpTypePointer Uniform %ssbo
49     %ssbo_0 = OpVariable %_ptr_Uniform_ssbo Uniform
50      %int_0 = OpConstant %int 0
51%_ptr_Uniform_uint = OpTypePointer Uniform %uint
52      %int_1 = OpConstant %int 1
53      %int_3 = OpConstant %int 3
54     %uint_4 = OpConstant %uint 4
55%_ptr_Input_v3uint = OpTypePointer Input %v3uint
56       %id_1 = OpVariable %_ptr_Input_v3uint Input
57       %main = OpFunction %void None %3
58          %5 = OpLabel
59       %id_0 = OpVariable %_ptr_Function_v3uint Function
60    %param_0 = OpVariable %_ptr_Function_v3uint Function
61         %57 = OpLoad %v3uint %id_1
62               OpStore %id_0 %57
63         %59 = OpLoad %v3uint %id_0
64               OpStore %param_0 %59
65         %60 = OpFunctionCall %void %_main_vu3_ %param_0
66               OpReturn
67               OpFunctionEnd
68   %Load_u1_ = OpFunction %void None %8
69       %size = OpFunctionParameter %_ptr_Function_uint
70         %11 = OpLabel
71       %data = OpVariable %_ptr_Function_v4uint Function
72%byteAddrTemp = OpVariable %_ptr_Function_int Function
73         %24 = OpLoad %uint %size
74         %26 = OpShiftRightLogical %int %24 %int_2
75               OpStore %byteAddrTemp %26
76         %32 = OpLoad %int %byteAddrTemp
77         %34 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %32
78         %35 = OpLoad %uint %34
79         %36 = OpLoad %int %byteAddrTemp
80         %38 = OpIAdd %int %36 %int_1
81         %39 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %38
82         %40 = OpLoad %uint %39
83         %41 = OpLoad %int %byteAddrTemp
84         %42 = OpIAdd %int %41 %int_2
85         %43 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %42
86         %44 = OpLoad %uint %43
87         %45 = OpLoad %int %byteAddrTemp
88         %47 = OpIAdd %int %45 %int_3
89         %48 = OpAccessChain %_ptr_Uniform_uint %ssbo_0 %int_0 %47
90         %49 = OpLoad %uint %48
91         %50 = OpCompositeConstruct %v4uint %35 %40 %44 %49
92               OpStore %data %50
93               OpReturn
94               OpFunctionEnd
95 %_main_vu3_ = OpFunction %void None %14
96         %id = OpFunctionParameter %_ptr_Function_v3uint
97         %17 = OpLabel
98      %param = OpVariable %_ptr_Function_uint Function
99               OpStore %param %uint_4
100         %53 = OpFunctionCall %void %Load_u1_ %param
101               OpReturn
102               OpFunctionEnd
103