• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!amber
2
3# Copyright 2021 Google LLC
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17
18# A test for a coverage-gap found by the GraphicsFuzz project.
19
20# Short description: A fragment shader that covers specific BRW code paths
21
22# The test passes because the shader always writes red.
23
24# Optimized using spirv-opt with the following arguments:
25# '-O'
26# spirv-opt commit hash: a0370efd589be33d5d9a85cfde2f85841b3755af
27
28
29
30SHADER vertex variant_vertex_shader PASSTHROUGH
31
32# variant_fragment_shader is derived from the following GLSL:
33# #version 320 es
34#
35# precision highp float;
36# precision highp int;
37#
38# layout(location = 0) out vec4 _GLF_color;
39#
40# const int _GLF_global_loop_bound = 10;
41# int _GLF_global_loop_count = 0;
42#
43# #define LOOP for (int i = 0; i < 5 && _GLF_global_loop_count < _GLF_global_loop_bound; i++, _GLF_global_loop_count++, a++)
44#
45# void main()
46# {
47#     vec2 v = gl_FragCoord.xy;
48#     _GLF_color = vec4(v, 0, 1);
49#     int a = 0;
50#
51#     LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
52#     LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
53#     LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
54#         // Always false.
55#         if(gl_FragCoord.x < 0.0)
56#         {
57#             return;
58#         }
59#     } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
60#
61#     // Always true because the partial derivative of gl_FragCoord is the same
62#     // in x and y directions. The two most inner loops run until _GLF_global_loop_count
63#     // (and a with it) becomes ten. The other loops increase the variable a by one.
64#     if (dFdx(v.x) - dFdy(v.y) == 0.0 && a == 10 + 38)
65#         _GLF_color = vec4(1, 0, 0, 1);
66#     else
67#         _GLF_color = vec4(0);
68# }
69SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
70; SPIR-V
71; Version: 1.0
72; Generator: Khronos Glslang Reference Front End; 10
73; Bound: 2564
74; Schema: 0
75               OpCapability Shader
76          %1 = OpExtInstImport "GLSL.std.450"
77               OpMemoryModel Logical GLSL450
78               OpEntryPoint Fragment %4 "main" %16 %20
79               OpExecutionMode %4 OriginUpperLeft
80               OpSource ESSL 320
81               OpName %4 "main"
82               OpName %16 "gl_FragCoord"
83               OpName %20 "_GLF_color"
84               OpDecorate %16 BuiltIn FragCoord
85               OpDecorate %20 Location 0
86          %2 = OpTypeVoid
87          %3 = OpTypeFunction %2
88          %6 = OpTypeInt 32 1
89          %9 = OpConstant %6 0
90         %10 = OpTypeFloat 32
91         %14 = OpTypeVector %10 4
92         %15 = OpTypePointer Input %14
93         %16 = OpVariable %15 Input
94         %19 = OpTypePointer Output %14
95         %20 = OpVariable %19 Output
96         %22 = OpConstant %10 0
97         %23 = OpConstant %10 1
98         %36 = OpConstant %6 5
99         %37 = OpTypeBool
100         %40 = OpConstant %6 10
101        %461 = OpTypeInt 32 0
102        %462 = OpConstant %461 0
103        %463 = OpTypePointer Input %10
104        %471 = OpConstant %6 1
105        %716 = OpConstant %6 48
106        %721 = OpConstantComposite %14 %23 %22 %22 %23
107        %723 = OpConstantComposite %14 %22 %22 %22 %22
108        %726 = OpConstantFalse %37
109        %729 = OpConstantTrue %37
110          %4 = OpFunction %2 None %3
111          %5 = OpLabel
112               OpSelectionMerge %724 None
113               OpSwitch %462 %725
114        %725 = OpLabel
115         %17 = OpLoad %14 %16
116         %24 = OpCompositeExtract %10 %17 0
117         %25 = OpCompositeExtract %10 %17 1
118         %26 = OpCompositeConstruct %14 %24 %25 %22 %23
119               OpStore %20 %26
120               OpBranch %30
121         %30 = OpLabel
122        %966 = OpPhi %37 %726 %725 %2483 %33
123        %926 = OpPhi %6 %9 %725 %704 %33
124        %811 = OpPhi %6 %9 %725 %702 %33
125        %810 = OpPhi %6 %9 %725 %700 %33
126         %38 = OpSLessThan %37 %810 %36
127         %41 = OpSLessThan %37 %811 %40
128         %42 = OpLogicalAnd %37 %38 %41
129               OpLoopMerge %32 %33 None
130               OpBranchConditional %42 %31 %32
131         %31 = OpLabel
132               OpBranch %44
133         %44 = OpLabel
134        %965 = OpPhi %37 %966 %31 %2406 %47
135        %925 = OpPhi %6 %926 %31 %698 %47
136        %813 = OpPhi %6 %811 %31 %696 %47
137        %812 = OpPhi %6 %9 %31 %694 %47
138         %50 = OpSLessThan %37 %812 %36
139         %52 = OpSLessThan %37 %813 %40
140         %53 = OpLogicalAnd %37 %50 %52
141               OpLoopMerge %46 %47 None
142               OpBranchConditional %53 %45 %46
143         %45 = OpLabel
144               OpBranch %55
145         %55 = OpLabel
146        %964 = OpPhi %37 %965 %45 %2331 %58
147        %924 = OpPhi %6 %925 %45 %692 %58
148        %815 = OpPhi %6 %813 %45 %690 %58
149        %814 = OpPhi %6 %9 %45 %688 %58
150         %61 = OpSLessThan %37 %814 %36
151         %63 = OpSLessThan %37 %815 %40
152         %64 = OpLogicalAnd %37 %61 %63
153               OpLoopMerge %57 %58 None
154               OpBranchConditional %64 %56 %57
155         %56 = OpLabel
156               OpBranch %66
157         %66 = OpLabel
158        %963 = OpPhi %37 %964 %56 %2258 %69
159        %923 = OpPhi %6 %924 %56 %686 %69
160        %817 = OpPhi %6 %815 %56 %684 %69
161        %816 = OpPhi %6 %9 %56 %682 %69
162         %72 = OpSLessThan %37 %816 %36
163         %74 = OpSLessThan %37 %817 %40
164         %75 = OpLogicalAnd %37 %72 %74
165               OpLoopMerge %68 %69 None
166               OpBranchConditional %75 %67 %68
167         %67 = OpLabel
168               OpBranch %77
169         %77 = OpLabel
170        %962 = OpPhi %37 %963 %67 %2187 %80
171        %922 = OpPhi %6 %923 %67 %680 %80
172        %819 = OpPhi %6 %817 %67 %678 %80
173        %818 = OpPhi %6 %9 %67 %676 %80
174         %83 = OpSLessThan %37 %818 %36
175         %85 = OpSLessThan %37 %819 %40
176         %86 = OpLogicalAnd %37 %83 %85
177               OpLoopMerge %79 %80 None
178               OpBranchConditional %86 %78 %79
179         %78 = OpLabel
180               OpBranch %88
181         %88 = OpLabel
182        %961 = OpPhi %37 %962 %78 %2118 %91
183        %921 = OpPhi %6 %922 %78 %674 %91
184        %821 = OpPhi %6 %819 %78 %672 %91
185        %820 = OpPhi %6 %9 %78 %670 %91
186         %94 = OpSLessThan %37 %820 %36
187         %96 = OpSLessThan %37 %821 %40
188         %97 = OpLogicalAnd %37 %94 %96
189               OpLoopMerge %90 %91 None
190               OpBranchConditional %97 %89 %90
191         %89 = OpLabel
192               OpBranch %99
193         %99 = OpLabel
194        %960 = OpPhi %37 %961 %89 %2051 %102
195        %920 = OpPhi %6 %921 %89 %668 %102
196        %823 = OpPhi %6 %821 %89 %666 %102
197        %822 = OpPhi %6 %9 %89 %664 %102
198        %105 = OpSLessThan %37 %822 %36
199        %107 = OpSLessThan %37 %823 %40
200        %108 = OpLogicalAnd %37 %105 %107
201               OpLoopMerge %101 %102 None
202               OpBranchConditional %108 %100 %101
203        %100 = OpLabel
204               OpBranch %110
205        %110 = OpLabel
206        %959 = OpPhi %37 %960 %100 %1986 %113
207        %919 = OpPhi %6 %920 %100 %662 %113
208        %825 = OpPhi %6 %823 %100 %660 %113
209        %824 = OpPhi %6 %9 %100 %658 %113
210        %116 = OpSLessThan %37 %824 %36
211        %118 = OpSLessThan %37 %825 %40
212        %119 = OpLogicalAnd %37 %116 %118
213               OpLoopMerge %112 %113 None
214               OpBranchConditional %119 %111 %112
215        %111 = OpLabel
216               OpBranch %121
217        %121 = OpLabel
218        %958 = OpPhi %37 %959 %111 %1923 %124
219        %918 = OpPhi %6 %919 %111 %656 %124
220        %827 = OpPhi %6 %825 %111 %654 %124
221        %826 = OpPhi %6 %9 %111 %652 %124
222        %127 = OpSLessThan %37 %826 %36
223        %129 = OpSLessThan %37 %827 %40
224        %130 = OpLogicalAnd %37 %127 %129
225               OpLoopMerge %123 %124 None
226               OpBranchConditional %130 %122 %123
227        %122 = OpLabel
228               OpBranch %132
229        %132 = OpLabel
230        %957 = OpPhi %37 %958 %122 %1862 %135
231        %917 = OpPhi %6 %918 %122 %650 %135
232        %829 = OpPhi %6 %827 %122 %648 %135
233        %828 = OpPhi %6 %9 %122 %646 %135
234        %138 = OpSLessThan %37 %828 %36
235        %140 = OpSLessThan %37 %829 %40
236        %141 = OpLogicalAnd %37 %138 %140
237               OpLoopMerge %134 %135 None
238               OpBranchConditional %141 %133 %134
239        %133 = OpLabel
240               OpBranch %143
241        %143 = OpLabel
242        %956 = OpPhi %37 %957 %133 %1803 %146
243        %916 = OpPhi %6 %917 %133 %644 %146
244        %831 = OpPhi %6 %829 %133 %642 %146
245        %830 = OpPhi %6 %9 %133 %640 %146
246        %149 = OpSLessThan %37 %830 %36
247        %151 = OpSLessThan %37 %831 %40
248        %152 = OpLogicalAnd %37 %149 %151
249               OpLoopMerge %145 %146 None
250               OpBranchConditional %152 %144 %145
251        %144 = OpLabel
252               OpBranch %154
253        %154 = OpLabel
254        %955 = OpPhi %37 %956 %144 %1746 %157
255        %915 = OpPhi %6 %916 %144 %638 %157
256        %833 = OpPhi %6 %831 %144 %636 %157
257        %832 = OpPhi %6 %9 %144 %634 %157
258        %160 = OpSLessThan %37 %832 %36
259        %162 = OpSLessThan %37 %833 %40
260        %163 = OpLogicalAnd %37 %160 %162
261               OpLoopMerge %156 %157 None
262               OpBranchConditional %163 %155 %156
263        %155 = OpLabel
264               OpBranch %165
265        %165 = OpLabel
266        %954 = OpPhi %37 %955 %155 %1691 %168
267        %914 = OpPhi %6 %915 %155 %632 %168
268        %835 = OpPhi %6 %833 %155 %630 %168
269        %834 = OpPhi %6 %9 %155 %628 %168
270        %171 = OpSLessThan %37 %834 %36
271        %173 = OpSLessThan %37 %835 %40
272        %174 = OpLogicalAnd %37 %171 %173
273               OpLoopMerge %167 %168 None
274               OpBranchConditional %174 %166 %167
275        %166 = OpLabel
276               OpBranch %176
277        %176 = OpLabel
278        %953 = OpPhi %37 %954 %166 %1638 %179
279        %913 = OpPhi %6 %914 %166 %626 %179
280        %837 = OpPhi %6 %835 %166 %624 %179
281        %836 = OpPhi %6 %9 %166 %622 %179
282        %182 = OpSLessThan %37 %836 %36
283        %184 = OpSLessThan %37 %837 %40
284        %185 = OpLogicalAnd %37 %182 %184
285               OpLoopMerge %178 %179 None
286               OpBranchConditional %185 %177 %178
287        %177 = OpLabel
288               OpBranch %187
289        %187 = OpLabel
290        %952 = OpPhi %37 %953 %177 %1587 %190
291        %912 = OpPhi %6 %913 %177 %620 %190
292        %839 = OpPhi %6 %837 %177 %618 %190
293        %838 = OpPhi %6 %9 %177 %616 %190
294        %193 = OpSLessThan %37 %838 %36
295        %195 = OpSLessThan %37 %839 %40
296        %196 = OpLogicalAnd %37 %193 %195
297               OpLoopMerge %189 %190 None
298               OpBranchConditional %196 %188 %189
299        %188 = OpLabel
300               OpBranch %198
301        %198 = OpLabel
302        %951 = OpPhi %37 %952 %188 %1538 %201
303        %911 = OpPhi %6 %912 %188 %614 %201
304        %841 = OpPhi %6 %839 %188 %612 %201
305        %840 = OpPhi %6 %9 %188 %610 %201
306        %204 = OpSLessThan %37 %840 %36
307        %206 = OpSLessThan %37 %841 %40
308        %207 = OpLogicalAnd %37 %204 %206
309               OpLoopMerge %200 %201 None
310               OpBranchConditional %207 %199 %200
311        %199 = OpLabel
312               OpBranch %209
313        %209 = OpLabel
314        %950 = OpPhi %37 %951 %199 %1491 %212
315        %910 = OpPhi %6 %911 %199 %608 %212
316        %843 = OpPhi %6 %841 %199 %606 %212
317        %842 = OpPhi %6 %9 %199 %604 %212
318        %215 = OpSLessThan %37 %842 %36
319        %217 = OpSLessThan %37 %843 %40
320        %218 = OpLogicalAnd %37 %215 %217
321               OpLoopMerge %211 %212 None
322               OpBranchConditional %218 %210 %211
323        %210 = OpLabel
324               OpBranch %220
325        %220 = OpLabel
326        %949 = OpPhi %37 %950 %210 %1446 %223
327        %909 = OpPhi %6 %910 %210 %602 %223
328        %845 = OpPhi %6 %843 %210 %600 %223
329        %844 = OpPhi %6 %9 %210 %598 %223
330        %226 = OpSLessThan %37 %844 %36
331        %228 = OpSLessThan %37 %845 %40
332        %229 = OpLogicalAnd %37 %226 %228
333               OpLoopMerge %222 %223 None
334               OpBranchConditional %229 %221 %222
335        %221 = OpLabel
336               OpBranch %231
337        %231 = OpLabel
338        %948 = OpPhi %37 %949 %221 %1403 %234
339        %908 = OpPhi %6 %909 %221 %596 %234
340        %847 = OpPhi %6 %845 %221 %594 %234
341        %846 = OpPhi %6 %9 %221 %592 %234
342        %237 = OpSLessThan %37 %846 %36
343        %239 = OpSLessThan %37 %847 %40
344        %240 = OpLogicalAnd %37 %237 %239
345               OpLoopMerge %233 %234 None
346               OpBranchConditional %240 %232 %233
347        %232 = OpLabel
348               OpBranch %242
349        %242 = OpLabel
350        %947 = OpPhi %37 %948 %232 %1362 %245
351        %907 = OpPhi %6 %908 %232 %590 %245
352        %849 = OpPhi %6 %847 %232 %588 %245
353        %848 = OpPhi %6 %9 %232 %586 %245
354        %248 = OpSLessThan %37 %848 %36
355        %250 = OpSLessThan %37 %849 %40
356        %251 = OpLogicalAnd %37 %248 %250
357               OpLoopMerge %244 %245 None
358               OpBranchConditional %251 %243 %244
359        %243 = OpLabel
360               OpBranch %253
361        %253 = OpLabel
362        %946 = OpPhi %37 %947 %243 %1323 %256
363        %906 = OpPhi %6 %907 %243 %584 %256
364        %851 = OpPhi %6 %849 %243 %582 %256
365        %850 = OpPhi %6 %9 %243 %580 %256
366        %259 = OpSLessThan %37 %850 %36
367        %261 = OpSLessThan %37 %851 %40
368        %262 = OpLogicalAnd %37 %259 %261
369               OpLoopMerge %255 %256 None
370               OpBranchConditional %262 %254 %255
371        %254 = OpLabel
372               OpBranch %264
373        %264 = OpLabel
374        %945 = OpPhi %37 %946 %254 %1286 %267
375        %905 = OpPhi %6 %906 %254 %578 %267
376        %853 = OpPhi %6 %851 %254 %576 %267
377        %852 = OpPhi %6 %9 %254 %574 %267
378        %270 = OpSLessThan %37 %852 %36
379        %272 = OpSLessThan %37 %853 %40
380        %273 = OpLogicalAnd %37 %270 %272
381               OpLoopMerge %266 %267 None
382               OpBranchConditional %273 %265 %266
383        %265 = OpLabel
384               OpBranch %275
385        %275 = OpLabel
386        %944 = OpPhi %37 %945 %265 %1251 %278
387        %904 = OpPhi %6 %905 %265 %572 %278
388        %855 = OpPhi %6 %853 %265 %570 %278
389        %854 = OpPhi %6 %9 %265 %568 %278
390        %281 = OpSLessThan %37 %854 %36
391        %283 = OpSLessThan %37 %855 %40
392        %284 = OpLogicalAnd %37 %281 %283
393               OpLoopMerge %277 %278 None
394               OpBranchConditional %284 %276 %277
395        %276 = OpLabel
396               OpBranch %286
397        %286 = OpLabel
398        %943 = OpPhi %37 %944 %276 %1218 %289
399        %903 = OpPhi %6 %904 %276 %566 %289
400        %857 = OpPhi %6 %855 %276 %564 %289
401        %856 = OpPhi %6 %9 %276 %562 %289
402        %292 = OpSLessThan %37 %856 %36
403        %294 = OpSLessThan %37 %857 %40
404        %295 = OpLogicalAnd %37 %292 %294
405               OpLoopMerge %288 %289 None
406               OpBranchConditional %295 %287 %288
407        %287 = OpLabel
408               OpBranch %297
409        %297 = OpLabel
410        %942 = OpPhi %37 %943 %287 %1187 %300
411        %902 = OpPhi %6 %903 %287 %560 %300
412        %859 = OpPhi %6 %857 %287 %558 %300
413        %858 = OpPhi %6 %9 %287 %556 %300
414        %303 = OpSLessThan %37 %858 %36
415        %305 = OpSLessThan %37 %859 %40
416        %306 = OpLogicalAnd %37 %303 %305
417               OpLoopMerge %299 %300 None
418               OpBranchConditional %306 %298 %299
419        %298 = OpLabel
420               OpBranch %308
421        %308 = OpLabel
422        %941 = OpPhi %37 %942 %298 %1158 %311
423        %901 = OpPhi %6 %902 %298 %554 %311
424        %861 = OpPhi %6 %859 %298 %552 %311
425        %860 = OpPhi %6 %9 %298 %550 %311
426        %314 = OpSLessThan %37 %860 %36
427        %316 = OpSLessThan %37 %861 %40
428        %317 = OpLogicalAnd %37 %314 %316
429               OpLoopMerge %310 %311 None
430               OpBranchConditional %317 %309 %310
431        %309 = OpLabel
432               OpBranch %319
433        %319 = OpLabel
434        %940 = OpPhi %37 %941 %309 %1131 %322
435        %900 = OpPhi %6 %901 %309 %548 %322
436        %863 = OpPhi %6 %861 %309 %546 %322
437        %862 = OpPhi %6 %9 %309 %544 %322
438        %325 = OpSLessThan %37 %862 %36
439        %327 = OpSLessThan %37 %863 %40
440        %328 = OpLogicalAnd %37 %325 %327
441               OpLoopMerge %321 %322 None
442               OpBranchConditional %328 %320 %321
443        %320 = OpLabel
444               OpBranch %330
445        %330 = OpLabel
446        %939 = OpPhi %37 %940 %320 %1106 %333
447        %899 = OpPhi %6 %900 %320 %542 %333
448        %865 = OpPhi %6 %863 %320 %540 %333
449        %864 = OpPhi %6 %9 %320 %538 %333
450        %336 = OpSLessThan %37 %864 %36
451        %338 = OpSLessThan %37 %865 %40
452        %339 = OpLogicalAnd %37 %336 %338
453               OpLoopMerge %332 %333 None
454               OpBranchConditional %339 %331 %332
455        %331 = OpLabel
456               OpBranch %341
457        %341 = OpLabel
458        %938 = OpPhi %37 %939 %331 %1083 %344
459        %898 = OpPhi %6 %899 %331 %536 %344
460        %867 = OpPhi %6 %865 %331 %534 %344
461        %866 = OpPhi %6 %9 %331 %532 %344
462        %347 = OpSLessThan %37 %866 %36
463        %349 = OpSLessThan %37 %867 %40
464        %350 = OpLogicalAnd %37 %347 %349
465               OpLoopMerge %343 %344 None
466               OpBranchConditional %350 %342 %343
467        %342 = OpLabel
468               OpBranch %352
469        %352 = OpLabel
470        %937 = OpPhi %37 %938 %342 %1062 %355
471        %897 = OpPhi %6 %898 %342 %530 %355
472        %869 = OpPhi %6 %867 %342 %528 %355
473        %868 = OpPhi %6 %9 %342 %526 %355
474        %358 = OpSLessThan %37 %868 %36
475        %360 = OpSLessThan %37 %869 %40
476        %361 = OpLogicalAnd %37 %358 %360
477               OpLoopMerge %354 %355 None
478               OpBranchConditional %361 %353 %354
479        %353 = OpLabel
480               OpBranch %363
481        %363 = OpLabel
482        %936 = OpPhi %37 %937 %353 %1043 %366
483        %896 = OpPhi %6 %897 %353 %524 %366
484        %871 = OpPhi %6 %869 %353 %522 %366
485        %870 = OpPhi %6 %9 %353 %520 %366
486        %369 = OpSLessThan %37 %870 %36
487        %371 = OpSLessThan %37 %871 %40
488        %372 = OpLogicalAnd %37 %369 %371
489               OpLoopMerge %365 %366 None
490               OpBranchConditional %372 %364 %365
491        %364 = OpLabel
492               OpBranch %374
493        %374 = OpLabel
494        %935 = OpPhi %37 %936 %364 %1026 %377
495        %895 = OpPhi %6 %896 %364 %518 %377
496        %873 = OpPhi %6 %871 %364 %516 %377
497        %872 = OpPhi %6 %9 %364 %514 %377
498        %380 = OpSLessThan %37 %872 %36
499        %382 = OpSLessThan %37 %873 %40
500        %383 = OpLogicalAnd %37 %380 %382
501               OpLoopMerge %376 %377 None
502               OpBranchConditional %383 %375 %376
503        %375 = OpLabel
504               OpBranch %385
505        %385 = OpLabel
506        %934 = OpPhi %37 %935 %375 %1011 %388
507        %894 = OpPhi %6 %895 %375 %512 %388
508        %875 = OpPhi %6 %873 %375 %510 %388
509        %874 = OpPhi %6 %9 %375 %508 %388
510        %391 = OpSLessThan %37 %874 %36
511        %393 = OpSLessThan %37 %875 %40
512        %394 = OpLogicalAnd %37 %391 %393
513               OpLoopMerge %387 %388 None
514               OpBranchConditional %394 %386 %387
515        %386 = OpLabel
516               OpBranch %396
517        %396 = OpLabel
518        %933 = OpPhi %37 %934 %386 %998 %399
519        %893 = OpPhi %6 %894 %386 %506 %399
520        %877 = OpPhi %6 %875 %386 %504 %399
521        %876 = OpPhi %6 %9 %386 %502 %399
522        %402 = OpSLessThan %37 %876 %36
523        %404 = OpSLessThan %37 %877 %40
524        %405 = OpLogicalAnd %37 %402 %404
525               OpLoopMerge %398 %399 None
526               OpBranchConditional %405 %397 %398
527        %397 = OpLabel
528               OpBranch %407
529        %407 = OpLabel
530        %932 = OpPhi %37 %933 %397 %987 %410
531        %892 = OpPhi %6 %893 %397 %500 %410
532        %879 = OpPhi %6 %877 %397 %498 %410
533        %878 = OpPhi %6 %9 %397 %496 %410
534        %413 = OpSLessThan %37 %878 %36
535        %415 = OpSLessThan %37 %879 %40
536        %416 = OpLogicalAnd %37 %413 %415
537               OpLoopMerge %409 %410 None
538               OpBranchConditional %416 %408 %409
539        %408 = OpLabel
540               OpBranch %418
541        %418 = OpLabel
542        %931 = OpPhi %37 %932 %408 %978 %421
543        %891 = OpPhi %6 %892 %408 %494 %421
544        %881 = OpPhi %6 %879 %408 %492 %421
545        %880 = OpPhi %6 %9 %408 %490 %421
546        %424 = OpSLessThan %37 %880 %36
547        %426 = OpSLessThan %37 %881 %40
548        %427 = OpLogicalAnd %37 %424 %426
549               OpLoopMerge %420 %421 None
550               OpBranchConditional %427 %419 %420
551        %419 = OpLabel
552               OpBranch %429
553        %429 = OpLabel
554        %930 = OpPhi %37 %931 %419 %971 %432
555        %890 = OpPhi %6 %891 %419 %488 %432
556        %883 = OpPhi %6 %881 %419 %486 %432
557        %882 = OpPhi %6 %9 %419 %484 %432
558        %435 = OpSLessThan %37 %882 %36
559        %437 = OpSLessThan %37 %883 %40
560        %438 = OpLogicalAnd %37 %435 %437
561               OpLoopMerge %431 %432 None
562               OpBranchConditional %438 %430 %431
563        %430 = OpLabel
564               OpBranch %440
565        %440 = OpLabel
566        %929 = OpPhi %37 %930 %430 %927 %443
567        %889 = OpPhi %6 %890 %430 %482 %443
568        %885 = OpPhi %6 %883 %430 %480 %443
569        %884 = OpPhi %6 %9 %430 %478 %443
570        %446 = OpSLessThan %37 %884 %36
571        %448 = OpSLessThan %37 %885 %40
572        %449 = OpLogicalAnd %37 %446 %448
573               OpLoopMerge %442 %443 None
574               OpBranchConditional %449 %441 %442
575        %441 = OpLabel
576               OpBranch %451
577        %451 = OpLabel
578        %888 = OpPhi %6 %889 %441 %476 %454
579        %887 = OpPhi %6 %885 %441 %474 %454
580        %886 = OpPhi %6 %9 %441 %472 %454
581        %457 = OpSLessThan %37 %886 %36
582        %459 = OpSLessThan %37 %887 %40
583        %460 = OpLogicalAnd %37 %457 %459
584               OpLoopMerge %453 %454 None
585               OpBranchConditional %460 %452 %453
586        %452 = OpLabel
587        %464 = OpAccessChain %463 %16 %462
588        %465 = OpLoad %10 %464
589        %466 = OpFOrdLessThan %37 %465 %22
590               OpSelectionMerge %468 None
591               OpBranchConditional %466 %467 %468
592        %467 = OpLabel
593               OpBranch %453
594        %468 = OpLabel
595               OpBranch %454
596        %454 = OpLabel
597        %472 = OpIAdd %6 %886 %471
598        %474 = OpIAdd %6 %887 %471
599        %476 = OpIAdd %6 %888 %471
600               OpBranch %451
601        %453 = OpLabel
602        %927 = OpPhi %37 %929 %451 %729 %467
603               OpSelectionMerge %730 None
604               OpBranchConditional %927 %442 %730
605        %730 = OpLabel
606               OpBranch %443
607        %443 = OpLabel
608        %478 = OpIAdd %6 %884 %471
609        %480 = OpIAdd %6 %887 %471
610        %482 = OpIAdd %6 %888 %471
611               OpBranch %440
612        %442 = OpLabel
613        %977 = OpPhi %6 %889 %440 %888 %453
614        %976 = OpPhi %6 %885 %440 %887 %453
615        %971 = OpPhi %37 %929 %440 %927 %453
616               OpSelectionMerge %732 None
617               OpBranchConditional %971 %431 %732
618        %732 = OpLabel
619               OpBranch %432
620        %432 = OpLabel
621        %484 = OpIAdd %6 %882 %471
622        %486 = OpIAdd %6 %976 %471
623        %488 = OpIAdd %6 %977 %471
624               OpBranch %429
625        %431 = OpLabel
626        %986 = OpPhi %6 %890 %429 %977 %442
627        %985 = OpPhi %6 %883 %429 %976 %442
628        %978 = OpPhi %37 %930 %429 %971 %442
629               OpSelectionMerge %734 None
630               OpBranchConditional %978 %420 %734
631        %734 = OpLabel
632               OpBranch %421
633        %421 = OpLabel
634        %490 = OpIAdd %6 %880 %471
635        %492 = OpIAdd %6 %985 %471
636        %494 = OpIAdd %6 %986 %471
637               OpBranch %418
638        %420 = OpLabel
639        %997 = OpPhi %6 %891 %418 %986 %431
640        %996 = OpPhi %6 %881 %418 %985 %431
641        %987 = OpPhi %37 %931 %418 %978 %431
642               OpSelectionMerge %736 None
643               OpBranchConditional %987 %409 %736
644        %736 = OpLabel
645               OpBranch %410
646        %410 = OpLabel
647        %496 = OpIAdd %6 %878 %471
648        %498 = OpIAdd %6 %996 %471
649        %500 = OpIAdd %6 %997 %471
650               OpBranch %407
651        %409 = OpLabel
652       %1010 = OpPhi %6 %892 %407 %997 %420
653       %1009 = OpPhi %6 %879 %407 %996 %420
654        %998 = OpPhi %37 %932 %407 %987 %420
655               OpSelectionMerge %738 None
656               OpBranchConditional %998 %398 %738
657        %738 = OpLabel
658               OpBranch %399
659        %399 = OpLabel
660        %502 = OpIAdd %6 %876 %471
661        %504 = OpIAdd %6 %1009 %471
662        %506 = OpIAdd %6 %1010 %471
663               OpBranch %396
664        %398 = OpLabel
665       %1025 = OpPhi %6 %893 %396 %1010 %409
666       %1024 = OpPhi %6 %877 %396 %1009 %409
667       %1011 = OpPhi %37 %933 %396 %998 %409
668               OpSelectionMerge %740 None
669               OpBranchConditional %1011 %387 %740
670        %740 = OpLabel
671               OpBranch %388
672        %388 = OpLabel
673        %508 = OpIAdd %6 %874 %471
674        %510 = OpIAdd %6 %1024 %471
675        %512 = OpIAdd %6 %1025 %471
676               OpBranch %385
677        %387 = OpLabel
678       %1042 = OpPhi %6 %894 %385 %1025 %398
679       %1041 = OpPhi %6 %875 %385 %1024 %398
680       %1026 = OpPhi %37 %934 %385 %1011 %398
681               OpSelectionMerge %742 None
682               OpBranchConditional %1026 %376 %742
683        %742 = OpLabel
684               OpBranch %377
685        %377 = OpLabel
686        %514 = OpIAdd %6 %872 %471
687        %516 = OpIAdd %6 %1041 %471
688        %518 = OpIAdd %6 %1042 %471
689               OpBranch %374
690        %376 = OpLabel
691       %1061 = OpPhi %6 %895 %374 %1042 %387
692       %1060 = OpPhi %6 %873 %374 %1041 %387
693       %1043 = OpPhi %37 %935 %374 %1026 %387
694               OpSelectionMerge %744 None
695               OpBranchConditional %1043 %365 %744
696        %744 = OpLabel
697               OpBranch %366
698        %366 = OpLabel
699        %520 = OpIAdd %6 %870 %471
700        %522 = OpIAdd %6 %1060 %471
701        %524 = OpIAdd %6 %1061 %471
702               OpBranch %363
703        %365 = OpLabel
704       %1082 = OpPhi %6 %896 %363 %1061 %376
705       %1081 = OpPhi %6 %871 %363 %1060 %376
706       %1062 = OpPhi %37 %936 %363 %1043 %376
707               OpSelectionMerge %746 None
708               OpBranchConditional %1062 %354 %746
709        %746 = OpLabel
710               OpBranch %355
711        %355 = OpLabel
712        %526 = OpIAdd %6 %868 %471
713        %528 = OpIAdd %6 %1081 %471
714        %530 = OpIAdd %6 %1082 %471
715               OpBranch %352
716        %354 = OpLabel
717       %1105 = OpPhi %6 %897 %352 %1082 %365
718       %1104 = OpPhi %6 %869 %352 %1081 %365
719       %1083 = OpPhi %37 %937 %352 %1062 %365
720               OpSelectionMerge %748 None
721               OpBranchConditional %1083 %343 %748
722        %748 = OpLabel
723               OpBranch %344
724        %344 = OpLabel
725        %532 = OpIAdd %6 %866 %471
726        %534 = OpIAdd %6 %1104 %471
727        %536 = OpIAdd %6 %1105 %471
728               OpBranch %341
729        %343 = OpLabel
730       %1130 = OpPhi %6 %898 %341 %1105 %354
731       %1129 = OpPhi %6 %867 %341 %1104 %354
732       %1106 = OpPhi %37 %938 %341 %1083 %354
733               OpSelectionMerge %750 None
734               OpBranchConditional %1106 %332 %750
735        %750 = OpLabel
736               OpBranch %333
737        %333 = OpLabel
738        %538 = OpIAdd %6 %864 %471
739        %540 = OpIAdd %6 %1129 %471
740        %542 = OpIAdd %6 %1130 %471
741               OpBranch %330
742        %332 = OpLabel
743       %1157 = OpPhi %6 %899 %330 %1130 %343
744       %1156 = OpPhi %6 %865 %330 %1129 %343
745       %1131 = OpPhi %37 %939 %330 %1106 %343
746               OpSelectionMerge %752 None
747               OpBranchConditional %1131 %321 %752
748        %752 = OpLabel
749               OpBranch %322
750        %322 = OpLabel
751        %544 = OpIAdd %6 %862 %471
752        %546 = OpIAdd %6 %1156 %471
753        %548 = OpIAdd %6 %1157 %471
754               OpBranch %319
755        %321 = OpLabel
756       %1186 = OpPhi %6 %900 %319 %1157 %332
757       %1185 = OpPhi %6 %863 %319 %1156 %332
758       %1158 = OpPhi %37 %940 %319 %1131 %332
759               OpSelectionMerge %754 None
760               OpBranchConditional %1158 %310 %754
761        %754 = OpLabel
762               OpBranch %311
763        %311 = OpLabel
764        %550 = OpIAdd %6 %860 %471
765        %552 = OpIAdd %6 %1185 %471
766        %554 = OpIAdd %6 %1186 %471
767               OpBranch %308
768        %310 = OpLabel
769       %1217 = OpPhi %6 %901 %308 %1186 %321
770       %1216 = OpPhi %6 %861 %308 %1185 %321
771       %1187 = OpPhi %37 %941 %308 %1158 %321
772               OpSelectionMerge %756 None
773               OpBranchConditional %1187 %299 %756
774        %756 = OpLabel
775               OpBranch %300
776        %300 = OpLabel
777        %556 = OpIAdd %6 %858 %471
778        %558 = OpIAdd %6 %1216 %471
779        %560 = OpIAdd %6 %1217 %471
780               OpBranch %297
781        %299 = OpLabel
782       %1250 = OpPhi %6 %902 %297 %1217 %310
783       %1249 = OpPhi %6 %859 %297 %1216 %310
784       %1218 = OpPhi %37 %942 %297 %1187 %310
785               OpSelectionMerge %758 None
786               OpBranchConditional %1218 %288 %758
787        %758 = OpLabel
788               OpBranch %289
789        %289 = OpLabel
790        %562 = OpIAdd %6 %856 %471
791        %564 = OpIAdd %6 %1249 %471
792        %566 = OpIAdd %6 %1250 %471
793               OpBranch %286
794        %288 = OpLabel
795       %1285 = OpPhi %6 %903 %286 %1250 %299
796       %1284 = OpPhi %6 %857 %286 %1249 %299
797       %1251 = OpPhi %37 %943 %286 %1218 %299
798               OpSelectionMerge %760 None
799               OpBranchConditional %1251 %277 %760
800        %760 = OpLabel
801               OpBranch %278
802        %278 = OpLabel
803        %568 = OpIAdd %6 %854 %471
804        %570 = OpIAdd %6 %1284 %471
805        %572 = OpIAdd %6 %1285 %471
806               OpBranch %275
807        %277 = OpLabel
808       %1322 = OpPhi %6 %904 %275 %1285 %288
809       %1321 = OpPhi %6 %855 %275 %1284 %288
810       %1286 = OpPhi %37 %944 %275 %1251 %288
811               OpSelectionMerge %762 None
812               OpBranchConditional %1286 %266 %762
813        %762 = OpLabel
814               OpBranch %267
815        %267 = OpLabel
816        %574 = OpIAdd %6 %852 %471
817        %576 = OpIAdd %6 %1321 %471
818        %578 = OpIAdd %6 %1322 %471
819               OpBranch %264
820        %266 = OpLabel
821       %1361 = OpPhi %6 %905 %264 %1322 %277
822       %1360 = OpPhi %6 %853 %264 %1321 %277
823       %1323 = OpPhi %37 %945 %264 %1286 %277
824               OpSelectionMerge %764 None
825               OpBranchConditional %1323 %255 %764
826        %764 = OpLabel
827               OpBranch %256
828        %256 = OpLabel
829        %580 = OpIAdd %6 %850 %471
830        %582 = OpIAdd %6 %1360 %471
831        %584 = OpIAdd %6 %1361 %471
832               OpBranch %253
833        %255 = OpLabel
834       %1402 = OpPhi %6 %906 %253 %1361 %266
835       %1401 = OpPhi %6 %851 %253 %1360 %266
836       %1362 = OpPhi %37 %946 %253 %1323 %266
837               OpSelectionMerge %766 None
838               OpBranchConditional %1362 %244 %766
839        %766 = OpLabel
840               OpBranch %245
841        %245 = OpLabel
842        %586 = OpIAdd %6 %848 %471
843        %588 = OpIAdd %6 %1401 %471
844        %590 = OpIAdd %6 %1402 %471
845               OpBranch %242
846        %244 = OpLabel
847       %1445 = OpPhi %6 %907 %242 %1402 %255
848       %1444 = OpPhi %6 %849 %242 %1401 %255
849       %1403 = OpPhi %37 %947 %242 %1362 %255
850               OpSelectionMerge %768 None
851               OpBranchConditional %1403 %233 %768
852        %768 = OpLabel
853               OpBranch %234
854        %234 = OpLabel
855        %592 = OpIAdd %6 %846 %471
856        %594 = OpIAdd %6 %1444 %471
857        %596 = OpIAdd %6 %1445 %471
858               OpBranch %231
859        %233 = OpLabel
860       %1490 = OpPhi %6 %908 %231 %1445 %244
861       %1489 = OpPhi %6 %847 %231 %1444 %244
862       %1446 = OpPhi %37 %948 %231 %1403 %244
863               OpSelectionMerge %770 None
864               OpBranchConditional %1446 %222 %770
865        %770 = OpLabel
866               OpBranch %223
867        %223 = OpLabel
868        %598 = OpIAdd %6 %844 %471
869        %600 = OpIAdd %6 %1489 %471
870        %602 = OpIAdd %6 %1490 %471
871               OpBranch %220
872        %222 = OpLabel
873       %1537 = OpPhi %6 %909 %220 %1490 %233
874       %1536 = OpPhi %6 %845 %220 %1489 %233
875       %1491 = OpPhi %37 %949 %220 %1446 %233
876               OpSelectionMerge %772 None
877               OpBranchConditional %1491 %211 %772
878        %772 = OpLabel
879               OpBranch %212
880        %212 = OpLabel
881        %604 = OpIAdd %6 %842 %471
882        %606 = OpIAdd %6 %1536 %471
883        %608 = OpIAdd %6 %1537 %471
884               OpBranch %209
885        %211 = OpLabel
886       %1586 = OpPhi %6 %910 %209 %1537 %222
887       %1585 = OpPhi %6 %843 %209 %1536 %222
888       %1538 = OpPhi %37 %950 %209 %1491 %222
889               OpSelectionMerge %774 None
890               OpBranchConditional %1538 %200 %774
891        %774 = OpLabel
892               OpBranch %201
893        %201 = OpLabel
894        %610 = OpIAdd %6 %840 %471
895        %612 = OpIAdd %6 %1585 %471
896        %614 = OpIAdd %6 %1586 %471
897               OpBranch %198
898        %200 = OpLabel
899       %1637 = OpPhi %6 %911 %198 %1586 %211
900       %1636 = OpPhi %6 %841 %198 %1585 %211
901       %1587 = OpPhi %37 %951 %198 %1538 %211
902               OpSelectionMerge %776 None
903               OpBranchConditional %1587 %189 %776
904        %776 = OpLabel
905               OpBranch %190
906        %190 = OpLabel
907        %616 = OpIAdd %6 %838 %471
908        %618 = OpIAdd %6 %1636 %471
909        %620 = OpIAdd %6 %1637 %471
910               OpBranch %187
911        %189 = OpLabel
912       %1690 = OpPhi %6 %912 %187 %1637 %200
913       %1689 = OpPhi %6 %839 %187 %1636 %200
914       %1638 = OpPhi %37 %952 %187 %1587 %200
915               OpSelectionMerge %778 None
916               OpBranchConditional %1638 %178 %778
917        %778 = OpLabel
918               OpBranch %179
919        %179 = OpLabel
920        %622 = OpIAdd %6 %836 %471
921        %624 = OpIAdd %6 %1689 %471
922        %626 = OpIAdd %6 %1690 %471
923               OpBranch %176
924        %178 = OpLabel
925       %1745 = OpPhi %6 %913 %176 %1690 %189
926       %1744 = OpPhi %6 %837 %176 %1689 %189
927       %1691 = OpPhi %37 %953 %176 %1638 %189
928               OpSelectionMerge %780 None
929               OpBranchConditional %1691 %167 %780
930        %780 = OpLabel
931               OpBranch %168
932        %168 = OpLabel
933        %628 = OpIAdd %6 %834 %471
934        %630 = OpIAdd %6 %1744 %471
935        %632 = OpIAdd %6 %1745 %471
936               OpBranch %165
937        %167 = OpLabel
938       %1802 = OpPhi %6 %914 %165 %1745 %178
939       %1801 = OpPhi %6 %835 %165 %1744 %178
940       %1746 = OpPhi %37 %954 %165 %1691 %178
941               OpSelectionMerge %782 None
942               OpBranchConditional %1746 %156 %782
943        %782 = OpLabel
944               OpBranch %157
945        %157 = OpLabel
946        %634 = OpIAdd %6 %832 %471
947        %636 = OpIAdd %6 %1801 %471
948        %638 = OpIAdd %6 %1802 %471
949               OpBranch %154
950        %156 = OpLabel
951       %1861 = OpPhi %6 %915 %154 %1802 %167
952       %1860 = OpPhi %6 %833 %154 %1801 %167
953       %1803 = OpPhi %37 %955 %154 %1746 %167
954               OpSelectionMerge %784 None
955               OpBranchConditional %1803 %145 %784
956        %784 = OpLabel
957               OpBranch %146
958        %146 = OpLabel
959        %640 = OpIAdd %6 %830 %471
960        %642 = OpIAdd %6 %1860 %471
961        %644 = OpIAdd %6 %1861 %471
962               OpBranch %143
963        %145 = OpLabel
964       %1922 = OpPhi %6 %916 %143 %1861 %156
965       %1921 = OpPhi %6 %831 %143 %1860 %156
966       %1862 = OpPhi %37 %956 %143 %1803 %156
967               OpSelectionMerge %786 None
968               OpBranchConditional %1862 %134 %786
969        %786 = OpLabel
970               OpBranch %135
971        %135 = OpLabel
972        %646 = OpIAdd %6 %828 %471
973        %648 = OpIAdd %6 %1921 %471
974        %650 = OpIAdd %6 %1922 %471
975               OpBranch %132
976        %134 = OpLabel
977       %1985 = OpPhi %6 %917 %132 %1922 %145
978       %1984 = OpPhi %6 %829 %132 %1921 %145
979       %1923 = OpPhi %37 %957 %132 %1862 %145
980               OpSelectionMerge %788 None
981               OpBranchConditional %1923 %123 %788
982        %788 = OpLabel
983               OpBranch %124
984        %124 = OpLabel
985        %652 = OpIAdd %6 %826 %471
986        %654 = OpIAdd %6 %1984 %471
987        %656 = OpIAdd %6 %1985 %471
988               OpBranch %121
989        %123 = OpLabel
990       %2050 = OpPhi %6 %918 %121 %1985 %134
991       %2049 = OpPhi %6 %827 %121 %1984 %134
992       %1986 = OpPhi %37 %958 %121 %1923 %134
993               OpSelectionMerge %790 None
994               OpBranchConditional %1986 %112 %790
995        %790 = OpLabel
996               OpBranch %113
997        %113 = OpLabel
998        %658 = OpIAdd %6 %824 %471
999        %660 = OpIAdd %6 %2049 %471
1000        %662 = OpIAdd %6 %2050 %471
1001               OpBranch %110
1002        %112 = OpLabel
1003       %2117 = OpPhi %6 %919 %110 %2050 %123
1004       %2116 = OpPhi %6 %825 %110 %2049 %123
1005       %2051 = OpPhi %37 %959 %110 %1986 %123
1006               OpSelectionMerge %792 None
1007               OpBranchConditional %2051 %101 %792
1008        %792 = OpLabel
1009               OpBranch %102
1010        %102 = OpLabel
1011        %664 = OpIAdd %6 %822 %471
1012        %666 = OpIAdd %6 %2116 %471
1013        %668 = OpIAdd %6 %2117 %471
1014               OpBranch %99
1015        %101 = OpLabel
1016       %2186 = OpPhi %6 %920 %99 %2117 %112
1017       %2185 = OpPhi %6 %823 %99 %2116 %112
1018       %2118 = OpPhi %37 %960 %99 %2051 %112
1019               OpSelectionMerge %794 None
1020               OpBranchConditional %2118 %90 %794
1021        %794 = OpLabel
1022               OpBranch %91
1023         %91 = OpLabel
1024        %670 = OpIAdd %6 %820 %471
1025        %672 = OpIAdd %6 %2185 %471
1026        %674 = OpIAdd %6 %2186 %471
1027               OpBranch %88
1028         %90 = OpLabel
1029       %2257 = OpPhi %6 %921 %88 %2186 %101
1030       %2256 = OpPhi %6 %821 %88 %2185 %101
1031       %2187 = OpPhi %37 %961 %88 %2118 %101
1032               OpSelectionMerge %796 None
1033               OpBranchConditional %2187 %79 %796
1034        %796 = OpLabel
1035               OpBranch %80
1036         %80 = OpLabel
1037        %676 = OpIAdd %6 %818 %471
1038        %678 = OpIAdd %6 %2256 %471
1039        %680 = OpIAdd %6 %2257 %471
1040               OpBranch %77
1041         %79 = OpLabel
1042       %2330 = OpPhi %6 %922 %77 %2257 %90
1043       %2329 = OpPhi %6 %819 %77 %2256 %90
1044       %2258 = OpPhi %37 %962 %77 %2187 %90
1045               OpSelectionMerge %798 None
1046               OpBranchConditional %2258 %68 %798
1047        %798 = OpLabel
1048               OpBranch %69
1049         %69 = OpLabel
1050        %682 = OpIAdd %6 %816 %471
1051        %684 = OpIAdd %6 %2329 %471
1052        %686 = OpIAdd %6 %2330 %471
1053               OpBranch %66
1054         %68 = OpLabel
1055       %2405 = OpPhi %6 %923 %66 %2330 %79
1056       %2404 = OpPhi %6 %817 %66 %2329 %79
1057       %2331 = OpPhi %37 %963 %66 %2258 %79
1058               OpSelectionMerge %800 None
1059               OpBranchConditional %2331 %57 %800
1060        %800 = OpLabel
1061               OpBranch %58
1062         %58 = OpLabel
1063        %688 = OpIAdd %6 %814 %471
1064        %690 = OpIAdd %6 %2404 %471
1065        %692 = OpIAdd %6 %2405 %471
1066               OpBranch %55
1067         %57 = OpLabel
1068       %2482 = OpPhi %6 %924 %55 %2405 %68
1069       %2481 = OpPhi %6 %815 %55 %2404 %68
1070       %2406 = OpPhi %37 %964 %55 %2331 %68
1071               OpSelectionMerge %802 None
1072               OpBranchConditional %2406 %46 %802
1073        %802 = OpLabel
1074               OpBranch %47
1075         %47 = OpLabel
1076        %694 = OpIAdd %6 %812 %471
1077        %696 = OpIAdd %6 %2481 %471
1078        %698 = OpIAdd %6 %2482 %471
1079               OpBranch %44
1080         %46 = OpLabel
1081       %2561 = OpPhi %6 %925 %44 %2482 %57
1082       %2560 = OpPhi %6 %813 %44 %2481 %57
1083       %2483 = OpPhi %37 %965 %44 %2406 %57
1084               OpSelectionMerge %804 None
1085               OpBranchConditional %2483 %32 %804
1086        %804 = OpLabel
1087               OpBranch %33
1088         %33 = OpLabel
1089        %700 = OpIAdd %6 %810 %471
1090        %702 = OpIAdd %6 %2560 %471
1091        %704 = OpIAdd %6 %2561 %471
1092               OpBranch %30
1093         %32 = OpLabel
1094       %2563 = OpPhi %6 %926 %30 %2561 %46
1095       %2562 = OpPhi %37 %966 %30 %2483 %46
1096               OpSelectionMerge %806 None
1097               OpBranchConditional %2562 %724 %806
1098        %806 = OpLabel
1099        %708 = OpDPdx %10 %24
1100        %712 = OpDPdy %10 %25
1101        %713 = OpFSub %10 %708 %712
1102        %714 = OpFOrdEqual %37 %713 %22
1103        %717 = OpIEqual %37 %2563 %716
1104        %718 = OpLogicalAnd %37 %714 %717
1105               OpSelectionMerge %720 None
1106               OpBranchConditional %718 %719 %722
1107        %719 = OpLabel
1108               OpStore %20 %721
1109               OpBranch %720
1110        %722 = OpLabel
1111               OpStore %20 %723
1112               OpBranch %720
1113        %720 = OpLabel
1114               OpBranch %724
1115        %724 = OpLabel
1116               OpReturn
1117               OpFunctionEnd
1118END
1119
1120
1121BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
1122
1123PIPELINE graphics variant_pipeline
1124  ATTACH variant_vertex_shader
1125  ATTACH variant_fragment_shader
1126  FRAMEBUFFER_SIZE 256 256
1127  BIND BUFFER variant_framebuffer AS color LOCATION 0
1128END
1129CLEAR_COLOR variant_pipeline 0 0 0 255
1130
1131CLEAR variant_pipeline
1132RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
1133
1134EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
1135