1OpCapability Shader
2%1 = OpExtInstImport "GLSL.std.450"
3OpMemoryModel Logical GLSL450
4OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5OpExecutionMode %_entrypoint_v OriginUpperLeft
6OpName %sk_FragColor "sk_FragColor"
7OpName %sk_Clockwise "sk_Clockwise"
8OpName %_UniformBuffer "_UniformBuffer"
9OpMemberName %_UniformBuffer 0 "colorRed"
10OpMemberName %_UniformBuffer 1 "colorGreen"
11OpMemberName %_UniformBuffer 2 "unknownInput"
12OpName %_entrypoint_v "_entrypoint_v"
13OpName %test_int_b "test_int_b"
14OpName %ok "ok"
15OpName %inputRed "inputRed"
16OpName %inputGreen "inputGreen"
17OpName %x "x"
18OpName %main "main"
19OpName %_0_ok "_0_ok"
20OpName %_1_inputRed "_1_inputRed"
21OpName %_2_inputGreen "_2_inputGreen"
22OpName %_3_x "_3_x"
23OpDecorate %sk_FragColor RelaxedPrecision
24OpDecorate %sk_FragColor Location 0
25OpDecorate %sk_FragColor Index 0
26OpDecorate %sk_Clockwise BuiltIn FrontFacing
27OpMemberDecorate %_UniformBuffer 0 Offset 0
28OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
29OpMemberDecorate %_UniformBuffer 1 Offset 16
30OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
31OpMemberDecorate %_UniformBuffer 2 Offset 32
32OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
33OpDecorate %_UniformBuffer Block
34OpDecorate %11 Binding 0
35OpDecorate %11 DescriptorSet 0
36OpDecorate %36 RelaxedPrecision
37OpDecorate %37 RelaxedPrecision
38OpDecorate %39 RelaxedPrecision
39OpDecorate %41 RelaxedPrecision
40OpDecorate %43 RelaxedPrecision
41OpDecorate %49 RelaxedPrecision
42OpDecorate %50 RelaxedPrecision
43OpDecorate %52 RelaxedPrecision
44OpDecorate %54 RelaxedPrecision
45OpDecorate %56 RelaxedPrecision
46OpDecorate %65 RelaxedPrecision
47OpDecorate %79 RelaxedPrecision
48OpDecorate %94 RelaxedPrecision
49OpDecorate %110 RelaxedPrecision
50OpDecorate %125 RelaxedPrecision
51OpDecorate %138 RelaxedPrecision
52OpDecorate %149 RelaxedPrecision
53OpDecorate %161 RelaxedPrecision
54OpDecorate %174 RelaxedPrecision
55OpDecorate %188 RelaxedPrecision
56OpDecorate %202 RelaxedPrecision
57OpDecorate %216 RelaxedPrecision
58OpDecorate %236 RelaxedPrecision
59OpDecorate %255 RelaxedPrecision
60OpDecorate %262 RelaxedPrecision
61OpDecorate %_1_inputRed RelaxedPrecision
62OpDecorate %270 RelaxedPrecision
63OpDecorate %_2_inputGreen RelaxedPrecision
64OpDecorate %273 RelaxedPrecision
65OpDecorate %_3_x RelaxedPrecision
66OpDecorate %275 RelaxedPrecision
67OpDecorate %277 RelaxedPrecision
68OpDecorate %278 RelaxedPrecision
69OpDecorate %279 RelaxedPrecision
70OpDecorate %282 RelaxedPrecision
71OpDecorate %284 RelaxedPrecision
72OpDecorate %288 RelaxedPrecision
73OpDecorate %289 RelaxedPrecision
74OpDecorate %290 RelaxedPrecision
75OpDecorate %291 RelaxedPrecision
76OpDecorate %292 RelaxedPrecision
77OpDecorate %295 RelaxedPrecision
78OpDecorate %298 RelaxedPrecision
79OpDecorate %302 RelaxedPrecision
80OpDecorate %303 RelaxedPrecision
81OpDecorate %304 RelaxedPrecision
82OpDecorate %305 RelaxedPrecision
83OpDecorate %306 RelaxedPrecision
84OpDecorate %307 RelaxedPrecision
85OpDecorate %310 RelaxedPrecision
86OpDecorate %312 RelaxedPrecision
87OpDecorate %316 RelaxedPrecision
88OpDecorate %317 RelaxedPrecision
89OpDecorate %320 RelaxedPrecision
90OpDecorate %321 RelaxedPrecision
91OpDecorate %322 RelaxedPrecision
92OpDecorate %323 RelaxedPrecision
93OpDecorate %326 RelaxedPrecision
94OpDecorate %327 RelaxedPrecision
95OpDecorate %331 RelaxedPrecision
96OpDecorate %332 RelaxedPrecision
97OpDecorate %333 RelaxedPrecision
98OpDecorate %334 RelaxedPrecision
99OpDecorate %335 RelaxedPrecision
100OpDecorate %336 RelaxedPrecision
101OpDecorate %339 RelaxedPrecision
102OpDecorate %342 RelaxedPrecision
103OpDecorate %346 RelaxedPrecision
104OpDecorate %348 RelaxedPrecision
105OpDecorate %349 RelaxedPrecision
106OpDecorate %350 RelaxedPrecision
107OpDecorate %353 RelaxedPrecision
108OpDecorate %354 RelaxedPrecision
109OpDecorate %358 RelaxedPrecision
110OpDecorate %359 RelaxedPrecision
111OpDecorate %360 RelaxedPrecision
112OpDecorate %361 RelaxedPrecision
113OpDecorate %364 RelaxedPrecision
114OpDecorate %369 RelaxedPrecision
115OpDecorate %370 RelaxedPrecision
116OpDecorate %371 RelaxedPrecision
117OpDecorate %372 RelaxedPrecision
118OpDecorate %373 RelaxedPrecision
119OpDecorate %376 RelaxedPrecision
120OpDecorate %377 RelaxedPrecision
121OpDecorate %381 RelaxedPrecision
122OpDecorate %382 RelaxedPrecision
123OpDecorate %383 RelaxedPrecision
124OpDecorate %384 RelaxedPrecision
125OpDecorate %385 RelaxedPrecision
126OpDecorate %386 RelaxedPrecision
127OpDecorate %389 RelaxedPrecision
128OpDecorate %390 RelaxedPrecision
129OpDecorate %394 RelaxedPrecision
130OpDecorate %395 RelaxedPrecision
131OpDecorate %396 RelaxedPrecision
132OpDecorate %397 RelaxedPrecision
133OpDecorate %398 RelaxedPrecision
134OpDecorate %399 RelaxedPrecision
135OpDecorate %402 RelaxedPrecision
136OpDecorate %407 RelaxedPrecision
137OpDecorate %408 RelaxedPrecision
138OpDecorate %409 RelaxedPrecision
139OpDecorate %410 RelaxedPrecision
140OpDecorate %411 RelaxedPrecision
141OpDecorate %412 RelaxedPrecision
142OpDecorate %413 RelaxedPrecision
143OpDecorate %416 RelaxedPrecision
144OpDecorate %417 RelaxedPrecision
145OpDecorate %421 RelaxedPrecision
146OpDecorate %422 RelaxedPrecision
147OpDecorate %423 RelaxedPrecision
148OpDecorate %424 RelaxedPrecision
149OpDecorate %425 RelaxedPrecision
150OpDecorate %428 RelaxedPrecision
151OpDecorate %429 RelaxedPrecision
152OpDecorate %433 RelaxedPrecision
153OpDecorate %434 RelaxedPrecision
154OpDecorate %435 RelaxedPrecision
155OpDecorate %436 RelaxedPrecision
156OpDecorate %437 RelaxedPrecision
157OpDecorate %438 RelaxedPrecision
158OpDecorate %439 RelaxedPrecision
159OpDecorate %440 RelaxedPrecision
160OpDecorate %441 RelaxedPrecision
161OpDecorate %442 RelaxedPrecision
162OpDecorate %443 RelaxedPrecision
163OpDecorate %444 RelaxedPrecision
164OpDecorate %447 RelaxedPrecision
165OpDecorate %451 RelaxedPrecision
166OpDecorate %452 RelaxedPrecision
167OpDecorate %453 RelaxedPrecision
168OpDecorate %454 RelaxedPrecision
169OpDecorate %455 RelaxedPrecision
170OpDecorate %456 RelaxedPrecision
171OpDecorate %457 RelaxedPrecision
172OpDecorate %458 RelaxedPrecision
173OpDecorate %459 RelaxedPrecision
174OpDecorate %461 RelaxedPrecision
175OpDecorate %462 RelaxedPrecision
176OpDecorate %465 RelaxedPrecision
177OpDecorate %469 RelaxedPrecision
178OpDecorate %479 RelaxedPrecision
179OpDecorate %481 RelaxedPrecision
180OpDecorate %482 RelaxedPrecision
181%float = OpTypeFloat 32
182%v4float = OpTypeVector %float 4
183%_ptr_Output_v4float = OpTypePointer Output %v4float
184%sk_FragColor = OpVariable %_ptr_Output_v4float Output
185%bool = OpTypeBool
186%_ptr_Input_bool = OpTypePointer Input %bool
187%sk_Clockwise = OpVariable %_ptr_Input_bool Input
188%_UniformBuffer = OpTypeStruct %v4float %v4float %float
189%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
190%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
191%void = OpTypeVoid
192%16 = OpTypeFunction %void
193%v2float = OpTypeVector %float 2
194%float_0 = OpConstant %float 0
195%20 = OpConstantComposite %v2float %float_0 %float_0
196%_ptr_Function_v2float = OpTypePointer Function %v2float
197%24 = OpTypeFunction %bool
198%_ptr_Function_bool = OpTypePointer Function %bool
199%true = OpConstantTrue %bool
200%int = OpTypeInt 32 1
201%v4int = OpTypeVector %int 4
202%_ptr_Function_v4int = OpTypePointer Function %v4int
203%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
204%int_0 = OpConstant %int 0
205%int_1 = OpConstant %int 1
206%int_2 = OpConstant %int 2
207%false = OpConstantFalse %bool
208%int_3 = OpConstant %int 3
209%70 = OpConstantComposite %v4int %int_3 %int_2 %int_2 %int_3
210%v4bool = OpTypeVector %bool 4
211%int_n1 = OpConstant %int -1
212%int_n2 = OpConstant %int -2
213%85 = OpConstantComposite %v4int %int_n1 %int_n1 %int_n2 %int_n2
214%98 = OpConstantComposite %v4int %int_2 %int_1 %int_1 %int_2
215%v3int = OpTypeVector %int 3
216%int_9 = OpConstant %int 9
217%114 = OpConstantComposite %v4int %int_9 %int_9 %int_9 %int_2
218%v2int = OpTypeVector %int 2
219%129 = OpConstantComposite %v4int %int_3 %int_0 %int_9 %int_2
220%int_5 = OpConstant %int 5
221%142 = OpConstantComposite %v4int %int_0 %int_5 %int_5 %int_0
222%int_10 = OpConstant %int 10
223%165 = OpConstantComposite %v4int %int_9 %int_9 %int_10 %int_10
224%178 = OpConstantComposite %v4int %int_1 %int_2 %int_1 %int_2
225%int_36 = OpConstant %int 36
226%int_4 = OpConstant %int 4
227%int_18 = OpConstant %int 18
228%208 = OpConstantComposite %v4int %int_4 %int_18 %int_9 %int_2
229%220 = OpConstantComposite %v4int %int_2 %int_9 %int_18 %int_4
230%263 = OpTypeFunction %v4float %_ptr_Function_v2float
231%_ptr_Function_v4float = OpTypePointer Function %v4float
232%float_2 = OpConstant %float 2
233%float_3 = OpConstant %float 3
234%284 = OpConstantComposite %v4float %float_3 %float_2 %float_2 %float_3
235%float_n1 = OpConstant %float -1
236%float_n2 = OpConstant %float -2
237%298 = OpConstantComposite %v4float %float_n1 %float_n1 %float_n2 %float_n2
238%float_1 = OpConstant %float 1
239%312 = OpConstantComposite %v4float %float_2 %float_1 %float_1 %float_2
240%v3float = OpTypeVector %float 3
241%float_9 = OpConstant %float 9
242%327 = OpConstantComposite %v4float %float_9 %float_9 %float_9 %float_2
243%float_18 = OpConstant %float 18
244%float_4 = OpConstant %float 4
245%342 = OpConstantComposite %v4float %float_18 %float_4 %float_9 %float_2
246%float_5 = OpConstant %float 5
247%354 = OpConstantComposite %v4float %float_0 %float_5 %float_5 %float_0
248%float_10 = OpConstant %float 10
249%377 = OpConstantComposite %v4float %float_9 %float_9 %float_10 %float_10
250%390 = OpConstantComposite %v4float %float_1 %float_2 %float_1 %float_2
251%float_36 = OpConstant %float 36
252%417 = OpConstantComposite %v4float %float_4 %float_18 %float_9 %float_2
253%429 = OpConstantComposite %v4float %float_2 %float_9 %float_18 %float_4
254%float_0_5 = OpConstant %float 0.5
255%_entrypoint_v = OpFunction %void None %16
256%17 = OpLabel
257%21 = OpVariable %_ptr_Function_v2float Function
258OpStore %21 %20
259%23 = OpFunctionCall %v4float %main %21
260OpStore %sk_FragColor %23
261OpReturn
262OpFunctionEnd
263%test_int_b = OpFunction %bool None %24
264%25 = OpLabel
265%ok = OpVariable %_ptr_Function_bool Function
266%inputRed = OpVariable %_ptr_Function_v4int Function
267%inputGreen = OpVariable %_ptr_Function_v4int Function
268%x = OpVariable %_ptr_Function_v4int Function
269OpStore %ok %true
270%33 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
271%36 = OpLoad %v4float %33
272%37 = OpCompositeExtract %float %36 0
273%38 = OpConvertFToS %int %37
274%39 = OpCompositeExtract %float %36 1
275%40 = OpConvertFToS %int %39
276%41 = OpCompositeExtract %float %36 2
277%42 = OpConvertFToS %int %41
278%43 = OpCompositeExtract %float %36 3
279%44 = OpConvertFToS %int %43
280%45 = OpCompositeConstruct %v4int %38 %40 %42 %44
281OpStore %inputRed %45
282%47 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
283%49 = OpLoad %v4float %47
284%50 = OpCompositeExtract %float %49 0
285%51 = OpConvertFToS %int %50
286%52 = OpCompositeExtract %float %49 1
287%53 = OpConvertFToS %int %52
288%54 = OpCompositeExtract %float %49 2
289%55 = OpConvertFToS %int %54
290%56 = OpCompositeExtract %float %49 3
291%57 = OpConvertFToS %int %56
292%58 = OpCompositeConstruct %v4int %51 %53 %55 %57
293OpStore %inputGreen %58
294%60 = OpLoad %v4int %inputRed
295%62 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
296%63 = OpIAdd %v4int %60 %62
297OpStore %x %63
298%65 = OpLoad %bool %ok
299OpSelectionMerge %67 None
300OpBranchConditional %65 %66 %67
301%66 = OpLabel
302%68 = OpLoad %v4int %x
303%71 = OpIEqual %v4bool %68 %70
304%73 = OpAll %bool %71
305OpBranch %67
306%67 = OpLabel
307%74 = OpPhi %bool %false %25 %73 %66
308OpStore %ok %74
309%75 = OpLoad %v4int %inputGreen
310%76 = OpVectorShuffle %v4int %75 %75 1 3 0 2
311%77 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
312%78 = OpISub %v4int %76 %77
313OpStore %x %78
314%79 = OpLoad %bool %ok
315OpSelectionMerge %81 None
316OpBranchConditional %79 %80 %81
317%80 = OpLabel
318%82 = OpLoad %v4int %x
319%86 = OpIEqual %v4bool %82 %85
320%87 = OpAll %bool %86
321OpBranch %81
322%81 = OpLabel
323%88 = OpPhi %bool %false %67 %87 %80
324OpStore %ok %88
325%89 = OpLoad %v4int %inputRed
326%90 = OpLoad %v4int %inputGreen
327%91 = OpCompositeExtract %int %90 1
328%92 = OpCompositeConstruct %v4int %91 %91 %91 %91
329%93 = OpIAdd %v4int %89 %92
330OpStore %x %93
331%94 = OpLoad %bool %ok
332OpSelectionMerge %96 None
333OpBranchConditional %94 %95 %96
334%95 = OpLabel
335%97 = OpLoad %v4int %x
336%99 = OpIEqual %v4bool %97 %98
337%100 = OpAll %bool %99
338OpBranch %96
339%96 = OpLabel
340%101 = OpPhi %bool %false %81 %100 %95
341OpStore %ok %101
342%102 = OpLoad %v4int %inputGreen
343%103 = OpVectorShuffle %v3int %102 %102 3 1 3
344%106 = OpCompositeConstruct %v3int %int_9 %int_9 %int_9
345%107 = OpIMul %v3int %103 %106
346%108 = OpLoad %v4int %x
347%109 = OpVectorShuffle %v4int %108 %107 4 5 6 3
348OpStore %x %109
349%110 = OpLoad %bool %ok
350OpSelectionMerge %112 None
351OpBranchConditional %110 %111 %112
352%111 = OpLabel
353%113 = OpLoad %v4int %x
354%115 = OpIEqual %v4bool %113 %114
355%116 = OpAll %bool %115
356OpBranch %112
357%112 = OpLabel
358%117 = OpPhi %bool %false %96 %116 %111
359OpStore %ok %117
360%118 = OpLoad %v4int %x
361%119 = OpVectorShuffle %v2int %118 %118 2 3
362%121 = OpCompositeConstruct %v2int %int_3 %int_3
363%122 = OpSDiv %v2int %119 %121
364%123 = OpLoad %v4int %x
365%124 = OpVectorShuffle %v4int %123 %122 4 5 2 3
366OpStore %x %124
367%125 = OpLoad %bool %ok
368OpSelectionMerge %127 None
369OpBranchConditional %125 %126 %127
370%126 = OpLabel
371%128 = OpLoad %v4int %x
372%130 = OpIEqual %v4bool %128 %129
373%131 = OpAll %bool %130
374OpBranch %127
375%127 = OpLabel
376%132 = OpPhi %bool %false %112 %131 %126
377OpStore %ok %132
378%133 = OpLoad %v4int %inputRed
379%135 = OpCompositeConstruct %v4int %int_5 %int_5 %int_5 %int_5
380%136 = OpIMul %v4int %133 %135
381%137 = OpVectorShuffle %v4int %136 %136 1 0 3 2
382OpStore %x %137
383%138 = OpLoad %bool %ok
384OpSelectionMerge %140 None
385OpBranchConditional %138 %139 %140
386%139 = OpLabel
387%141 = OpLoad %v4int %x
388%143 = OpIEqual %v4bool %141 %142
389%144 = OpAll %bool %143
390OpBranch %140
391%140 = OpLabel
392%145 = OpPhi %bool %false %127 %144 %139
393OpStore %ok %145
394%146 = OpLoad %v4int %inputRed
395%147 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
396%148 = OpIAdd %v4int %147 %146
397OpStore %x %148
398%149 = OpLoad %bool %ok
399OpSelectionMerge %151 None
400OpBranchConditional %149 %150 %151
401%150 = OpLabel
402%152 = OpLoad %v4int %x
403%153 = OpIEqual %v4bool %152 %70
404%154 = OpAll %bool %153
405OpBranch %151
406%151 = OpLabel
407%155 = OpPhi %bool %false %140 %154 %150
408OpStore %ok %155
409%157 = OpLoad %v4int %inputGreen
410%158 = OpVectorShuffle %v4int %157 %157 1 3 0 2
411%159 = OpCompositeConstruct %v4int %int_10 %int_10 %int_10 %int_10
412%160 = OpISub %v4int %159 %158
413OpStore %x %160
414%161 = OpLoad %bool %ok
415OpSelectionMerge %163 None
416OpBranchConditional %161 %162 %163
417%162 = OpLabel
418%164 = OpLoad %v4int %x
419%166 = OpIEqual %v4bool %164 %165
420%167 = OpAll %bool %166
421OpBranch %163
422%163 = OpLabel
423%168 = OpPhi %bool %false %151 %167 %162
424OpStore %ok %168
425%169 = OpLoad %v4int %inputRed
426%170 = OpCompositeExtract %int %169 0
427%171 = OpLoad %v4int %inputGreen
428%172 = OpCompositeConstruct %v4int %170 %170 %170 %170
429%173 = OpIAdd %v4int %172 %171
430OpStore %x %173
431%174 = OpLoad %bool %ok
432OpSelectionMerge %176 None
433OpBranchConditional %174 %175 %176
434%175 = OpLabel
435%177 = OpLoad %v4int %x
436%179 = OpIEqual %v4bool %177 %178
437%180 = OpAll %bool %179
438OpBranch %176
439%176 = OpLabel
440%181 = OpPhi %bool %false %163 %180 %175
441OpStore %ok %181
442%182 = OpLoad %v4int %inputGreen
443%183 = OpVectorShuffle %v3int %182 %182 3 1 3
444%184 = OpCompositeConstruct %v3int %int_9 %int_9 %int_9
445%185 = OpIMul %v3int %184 %183
446%186 = OpLoad %v4int %x
447%187 = OpVectorShuffle %v4int %186 %185 4 5 6 3
448OpStore %x %187
449%188 = OpLoad %bool %ok
450OpSelectionMerge %190 None
451OpBranchConditional %188 %189 %190
452%189 = OpLabel
453%191 = OpLoad %v4int %x
454%192 = OpIEqual %v4bool %191 %114
455%193 = OpAll %bool %192
456OpBranch %190
457%190 = OpLabel
458%194 = OpPhi %bool %false %176 %193 %189
459OpStore %ok %194
460%196 = OpLoad %v4int %x
461%197 = OpVectorShuffle %v2int %196 %196 2 3
462%198 = OpCompositeConstruct %v2int %int_36 %int_36
463%199 = OpSDiv %v2int %198 %197
464%200 = OpLoad %v4int %x
465%201 = OpVectorShuffle %v4int %200 %199 4 5 2 3
466OpStore %x %201
467%202 = OpLoad %bool %ok
468OpSelectionMerge %204 None
469OpBranchConditional %202 %203 %204
470%203 = OpLabel
471%205 = OpLoad %v4int %x
472%209 = OpIEqual %v4bool %205 %208
473%210 = OpAll %bool %209
474OpBranch %204
475%204 = OpLabel
476%211 = OpPhi %bool %false %190 %210 %203
477OpStore %ok %211
478%212 = OpLoad %v4int %x
479%213 = OpCompositeConstruct %v4int %int_36 %int_36 %int_36 %int_36
480%214 = OpSDiv %v4int %213 %212
481%215 = OpVectorShuffle %v4int %214 %214 1 0 3 2
482OpStore %x %215
483%216 = OpLoad %bool %ok
484OpSelectionMerge %218 None
485OpBranchConditional %216 %217 %218
486%217 = OpLabel
487%219 = OpLoad %v4int %x
488%221 = OpIEqual %v4bool %219 %220
489%222 = OpAll %bool %221
490OpBranch %218
491%218 = OpLabel
492%223 = OpPhi %bool %false %204 %222 %217
493OpStore %ok %223
494%224 = OpLoad %v4int %x
495%225 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
496%226 = OpIAdd %v4int %224 %225
497OpStore %x %226
498%227 = OpLoad %v4int %x
499%228 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
500%229 = OpIMul %v4int %227 %228
501OpStore %x %229
502%230 = OpLoad %v4int %x
503%231 = OpCompositeConstruct %v4int %int_4 %int_4 %int_4 %int_4
504%232 = OpISub %v4int %230 %231
505OpStore %x %232
506%233 = OpLoad %v4int %x
507%234 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
508%235 = OpSDiv %v4int %233 %234
509OpStore %x %235
510%236 = OpLoad %bool %ok
511OpSelectionMerge %238 None
512OpBranchConditional %236 %237 %238
513%237 = OpLabel
514%239 = OpLoad %v4int %x
515%240 = OpIEqual %v4bool %239 %220
516%241 = OpAll %bool %240
517OpBranch %238
518%238 = OpLabel
519%242 = OpPhi %bool %false %218 %241 %237
520OpStore %ok %242
521%243 = OpLoad %v4int %x
522%244 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
523%245 = OpIAdd %v4int %243 %244
524OpStore %x %245
525%246 = OpLoad %v4int %x
526%247 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
527%248 = OpIMul %v4int %246 %247
528OpStore %x %248
529%249 = OpLoad %v4int %x
530%250 = OpCompositeConstruct %v4int %int_4 %int_4 %int_4 %int_4
531%251 = OpISub %v4int %249 %250
532OpStore %x %251
533%252 = OpLoad %v4int %x
534%253 = OpCompositeConstruct %v4int %int_2 %int_2 %int_2 %int_2
535%254 = OpSDiv %v4int %252 %253
536OpStore %x %254
537%255 = OpLoad %bool %ok
538OpSelectionMerge %257 None
539OpBranchConditional %255 %256 %257
540%256 = OpLabel
541%258 = OpLoad %v4int %x
542%259 = OpIEqual %v4bool %258 %220
543%260 = OpAll %bool %259
544OpBranch %257
545%257 = OpLabel
546%261 = OpPhi %bool %false %238 %260 %256
547OpStore %ok %261
548%262 = OpLoad %bool %ok
549OpReturnValue %262
550OpFunctionEnd
551%main = OpFunction %v4float None %263
552%264 = OpFunctionParameter %_ptr_Function_v2float
553%265 = OpLabel
554%_0_ok = OpVariable %_ptr_Function_bool Function
555%_1_inputRed = OpVariable %_ptr_Function_v4float Function
556%_2_inputGreen = OpVariable %_ptr_Function_v4float Function
557%_3_x = OpVariable %_ptr_Function_v4float Function
558%474 = OpVariable %_ptr_Function_v4float Function
559OpStore %_0_ok %true
560%269 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
561%270 = OpLoad %v4float %269
562OpStore %_1_inputRed %270
563%272 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
564%273 = OpLoad %v4float %272
565OpStore %_2_inputGreen %273
566%275 = OpLoad %v4float %_1_inputRed
567%277 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2
568%278 = OpFAdd %v4float %275 %277
569OpStore %_3_x %278
570%279 = OpLoad %bool %_0_ok
571OpSelectionMerge %281 None
572OpBranchConditional %279 %280 %281
573%280 = OpLabel
574%282 = OpLoad %v4float %_3_x
575%285 = OpFOrdEqual %v4bool %282 %284
576%286 = OpAll %bool %285
577OpBranch %281
578%281 = OpLabel
579%287 = OpPhi %bool %false %265 %286 %280
580OpStore %_0_ok %287
581%288 = OpLoad %v4float %_2_inputGreen
582%289 = OpVectorShuffle %v4float %288 %288 1 3 0 2
583%290 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2
584%291 = OpFSub %v4float %289 %290
585OpStore %_3_x %291
586%292 = OpLoad %bool %_0_ok
587OpSelectionMerge %294 None
588OpBranchConditional %292 %293 %294
589%293 = OpLabel
590%295 = OpLoad %v4float %_3_x
591%299 = OpFOrdEqual %v4bool %295 %298
592%300 = OpAll %bool %299
593OpBranch %294
594%294 = OpLabel
595%301 = OpPhi %bool %false %281 %300 %293
596OpStore %_0_ok %301
597%302 = OpLoad %v4float %_1_inputRed
598%303 = OpLoad %v4float %_2_inputGreen
599%304 = OpCompositeExtract %float %303 1
600%305 = OpCompositeConstruct %v4float %304 %304 %304 %304
601%306 = OpFAdd %v4float %302 %305
602OpStore %_3_x %306
603%307 = OpLoad %bool %_0_ok
604OpSelectionMerge %309 None
605OpBranchConditional %307 %308 %309
606%308 = OpLabel
607%310 = OpLoad %v4float %_3_x
608%313 = OpFOrdEqual %v4bool %310 %312
609%314 = OpAll %bool %313
610OpBranch %309
611%309 = OpLabel
612%315 = OpPhi %bool %false %294 %314 %308
613OpStore %_0_ok %315
614%316 = OpLoad %v4float %_2_inputGreen
615%317 = OpVectorShuffle %v3float %316 %316 3 1 3
616%320 = OpVectorTimesScalar %v3float %317 %float_9
617%321 = OpLoad %v4float %_3_x
618%322 = OpVectorShuffle %v4float %321 %320 4 5 6 3
619OpStore %_3_x %322
620%323 = OpLoad %bool %_0_ok
621OpSelectionMerge %325 None
622OpBranchConditional %323 %324 %325
623%324 = OpLabel
624%326 = OpLoad %v4float %_3_x
625%328 = OpFOrdEqual %v4bool %326 %327
626%329 = OpAll %bool %328
627OpBranch %325
628%325 = OpLabel
629%330 = OpPhi %bool %false %309 %329 %324
630OpStore %_0_ok %330
631%331 = OpLoad %v4float %_3_x
632%332 = OpVectorShuffle %v2float %331 %331 2 3
633%333 = OpVectorTimesScalar %v2float %332 %float_2
634%334 = OpLoad %v4float %_3_x
635%335 = OpVectorShuffle %v4float %334 %333 4 5 2 3
636OpStore %_3_x %335
637%336 = OpLoad %bool %_0_ok
638OpSelectionMerge %338 None
639OpBranchConditional %336 %337 %338
640%337 = OpLabel
641%339 = OpLoad %v4float %_3_x
642%343 = OpFOrdEqual %v4bool %339 %342
643%344 = OpAll %bool %343
644OpBranch %338
645%338 = OpLabel
646%345 = OpPhi %bool %false %325 %344 %337
647OpStore %_0_ok %345
648%346 = OpLoad %v4float %_1_inputRed
649%348 = OpVectorTimesScalar %v4float %346 %float_5
650%349 = OpVectorShuffle %v4float %348 %348 1 0 3 2
651OpStore %_3_x %349
652%350 = OpLoad %bool %_0_ok
653OpSelectionMerge %352 None
654OpBranchConditional %350 %351 %352
655%351 = OpLabel
656%353 = OpLoad %v4float %_3_x
657%355 = OpFOrdEqual %v4bool %353 %354
658%356 = OpAll %bool %355
659OpBranch %352
660%352 = OpLabel
661%357 = OpPhi %bool %false %338 %356 %351
662OpStore %_0_ok %357
663%358 = OpLoad %v4float %_1_inputRed
664%359 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2
665%360 = OpFAdd %v4float %359 %358
666OpStore %_3_x %360
667%361 = OpLoad %bool %_0_ok
668OpSelectionMerge %363 None
669OpBranchConditional %361 %362 %363
670%362 = OpLabel
671%364 = OpLoad %v4float %_3_x
672%365 = OpFOrdEqual %v4bool %364 %284
673%366 = OpAll %bool %365
674OpBranch %363
675%363 = OpLabel
676%367 = OpPhi %bool %false %352 %366 %362
677OpStore %_0_ok %367
678%369 = OpLoad %v4float %_2_inputGreen
679%370 = OpVectorShuffle %v4float %369 %369 1 3 0 2
680%371 = OpCompositeConstruct %v4float %float_10 %float_10 %float_10 %float_10
681%372 = OpFSub %v4float %371 %370
682OpStore %_3_x %372
683%373 = OpLoad %bool %_0_ok
684OpSelectionMerge %375 None
685OpBranchConditional %373 %374 %375
686%374 = OpLabel
687%376 = OpLoad %v4float %_3_x
688%378 = OpFOrdEqual %v4bool %376 %377
689%379 = OpAll %bool %378
690OpBranch %375
691%375 = OpLabel
692%380 = OpPhi %bool %false %363 %379 %374
693OpStore %_0_ok %380
694%381 = OpLoad %v4float %_1_inputRed
695%382 = OpCompositeExtract %float %381 0
696%383 = OpLoad %v4float %_2_inputGreen
697%384 = OpCompositeConstruct %v4float %382 %382 %382 %382
698%385 = OpFAdd %v4float %384 %383
699OpStore %_3_x %385
700%386 = OpLoad %bool %_0_ok
701OpSelectionMerge %388 None
702OpBranchConditional %386 %387 %388
703%387 = OpLabel
704%389 = OpLoad %v4float %_3_x
705%391 = OpFOrdEqual %v4bool %389 %390
706%392 = OpAll %bool %391
707OpBranch %388
708%388 = OpLabel
709%393 = OpPhi %bool %false %375 %392 %387
710OpStore %_0_ok %393
711%394 = OpLoad %v4float %_2_inputGreen
712%395 = OpVectorShuffle %v3float %394 %394 3 1 3
713%396 = OpVectorTimesScalar %v3float %395 %float_9
714%397 = OpLoad %v4float %_3_x
715%398 = OpVectorShuffle %v4float %397 %396 4 5 6 3
716OpStore %_3_x %398
717%399 = OpLoad %bool %_0_ok
718OpSelectionMerge %401 None
719OpBranchConditional %399 %400 %401
720%400 = OpLabel
721%402 = OpLoad %v4float %_3_x
722%403 = OpFOrdEqual %v4bool %402 %327
723%404 = OpAll %bool %403
724OpBranch %401
725%401 = OpLabel
726%405 = OpPhi %bool %false %388 %404 %400
727OpStore %_0_ok %405
728%407 = OpLoad %v4float %_3_x
729%408 = OpVectorShuffle %v2float %407 %407 2 3
730%409 = OpCompositeConstruct %v2float %float_36 %float_36
731%410 = OpFDiv %v2float %409 %408
732%411 = OpLoad %v4float %_3_x
733%412 = OpVectorShuffle %v4float %411 %410 4 5 2 3
734OpStore %_3_x %412
735%413 = OpLoad %bool %_0_ok
736OpSelectionMerge %415 None
737OpBranchConditional %413 %414 %415
738%414 = OpLabel
739%416 = OpLoad %v4float %_3_x
740%418 = OpFOrdEqual %v4bool %416 %417
741%419 = OpAll %bool %418
742OpBranch %415
743%415 = OpLabel
744%420 = OpPhi %bool %false %401 %419 %414
745OpStore %_0_ok %420
746%421 = OpLoad %v4float %_3_x
747%422 = OpCompositeConstruct %v4float %float_36 %float_36 %float_36 %float_36
748%423 = OpFDiv %v4float %422 %421
749%424 = OpVectorShuffle %v4float %423 %423 1 0 3 2
750OpStore %_3_x %424
751%425 = OpLoad %bool %_0_ok
752OpSelectionMerge %427 None
753OpBranchConditional %425 %426 %427
754%426 = OpLabel
755%428 = OpLoad %v4float %_3_x
756%430 = OpFOrdEqual %v4bool %428 %429
757%431 = OpAll %bool %430
758OpBranch %427
759%427 = OpLabel
760%432 = OpPhi %bool %false %415 %431 %426
761OpStore %_0_ok %432
762%433 = OpLoad %v4float %_3_x
763%434 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2
764%435 = OpFAdd %v4float %433 %434
765OpStore %_3_x %435
766%436 = OpLoad %v4float %_3_x
767%437 = OpVectorTimesScalar %v4float %436 %float_2
768OpStore %_3_x %437
769%438 = OpLoad %v4float %_3_x
770%439 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4
771%440 = OpFSub %v4float %438 %439
772OpStore %_3_x %440
773%441 = OpLoad %v4float %_3_x
774%442 = OpFDiv %float %float_1 %float_2
775%443 = OpVectorTimesScalar %v4float %441 %442
776OpStore %_3_x %443
777%444 = OpLoad %bool %_0_ok
778OpSelectionMerge %446 None
779OpBranchConditional %444 %445 %446
780%445 = OpLabel
781%447 = OpLoad %v4float %_3_x
782%448 = OpFOrdEqual %v4bool %447 %429
783%449 = OpAll %bool %448
784OpBranch %446
785%446 = OpLabel
786%450 = OpPhi %bool %false %427 %449 %445
787OpStore %_0_ok %450
788%451 = OpLoad %v4float %_3_x
789%452 = OpCompositeConstruct %v4float %float_2 %float_2 %float_2 %float_2
790%453 = OpFAdd %v4float %451 %452
791OpStore %_3_x %453
792%454 = OpLoad %v4float %_3_x
793%455 = OpVectorTimesScalar %v4float %454 %float_2
794OpStore %_3_x %455
795%456 = OpLoad %v4float %_3_x
796%457 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4
797%458 = OpFSub %v4float %456 %457
798OpStore %_3_x %458
799%459 = OpLoad %v4float %_3_x
800%461 = OpVectorTimesScalar %v4float %459 %float_0_5
801OpStore %_3_x %461
802%462 = OpLoad %bool %_0_ok
803OpSelectionMerge %464 None
804OpBranchConditional %462 %463 %464
805%463 = OpLabel
806%465 = OpLoad %v4float %_3_x
807%466 = OpFOrdEqual %v4bool %465 %429
808%467 = OpAll %bool %466
809OpBranch %464
810%464 = OpLabel
811%468 = OpPhi %bool %false %446 %467 %463
812OpStore %_0_ok %468
813%469 = OpLoad %bool %_0_ok
814OpSelectionMerge %471 None
815OpBranchConditional %469 %470 %471
816%470 = OpLabel
817%472 = OpFunctionCall %bool %test_int_b
818OpBranch %471
819%471 = OpLabel
820%473 = OpPhi %bool %false %464 %472 %470
821OpSelectionMerge %477 None
822OpBranchConditional %473 %475 %476
823%475 = OpLabel
824%478 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
825%479 = OpLoad %v4float %478
826OpStore %474 %479
827OpBranch %477
828%476 = OpLabel
829%480 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
830%481 = OpLoad %v4float %480
831OpStore %474 %481
832OpBranch %477
833%477 = OpLabel
834%482 = OpLoad %v4float %474
835OpReturnValue %482
836OpFunctionEnd
837