• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 320
7               OpName %main "main"
8               OpName %BST "BST"
9               OpMemberName %BST 0 "data"
10               OpMemberName %BST 1 "leftIndex"
11               OpMemberName %BST 2 "rightIndex"
12               OpName %tree "tree"
13               OpName %_GLF_color "_GLF_color"
14               OpDecorate %_GLF_color Location 0
15       %void = OpTypeVoid
16          %7 = OpTypeFunction %void
17        %int = OpTypeInt 32 1
18        %BST = OpTypeStruct %int %int %int
19%_ptr_Function_BST = OpTypePointer Function %BST
20%_ptr_Function_int = OpTypePointer Function %int
21      %int_0 = OpConstant %int 0
22      %int_1 = OpConstant %int 1
23     %int_n1 = OpConstant %int -1
24      %int_2 = OpConstant %int 2
25       %bool = OpTypeBool
26       %uint = OpTypeInt 32 0
27    %uint_10 = OpConstant %uint 10
28%_arr_BST_uint_10 = OpTypeArray %BST %uint_10
29      %int_9 = OpConstant %int 9
30      %int_5 = OpConstant %int 5
31     %int_12 = OpConstant %int 12
32     %int_15 = OpConstant %int 15
33      %int_7 = OpConstant %int 7
34      %int_8 = OpConstant %int 8
35      %int_6 = OpConstant %int 6
36     %int_17 = OpConstant %int 17
37     %int_13 = OpConstant %int 13
38     %int_20 = OpConstant %int 20
39      %float = OpTypeFloat 32
40    %v4float = OpTypeVector %float 4
41%_ptr_Output_v4float = OpTypePointer Output %v4float
42 %_GLF_color = OpVariable %_ptr_Output_v4float Output
43    %float_1 = OpConstant %float 1
44    %float_0 = OpConstant %float 0
45         %34 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
46         %35 = OpConstantComposite %v4float %float_0 %float_0 %float_1 %float_1
47     %uint_0 = OpConstant %uint 0
48      %false = OpConstantFalse %bool
49       %true = OpConstantTrue %bool
50%_ptr_Function__arr_BST_uint_10 = OpTypePointer Function %_arr_BST_uint_10
51         %40 = OpUndef %int
52         %41 = OpConstantComposite %BST %int_9 %int_n1 %int_n1
53         %42 = OpConstantComposite %BST %int_5 %int_n1 %int_n1
54         %43 = OpConstantComposite %BST %int_12 %int_n1 %int_n1
55      %int_3 = OpConstant %int 3
56         %45 = OpConstantComposite %BST %int_15 %int_n1 %int_n1
57      %int_4 = OpConstant %int 4
58         %47 = OpConstantComposite %BST %int_7 %int_n1 %int_n1
59         %48 = OpConstantComposite %BST %int_8 %int_n1 %int_n1
60         %49 = OpConstantComposite %BST %int_2 %int_n1 %int_n1
61         %50 = OpConstantComposite %BST %int_6 %int_n1 %int_n1
62         %51 = OpConstantComposite %BST %int_17 %int_n1 %int_n1
63         %52 = OpConstantComposite %BST %int_13 %int_n1 %int_n1
64       %main = OpFunction %void None %7
65         %53 = OpLabel
66       %tree = OpVariable %_ptr_Function__arr_BST_uint_10 Function
67         %54 = OpAccessChain %_ptr_Function_BST %tree %int_0
68               OpStore %54 %41
69               OpSelectionMerge %55 None
70               OpSwitch %uint_0 %56
71         %56 = OpLabel
72               OpBranch %57
73         %57 = OpLabel
74         %58 = OpPhi %int %int_0 %56 %59 %60
75         %61 = OpSLessThanEqual %bool %58 %int_1
76               OpLoopMerge %62 %60 None
77               OpBranchConditional %61 %63 %62
78         %63 = OpLabel
79         %64 = OpAccessChain %_ptr_Function_int %tree %58 %int_0
80         %65 = OpLoad %int %64
81         %66 = OpSLessThanEqual %bool %int_5 %65
82               OpSelectionMerge %67 None
83               OpBranchConditional %66 %68 %69
84         %69 = OpLabel
85         %70 = OpAccessChain %_ptr_Function_int %tree %58 %int_2
86         %71 = OpLoad %int %70
87         %72 = OpIEqual %bool %71 %int_n1
88               OpSelectionMerge %73 None
89               OpBranchConditional %72 %74 %75
90         %75 = OpLabel
91         %76 = OpLoad %int %70
92               OpBranch %60
93         %74 = OpLabel
94               OpStore %70 %int_1
95         %77 = OpAccessChain %_ptr_Function_BST %tree %int_1
96               OpStore %77 %42
97               OpBranch %62
98         %73 = OpLabel
99               OpUnreachable
100         %68 = OpLabel
101         %78 = OpAccessChain %_ptr_Function_int %tree %58 %int_1
102         %79 = OpLoad %int %78
103         %80 = OpIEqual %bool %79 %int_n1
104               OpSelectionMerge %81 None
105               OpBranchConditional %80 %82 %83
106         %83 = OpLabel
107         %84 = OpLoad %int %78
108               OpBranch %60
109         %82 = OpLabel
110               OpStore %78 %int_1
111         %85 = OpAccessChain %_ptr_Function_BST %tree %int_1
112               OpStore %85 %42
113               OpBranch %62
114         %81 = OpLabel
115               OpUnreachable
116         %67 = OpLabel
117               OpUnreachable
118         %60 = OpLabel
119         %59 = OpPhi %int %84 %83 %76 %75
120               OpBranch %57
121         %62 = OpLabel
122         %86 = OpPhi %bool %false %57 %true %82 %true %74
123               OpSelectionMerge %87 None
124               OpBranchConditional %86 %55 %87
125         %87 = OpLabel
126               OpBranch %55
127         %55 = OpLabel
128               OpSelectionMerge %88 None
129               OpSwitch %uint_0 %89
130         %89 = OpLabel
131               OpBranch %90
132         %90 = OpLabel
133         %91 = OpPhi %int %int_0 %89 %92 %93
134         %94 = OpSLessThanEqual %bool %91 %int_2
135               OpLoopMerge %95 %93 None
136               OpBranchConditional %94 %96 %95
137         %96 = OpLabel
138         %97 = OpAccessChain %_ptr_Function_int %tree %91 %int_0
139         %98 = OpLoad %int %97
140         %99 = OpSLessThanEqual %bool %int_12 %98
141               OpSelectionMerge %100 None
142               OpBranchConditional %99 %101 %102
143        %102 = OpLabel
144        %103 = OpAccessChain %_ptr_Function_int %tree %91 %int_2
145        %104 = OpLoad %int %103
146        %105 = OpIEqual %bool %104 %int_n1
147               OpSelectionMerge %106 None
148               OpBranchConditional %105 %107 %108
149        %108 = OpLabel
150        %109 = OpLoad %int %103
151               OpBranch %93
152        %107 = OpLabel
153               OpStore %103 %int_2
154        %110 = OpAccessChain %_ptr_Function_BST %tree %int_2
155               OpStore %110 %43
156               OpBranch %95
157        %106 = OpLabel
158               OpUnreachable
159        %101 = OpLabel
160        %111 = OpAccessChain %_ptr_Function_int %tree %91 %int_1
161        %112 = OpLoad %int %111
162        %113 = OpIEqual %bool %112 %int_n1
163               OpSelectionMerge %114 None
164               OpBranchConditional %113 %115 %116
165        %116 = OpLabel
166        %117 = OpLoad %int %111
167               OpBranch %93
168        %115 = OpLabel
169               OpStore %111 %int_2
170        %118 = OpAccessChain %_ptr_Function_BST %tree %int_2
171               OpStore %118 %43
172               OpBranch %95
173        %114 = OpLabel
174               OpUnreachable
175        %100 = OpLabel
176               OpUnreachable
177         %93 = OpLabel
178         %92 = OpPhi %int %117 %116 %109 %108
179               OpBranch %90
180         %95 = OpLabel
181        %119 = OpPhi %bool %false %90 %true %115 %true %107
182               OpSelectionMerge %120 None
183               OpBranchConditional %119 %88 %120
184        %120 = OpLabel
185               OpBranch %88
186         %88 = OpLabel
187               OpSelectionMerge %121 None
188               OpSwitch %uint_0 %122
189        %122 = OpLabel
190               OpBranch %123
191        %123 = OpLabel
192        %124 = OpPhi %int %int_0 %122 %125 %126
193        %127 = OpSLessThanEqual %bool %124 %int_3
194               OpLoopMerge %128 %126 None
195               OpBranchConditional %127 %129 %128
196        %129 = OpLabel
197        %130 = OpAccessChain %_ptr_Function_int %tree %124 %int_0
198        %131 = OpLoad %int %130
199        %132 = OpSLessThanEqual %bool %int_15 %131
200               OpSelectionMerge %133 None
201               OpBranchConditional %132 %134 %135
202        %135 = OpLabel
203        %136 = OpAccessChain %_ptr_Function_int %tree %124 %int_2
204        %137 = OpLoad %int %136
205        %138 = OpIEqual %bool %137 %int_n1
206               OpSelectionMerge %139 None
207               OpBranchConditional %138 %140 %141
208        %141 = OpLabel
209        %142 = OpLoad %int %136
210               OpBranch %126
211        %140 = OpLabel
212               OpStore %136 %int_3
213        %143 = OpAccessChain %_ptr_Function_BST %tree %int_3
214               OpStore %143 %45
215               OpBranch %128
216        %139 = OpLabel
217               OpUnreachable
218        %134 = OpLabel
219        %144 = OpAccessChain %_ptr_Function_int %tree %124 %int_1
220        %145 = OpLoad %int %144
221        %146 = OpIEqual %bool %145 %int_n1
222               OpSelectionMerge %147 None
223               OpBranchConditional %146 %148 %149
224        %149 = OpLabel
225        %150 = OpLoad %int %144
226               OpBranch %126
227        %148 = OpLabel
228               OpStore %144 %int_3
229        %151 = OpAccessChain %_ptr_Function_BST %tree %int_3
230               OpStore %151 %45
231               OpBranch %128
232        %147 = OpLabel
233               OpUnreachable
234        %133 = OpLabel
235               OpUnreachable
236        %126 = OpLabel
237        %125 = OpPhi %int %150 %149 %142 %141
238               OpBranch %123
239        %128 = OpLabel
240        %152 = OpPhi %bool %false %123 %true %148 %true %140
241               OpSelectionMerge %153 None
242               OpBranchConditional %152 %121 %153
243        %153 = OpLabel
244               OpBranch %121
245        %121 = OpLabel
246               OpSelectionMerge %154 None
247               OpSwitch %uint_0 %155
248        %155 = OpLabel
249               OpBranch %156
250        %156 = OpLabel
251        %157 = OpPhi %int %int_0 %155 %158 %159
252        %160 = OpSLessThanEqual %bool %157 %int_4
253               OpLoopMerge %161 %159 None
254               OpBranchConditional %160 %162 %161
255        %162 = OpLabel
256        %163 = OpAccessChain %_ptr_Function_int %tree %157 %int_0
257        %164 = OpLoad %int %163
258        %165 = OpSLessThanEqual %bool %int_7 %164
259               OpSelectionMerge %166 None
260               OpBranchConditional %165 %167 %168
261        %168 = OpLabel
262        %169 = OpAccessChain %_ptr_Function_int %tree %157 %int_2
263        %170 = OpLoad %int %169
264        %171 = OpIEqual %bool %170 %int_n1
265               OpSelectionMerge %172 None
266               OpBranchConditional %171 %173 %174
267        %174 = OpLabel
268        %175 = OpLoad %int %169
269               OpBranch %159
270        %173 = OpLabel
271               OpStore %169 %int_4
272        %176 = OpAccessChain %_ptr_Function_BST %tree %int_4
273               OpStore %176 %47
274               OpBranch %161
275        %172 = OpLabel
276               OpUnreachable
277        %167 = OpLabel
278        %177 = OpAccessChain %_ptr_Function_int %tree %157 %int_1
279        %178 = OpLoad %int %177
280        %179 = OpIEqual %bool %178 %int_n1
281               OpSelectionMerge %180 None
282               OpBranchConditional %179 %181 %182
283        %182 = OpLabel
284        %183 = OpLoad %int %177
285               OpBranch %159
286        %181 = OpLabel
287               OpStore %177 %int_4
288        %184 = OpAccessChain %_ptr_Function_BST %tree %int_4
289               OpStore %184 %47
290               OpBranch %161
291        %180 = OpLabel
292               OpUnreachable
293        %166 = OpLabel
294               OpUnreachable
295        %159 = OpLabel
296        %158 = OpPhi %int %183 %182 %175 %174
297               OpBranch %156
298        %161 = OpLabel
299        %185 = OpPhi %bool %false %156 %true %181 %true %173
300               OpSelectionMerge %186 None
301               OpBranchConditional %185 %154 %186
302        %186 = OpLabel
303               OpBranch %154
304        %154 = OpLabel
305               OpSelectionMerge %187 None
306               OpSwitch %uint_0 %188
307        %188 = OpLabel
308               OpBranch %189
309        %189 = OpLabel
310        %190 = OpPhi %int %int_0 %188 %191 %192
311        %193 = OpSLessThanEqual %bool %190 %int_5
312               OpLoopMerge %194 %192 None
313               OpBranchConditional %193 %195 %194
314        %195 = OpLabel
315        %196 = OpAccessChain %_ptr_Function_int %tree %190 %int_0
316        %197 = OpLoad %int %196
317        %198 = OpSLessThanEqual %bool %int_8 %197
318               OpSelectionMerge %199 None
319               OpBranchConditional %198 %200 %201
320        %201 = OpLabel
321        %202 = OpAccessChain %_ptr_Function_int %tree %190 %int_2
322        %203 = OpLoad %int %202
323        %204 = OpIEqual %bool %203 %int_n1
324               OpSelectionMerge %205 None
325               OpBranchConditional %204 %206 %207
326        %207 = OpLabel
327        %208 = OpLoad %int %202
328               OpBranch %192
329        %206 = OpLabel
330               OpStore %202 %int_5
331        %209 = OpAccessChain %_ptr_Function_BST %tree %int_5
332               OpStore %209 %48
333               OpBranch %194
334        %205 = OpLabel
335               OpUnreachable
336        %200 = OpLabel
337        %210 = OpAccessChain %_ptr_Function_int %tree %190 %int_1
338        %211 = OpLoad %int %210
339        %212 = OpIEqual %bool %211 %int_n1
340               OpSelectionMerge %213 None
341               OpBranchConditional %212 %214 %215
342        %215 = OpLabel
343        %216 = OpLoad %int %210
344               OpBranch %192
345        %214 = OpLabel
346               OpStore %210 %int_5
347        %217 = OpAccessChain %_ptr_Function_BST %tree %int_5
348               OpStore %217 %48
349               OpBranch %194
350        %213 = OpLabel
351               OpUnreachable
352        %199 = OpLabel
353               OpUnreachable
354        %192 = OpLabel
355        %191 = OpPhi %int %216 %215 %208 %207
356               OpBranch %189
357        %194 = OpLabel
358        %218 = OpPhi %bool %false %189 %true %214 %true %206
359               OpSelectionMerge %219 None
360               OpBranchConditional %218 %187 %219
361        %219 = OpLabel
362               OpBranch %187
363        %187 = OpLabel
364               OpSelectionMerge %220 None
365               OpSwitch %uint_0 %221
366        %221 = OpLabel
367               OpBranch %222
368        %222 = OpLabel
369        %223 = OpPhi %int %int_0 %221 %224 %225
370        %226 = OpSLessThanEqual %bool %223 %int_6
371               OpLoopMerge %227 %225 None
372               OpBranchConditional %226 %228 %227
373        %228 = OpLabel
374        %229 = OpAccessChain %_ptr_Function_int %tree %223 %int_0
375        %230 = OpLoad %int %229
376        %231 = OpSLessThanEqual %bool %int_2 %230
377               OpSelectionMerge %232 None
378               OpBranchConditional %231 %233 %234
379        %234 = OpLabel
380        %235 = OpAccessChain %_ptr_Function_int %tree %223 %int_2
381        %236 = OpLoad %int %235
382        %237 = OpIEqual %bool %236 %int_n1
383               OpSelectionMerge %238 None
384               OpBranchConditional %237 %239 %240
385        %240 = OpLabel
386        %241 = OpLoad %int %235
387               OpBranch %225
388        %239 = OpLabel
389               OpStore %235 %int_6
390        %242 = OpAccessChain %_ptr_Function_BST %tree %int_6
391               OpStore %242 %49
392               OpBranch %227
393        %238 = OpLabel
394               OpUnreachable
395        %233 = OpLabel
396        %243 = OpAccessChain %_ptr_Function_int %tree %223 %int_1
397        %244 = OpLoad %int %243
398        %245 = OpIEqual %bool %244 %int_n1
399               OpSelectionMerge %246 None
400               OpBranchConditional %245 %247 %248
401        %248 = OpLabel
402        %249 = OpLoad %int %243
403               OpBranch %225
404        %247 = OpLabel
405               OpStore %243 %int_6
406        %250 = OpAccessChain %_ptr_Function_BST %tree %int_6
407               OpStore %250 %49
408               OpBranch %227
409        %246 = OpLabel
410               OpUnreachable
411        %232 = OpLabel
412               OpUnreachable
413        %225 = OpLabel
414        %224 = OpPhi %int %249 %248 %241 %240
415               OpBranch %222
416        %227 = OpLabel
417        %251 = OpPhi %bool %false %222 %true %247 %true %239
418               OpSelectionMerge %252 None
419               OpBranchConditional %251 %220 %252
420        %252 = OpLabel
421               OpBranch %220
422        %220 = OpLabel
423               OpSelectionMerge %253 None
424               OpSwitch %uint_0 %254
425        %254 = OpLabel
426               OpBranch %255
427        %255 = OpLabel
428        %256 = OpPhi %int %int_0 %254 %257 %258
429        %259 = OpSLessThanEqual %bool %256 %int_7
430               OpLoopMerge %260 %258 None
431               OpBranchConditional %259 %261 %260
432        %261 = OpLabel
433        %262 = OpAccessChain %_ptr_Function_int %tree %256 %int_0
434        %263 = OpLoad %int %262
435        %264 = OpSLessThanEqual %bool %int_6 %263
436               OpSelectionMerge %265 None
437               OpBranchConditional %264 %266 %267
438        %267 = OpLabel
439        %268 = OpAccessChain %_ptr_Function_int %tree %256 %int_2
440        %269 = OpLoad %int %268
441        %270 = OpIEqual %bool %269 %int_n1
442               OpSelectionMerge %271 None
443               OpBranchConditional %270 %272 %273
444        %273 = OpLabel
445        %274 = OpLoad %int %268
446               OpBranch %258
447        %272 = OpLabel
448               OpStore %268 %int_7
449        %275 = OpAccessChain %_ptr_Function_BST %tree %int_7
450               OpStore %275 %50
451               OpBranch %260
452        %271 = OpLabel
453               OpUnreachable
454        %266 = OpLabel
455        %276 = OpAccessChain %_ptr_Function_int %tree %256 %int_1
456        %277 = OpLoad %int %276
457        %278 = OpIEqual %bool %277 %int_n1
458               OpSelectionMerge %279 None
459               OpBranchConditional %278 %280 %281
460        %281 = OpLabel
461        %282 = OpLoad %int %276
462               OpBranch %258
463        %280 = OpLabel
464               OpStore %276 %int_7
465        %283 = OpAccessChain %_ptr_Function_BST %tree %int_7
466               OpStore %283 %50
467               OpBranch %260
468        %279 = OpLabel
469               OpUnreachable
470        %265 = OpLabel
471               OpUnreachable
472        %258 = OpLabel
473        %257 = OpPhi %int %282 %281 %274 %273
474               OpBranch %255
475        %260 = OpLabel
476        %284 = OpPhi %bool %false %255 %true %280 %true %272
477               OpSelectionMerge %285 None
478               OpBranchConditional %284 %253 %285
479        %285 = OpLabel
480               OpBranch %253
481        %253 = OpLabel
482               OpSelectionMerge %286 None
483               OpSwitch %uint_0 %287
484        %287 = OpLabel
485               OpBranch %288
486        %288 = OpLabel
487        %289 = OpPhi %int %int_0 %287 %290 %291
488        %292 = OpSLessThanEqual %bool %289 %int_8
489               OpLoopMerge %293 %291 None
490               OpBranchConditional %292 %294 %293
491        %294 = OpLabel
492        %295 = OpAccessChain %_ptr_Function_int %tree %289 %int_0
493        %296 = OpLoad %int %295
494        %297 = OpSLessThanEqual %bool %int_17 %296
495               OpSelectionMerge %298 None
496               OpBranchConditional %297 %299 %300
497        %300 = OpLabel
498        %301 = OpAccessChain %_ptr_Function_int %tree %289 %int_2
499        %302 = OpLoad %int %301
500        %303 = OpIEqual %bool %302 %int_n1
501               OpSelectionMerge %304 None
502               OpBranchConditional %303 %305 %306
503        %306 = OpLabel
504        %307 = OpLoad %int %301
505               OpBranch %291
506        %305 = OpLabel
507               OpStore %301 %int_8
508        %308 = OpAccessChain %_ptr_Function_BST %tree %int_8
509               OpStore %308 %51
510               OpBranch %293
511        %304 = OpLabel
512               OpUnreachable
513        %299 = OpLabel
514        %309 = OpAccessChain %_ptr_Function_int %tree %289 %int_1
515        %310 = OpLoad %int %309
516        %311 = OpIEqual %bool %310 %int_n1
517               OpSelectionMerge %312 None
518               OpBranchConditional %311 %313 %314
519        %314 = OpLabel
520        %315 = OpLoad %int %309
521               OpBranch %291
522        %313 = OpLabel
523               OpStore %309 %int_8
524        %316 = OpAccessChain %_ptr_Function_BST %tree %int_8
525               OpStore %316 %51
526               OpBranch %293
527        %312 = OpLabel
528               OpUnreachable
529        %298 = OpLabel
530               OpUnreachable
531        %291 = OpLabel
532        %290 = OpPhi %int %315 %314 %307 %306
533               OpBranch %288
534        %293 = OpLabel
535        %317 = OpPhi %bool %false %288 %true %313 %true %305
536               OpSelectionMerge %318 None
537               OpBranchConditional %317 %286 %318
538        %318 = OpLabel
539               OpBranch %286
540        %286 = OpLabel
541               OpSelectionMerge %319 None
542               OpSwitch %uint_0 %320
543        %320 = OpLabel
544               OpBranch %321
545        %321 = OpLabel
546        %322 = OpPhi %int %int_0 %320 %323 %324
547        %325 = OpSLessThanEqual %bool %322 %int_9
548               OpLoopMerge %326 %324 None
549               OpBranchConditional %325 %327 %326
550        %327 = OpLabel
551        %328 = OpAccessChain %_ptr_Function_int %tree %322 %int_0
552        %329 = OpLoad %int %328
553        %330 = OpSLessThanEqual %bool %int_13 %329
554               OpSelectionMerge %331 None
555               OpBranchConditional %330 %332 %333
556        %333 = OpLabel
557        %334 = OpAccessChain %_ptr_Function_int %tree %322 %int_2
558        %335 = OpLoad %int %334
559        %336 = OpIEqual %bool %335 %int_n1
560               OpSelectionMerge %337 None
561               OpBranchConditional %336 %338 %339
562        %339 = OpLabel
563        %340 = OpLoad %int %334
564               OpBranch %324
565        %338 = OpLabel
566               OpStore %334 %int_9
567        %341 = OpAccessChain %_ptr_Function_BST %tree %int_9
568               OpStore %341 %52
569               OpBranch %326
570        %337 = OpLabel
571               OpUnreachable
572        %332 = OpLabel
573        %342 = OpAccessChain %_ptr_Function_int %tree %322 %int_1
574        %343 = OpLoad %int %342
575        %344 = OpIEqual %bool %343 %int_n1
576               OpSelectionMerge %345 None
577               OpBranchConditional %344 %346 %347
578        %347 = OpLabel
579        %348 = OpLoad %int %342
580               OpBranch %324
581        %346 = OpLabel
582               OpStore %342 %int_9
583        %349 = OpAccessChain %_ptr_Function_BST %tree %int_9
584               OpStore %349 %52
585               OpBranch %326
586        %345 = OpLabel
587               OpUnreachable
588        %331 = OpLabel
589               OpUnreachable
590        %324 = OpLabel
591        %323 = OpPhi %int %348 %347 %340 %339
592               OpBranch %321
593        %326 = OpLabel
594        %350 = OpPhi %bool %false %321 %true %346 %true %338
595               OpSelectionMerge %351 None
596               OpBranchConditional %350 %319 %351
597        %351 = OpLabel
598               OpBranch %319
599        %319 = OpLabel
600               OpBranch %352
601        %352 = OpLabel
602        %353 = OpPhi %int %40 %319 %354 %355
603        %356 = OpPhi %int %int_0 %319 %357 %355
604        %358 = OpPhi %int %int_0 %319 %359 %355
605        %360 = OpSLessThan %bool %358 %int_20
606               OpLoopMerge %361 %355 None
607               OpBranchConditional %360 %362 %361
608        %362 = OpLabel
609               OpSelectionMerge %363 None
610               OpSwitch %uint_0 %364
611        %364 = OpLabel
612               OpBranch %365
613        %365 = OpLabel
614        %366 = OpPhi %int %int_0 %364 %367 %368
615        %369 = OpINotEqual %bool %366 %int_n1
616               OpLoopMerge %370 %368 None
617               OpBranchConditional %369 %371 %370
618        %371 = OpLabel
619        %372 = OpAccessChain %_ptr_Function_BST %tree %366
620        %373 = OpLoad %BST %372
621        %374 = OpCompositeExtract %int %373 0
622        %375 = OpCompositeExtract %int %373 1
623        %376 = OpCompositeExtract %int %373 2
624        %377 = OpIEqual %bool %374 %358
625               OpSelectionMerge %378 None
626               OpBranchConditional %377 %379 %378
627        %379 = OpLabel
628               OpBranch %370
629        %378 = OpLabel
630        %380 = OpSGreaterThan %bool %358 %374
631        %367 = OpSelect %int %380 %376 %375
632               OpBranch %368
633        %368 = OpLabel
634               OpBranch %365
635        %370 = OpLabel
636        %381 = OpPhi %int %353 %365 %358 %379
637        %382 = OpPhi %bool %false %365 %true %379
638               OpSelectionMerge %383 None
639               OpBranchConditional %382 %363 %383
640        %383 = OpLabel
641               OpBranch %363
642        %363 = OpLabel
643        %354 = OpPhi %int %381 %370 %int_n1 %383
644               OpSelectionMerge %384 None
645               OpSwitch %358 %385 9 %386 5 %386 12 %386 15 %386 7 %386 8 %386 2 %386 6 %386 17 %386 13 %386
646        %386 = OpLabel
647        %387 = OpIEqual %bool %354 %358
648               OpSelectionMerge %388 None
649               OpBranchConditional %387 %389 %388
650        %389 = OpLabel
651        %390 = OpIAdd %int %356 %int_1
652               OpBranch %388
653        %388 = OpLabel
654        %391 = OpPhi %int %356 %386 %390 %389
655               OpBranch %384
656        %385 = OpLabel
657        %392 = OpIEqual %bool %354 %int_n1
658               OpSelectionMerge %393 None
659               OpBranchConditional %392 %394 %393
660        %394 = OpLabel
661        %395 = OpIAdd %int %356 %int_1
662               OpBranch %393
663        %393 = OpLabel
664        %396 = OpPhi %int %356 %385 %395 %394
665               OpBranch %384
666        %384 = OpLabel
667        %357 = OpPhi %int %396 %393 %391 %388
668               OpBranch %355
669        %355 = OpLabel
670        %359 = OpIAdd %int %358 %int_1
671               OpBranch %352
672        %361 = OpLabel
673        %397 = OpIEqual %bool %356 %int_20
674               OpSelectionMerge %398 None
675               OpBranchConditional %397 %399 %400
676        %400 = OpLabel
677               OpStore %_GLF_color %35
678               OpBranch %398
679        %399 = OpLabel
680               OpStore %_GLF_color %34
681               OpBranch %398
682        %398 = OpLabel
683               OpReturn
684               OpFunctionEnd
685