1               OpCapability Shader
2          %1 = OpExtInstImport "GLSL.std.450"
3               OpMemoryModel Logical GLSL450
4               OpEntryPoint Fragment %main "main" %_GLF_color
5               OpExecutionMode %main OriginUpperLeft
6               OpSource ESSL 310
7               OpName %main "main"
8               OpName %sums "sums"
9               OpName %buf1 "buf1"
10               OpMemberName %buf1 0 "_GLF_uniform_int_values"
11               OpName %_ ""
12               OpName %buf0 "buf0"
13               OpMemberName %buf0 0 "_GLF_uniform_float_values"
14               OpName %__0 ""
15               OpName %a "a"
16               OpName %b "b"
17               OpName %c "c"
18               OpName %d "d"
19               OpName %indexable "indexable"
20               OpName %indexable_0 "indexable"
21               OpName %_GLF_color "_GLF_color"
22               OpDecorate %_arr_int_uint_4 ArrayStride 16
23               OpMemberDecorate %buf1 0 RelaxedPrecision
24               OpMemberDecorate %buf1 0 Offset 0
25               OpDecorate %buf1 Block
26               OpDecorate %_ DescriptorSet 0
27               OpDecorate %_ Binding 1
28               OpDecorate %16 RelaxedPrecision
29               OpDecorate %_arr_float_uint_3 ArrayStride 16
30               OpMemberDecorate %buf0 0 Offset 0
31               OpDecorate %buf0 Block
32               OpDecorate %__0 DescriptorSet 0
33               OpDecorate %__0 Binding 0
34               OpDecorate %18 RelaxedPrecision
35               OpDecorate %a RelaxedPrecision
36               OpDecorate %19 RelaxedPrecision
37               OpDecorate %20 RelaxedPrecision
38               OpDecorate %21 RelaxedPrecision
39               OpDecorate %b RelaxedPrecision
40               OpDecorate %22 RelaxedPrecision
41               OpDecorate %23 RelaxedPrecision
42               OpDecorate %24 RelaxedPrecision
43               OpDecorate %c RelaxedPrecision
44               OpDecorate %25 RelaxedPrecision
45               OpDecorate %26 RelaxedPrecision
46               OpDecorate %27 RelaxedPrecision
47               OpDecorate %d RelaxedPrecision
48               OpDecorate %28 RelaxedPrecision
49               OpDecorate %29 RelaxedPrecision
50               OpDecorate %30 RelaxedPrecision
51               OpDecorate %31 RelaxedPrecision
52               OpDecorate %32 RelaxedPrecision
53               OpDecorate %33 RelaxedPrecision
54               OpDecorate %34 RelaxedPrecision
55               OpDecorate %35 RelaxedPrecision
56               OpDecorate %36 RelaxedPrecision
57               OpDecorate %37 RelaxedPrecision
58               OpDecorate %38 RelaxedPrecision
59               OpDecorate %39 RelaxedPrecision
60               OpDecorate %40 RelaxedPrecision
61               OpDecorate %41 RelaxedPrecision
62               OpDecorate %42 RelaxedPrecision
63               OpDecorate %43 RelaxedPrecision
64               OpDecorate %44 RelaxedPrecision
65               OpDecorate %45 RelaxedPrecision
66               OpDecorate %46 RelaxedPrecision
67               OpDecorate %47 RelaxedPrecision
68               OpDecorate %48 RelaxedPrecision
69               OpDecorate %_GLF_color Location 0
70               OpDecorate %49 RelaxedPrecision
71               OpDecorate %50 RelaxedPrecision
72               OpDecorate %51 RelaxedPrecision
73               OpDecorate %52 RelaxedPrecision
74               OpDecorate %53 RelaxedPrecision
75       %void = OpTypeVoid
76         %55 = OpTypeFunction %void
77      %float = OpTypeFloat 32
78       %uint = OpTypeInt 32 0
79     %uint_2 = OpConstant %uint 2
80%_arr_float_uint_2 = OpTypeArray %float %uint_2
81%_ptr_Function__arr_float_uint_2 = OpTypePointer Function %_arr_float_uint_2
82        %int = OpTypeInt 32 1
83     %uint_4 = OpConstant %uint 4
84%_arr_int_uint_4 = OpTypeArray %int %uint_4
85       %buf1 = OpTypeStruct %_arr_int_uint_4
86%_ptr_Uniform_buf1 = OpTypePointer Uniform %buf1
87          %_ = OpVariable %_ptr_Uniform_buf1 Uniform
88      %int_0 = OpConstant %int 0
89      %int_1 = OpConstant %int 1
90%_ptr_Uniform_int = OpTypePointer Uniform %int
91     %uint_3 = OpConstant %uint 3
92%_arr_float_uint_3 = OpTypeArray %float %uint_3
93       %buf0 = OpTypeStruct %_arr_float_uint_3
94%_ptr_Uniform_buf0 = OpTypePointer Uniform %buf0
95        %__0 = OpVariable %_ptr_Uniform_buf0 Uniform
96%_ptr_Uniform_float = OpTypePointer Uniform %float
97%_ptr_Function_float = OpTypePointer Function %float
98      %int_2 = OpConstant %int 2
99%_ptr_Function_int = OpTypePointer Function %int
100       %bool = OpTypeBool
101      %int_3 = OpConstant %int 3
102    %v2float = OpTypeVector %float 2
103%mat2v2float = OpTypeMatrix %v2float 2
104    %float_1 = OpConstant %float 1
105    %float_0 = OpConstant %float 0
106%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
107    %v4float = OpTypeVector %float 4
108%_ptr_Output_v4float = OpTypePointer Output %v4float
109 %_GLF_color = OpVariable %_ptr_Output_v4float Output
110       %main = OpFunction %void None %55
111         %82 = OpLabel
112       %sums = OpVariable %_ptr_Function__arr_float_uint_2 Function
113          %a = OpVariable %_ptr_Function_int Function
114          %b = OpVariable %_ptr_Function_int Function
115          %c = OpVariable %_ptr_Function_int Function
116          %d = OpVariable %_ptr_Function_int Function
117  %indexable = OpVariable %_ptr_Function_mat2v2float Function
118%indexable_0 = OpVariable %_ptr_Function_mat2v2float Function
119         %83 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
120         %16 = OpLoad %int %83
121         %84 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
122         %85 = OpLoad %float %84
123         %86 = OpFNegate %float %85
124         %87 = OpAccessChain %_ptr_Function_float %sums %16
125               OpStore %87 %86
126         %88 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
127         %18 = OpLoad %int %88
128         %89 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_0
129         %90 = OpLoad %float %89
130         %91 = OpFNegate %float %90
131         %92 = OpAccessChain %_ptr_Function_float %sums %18
132               OpStore %92 %91
133         %93 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
134         %19 = OpLoad %int %93
135               OpStore %a %19
136               OpBranch %94
137         %94 = OpLabel
138               OpLoopMerge %95 %96 None
139               OpBranch %97
140         %97 = OpLabel
141         %20 = OpLoad %int %a
142         %98 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_0
143         %21 = OpLoad %int %98
144         %99 = OpSLessThan %bool %20 %21
145               OpBranchConditional %99 %100 %95
146        %100 = OpLabel
147        %101 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
148         %22 = OpLoad %int %101
149               OpStore %b %22
150               OpBranch %102
151        %102 = OpLabel
152               OpLoopMerge %103 %104 None
153               OpBranch %105
154        %105 = OpLabel
155         %23 = OpLoad %int %b
156        %106 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_3
157         %24 = OpLoad %int %106
158        %107 = OpSLessThan %bool %23 %24
159               OpBranchConditional %107 %108 %103
160        %108 = OpLabel
161        %109 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
162         %25 = OpLoad %int %109
163               OpStore %c %25
164               OpBranch %110
165        %110 = OpLabel
166               OpLoopMerge %111 %112 None
167               OpBranch %113
168        %113 = OpLabel
169         %26 = OpLoad %int %c
170         %27 = OpLoad %int %a
171        %114 = OpSLessThanEqual %bool %26 %27
172               OpBranchConditional %114 %115 %111
173        %115 = OpLabel
174        %116 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
175         %28 = OpLoad %int %116
176               OpStore %d %28
177               OpBranch %117
178        %117 = OpLabel
179               OpLoopMerge %118 %119 None
180               OpBranch %120
181        %120 = OpLabel
182         %29 = OpLoad %int %d
183        %121 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_3
184         %30 = OpLoad %int %121
185        %122 = OpSLessThan %bool %29 %30
186               OpBranchConditional %122 %123 %118
187        %123 = OpLabel
188         %31 = OpLoad %int %a
189        %124 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
190         %32 = OpLoad %int %124
191        %125 = OpConvertSToF %float %32
192        %126 = OpCompositeConstruct %v2float %125 %float_0
193        %127 = OpCompositeConstruct %v2float %float_0 %125
194        %128 = OpCompositeConstruct %mat2v2float %126 %127
195         %33 = OpLoad %int %c
196        %129 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
197         %34 = OpLoad %int %129
198               OpStore %indexable %128
199        %130 = OpAccessChain %_ptr_Function_float %indexable %33 %34
200        %131 = OpLoad %float %130
201        %132 = OpAccessChain %_ptr_Function_float %sums %31
202               OpStore %132 %131
203         %35 = OpLoad %int %a
204        %133 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
205         %36 = OpLoad %int %133
206        %134 = OpConvertSToF %float %36
207        %135 = OpCompositeConstruct %v2float %134 %float_0
208        %136 = OpCompositeConstruct %v2float %float_0 %134
209        %137 = OpCompositeConstruct %mat2v2float %135 %136
210         %37 = OpLoad %int %c
211        %138 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
212         %38 = OpLoad %int %138
213               OpStore %indexable_0 %137
214        %139 = OpAccessChain %_ptr_Function_float %indexable_0 %37 %38
215        %140 = OpLoad %float %139
216        %141 = OpAccessChain %_ptr_Function_float %sums %35
217        %142 = OpLoad %float %141
218        %143 = OpFAdd %float %142 %140
219        %144 = OpAccessChain %_ptr_Function_float %sums %35
220               OpStore %144 %143
221               OpBranch %119
222        %119 = OpLabel
223         %39 = OpLoad %int %d
224         %40 = OpIAdd %int %39 %int_1
225               OpStore %d %40
226               OpBranch %117
227        %118 = OpLabel
228               OpBranch %112
229        %112 = OpLabel
230         %41 = OpLoad %int %c
231         %42 = OpIAdd %int %41 %int_1
232               OpStore %c %42
233               OpBranch %110
234        %111 = OpLabel
235               OpBranch %104
236        %104 = OpLabel
237         %43 = OpLoad %int %b
238         %44 = OpIAdd %int %43 %int_1
239               OpStore %b %44
240               OpBranch %102
241        %103 = OpLabel
242               OpBranch %96
243         %96 = OpLabel
244         %45 = OpLoad %int %a
245         %46 = OpIAdd %int %45 %int_1
246               OpStore %a %46
247               OpBranch %94
248         %95 = OpLabel
249        %145 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
250         %47 = OpLoad %int %145
251        %146 = OpAccessChain %_ptr_Function_float %sums %47
252        %147 = OpLoad %float %146
253        %148 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_1
254        %149 = OpLoad %float %148
255        %150 = OpFOrdEqual %bool %147 %149
256               OpSelectionMerge %151 None
257               OpBranchConditional %150 %152 %151
258        %152 = OpLabel
259        %153 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
260         %48 = OpLoad %int %153
261        %154 = OpAccessChain %_ptr_Function_float %sums %48
262        %155 = OpLoad %float %154
263        %156 = OpAccessChain %_ptr_Uniform_float %__0 %int_0 %int_2
264        %157 = OpLoad %float %156
265        %158 = OpFOrdEqual %bool %155 %157
266               OpBranch %151
267        %151 = OpLabel
268        %159 = OpPhi %bool %150 %95 %158 %152
269               OpSelectionMerge %160 None
270               OpBranchConditional %159 %161 %162
271        %161 = OpLabel
272        %163 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
273         %49 = OpLoad %int %163
274        %164 = OpConvertSToF %float %49
275        %165 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
276         %50 = OpLoad %int %165
277        %166 = OpConvertSToF %float %50
278        %167 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
279         %51 = OpLoad %int %167
280        %168 = OpConvertSToF %float %51
281        %169 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_2
282         %52 = OpLoad %int %169
283        %170 = OpConvertSToF %float %52
284        %171 = OpCompositeConstruct %v4float %164 %166 %168 %170
285               OpStore %_GLF_color %171
286               OpBranch %160
287        %162 = OpLabel
288        %172 = OpAccessChain %_ptr_Uniform_int %_ %int_0 %int_1
289         %53 = OpLoad %int %172
290        %173 = OpConvertSToF %float %53
291        %174 = OpCompositeConstruct %v4float %173 %173 %173 %173
292               OpStore %_GLF_color %174
293               OpBranch %160
294        %160 = OpLabel
295               OpReturn
296               OpFunctionEnd
297