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