691 lines
22 KiB
Plaintext
691 lines
22 KiB
Plaintext
#!amber
|
|
|
|
# Copyright 2021 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
|
|
# A test for a coverage-gap found by the GraphicsFuzz project.
|
|
|
|
# Short description: A fragment shader that covers specific BRW code paths
|
|
|
|
# The test passes because the shader always writes red.
|
|
|
|
# Optimized using spirv-opt with the following arguments:
|
|
# '-O'
|
|
# spirv-opt commit hash: a0370efd589be33d5d9a85cfde2f85841b3755af
|
|
|
|
|
|
|
|
SHADER vertex variant_vertex_shader PASSTHROUGH
|
|
|
|
# variant_fragment_shader is derived from the following GLSL:
|
|
# #version 320 es
|
|
#
|
|
# #define _GLF_MAKE_IN_BOUNDS_INT(IDX, SZ) clamp(IDX, 0, SZ - 1)
|
|
# #define LOOP for (int i = 0; i < 1; i++)
|
|
#
|
|
# precision highp float;
|
|
# precision highp int;
|
|
#
|
|
# const int _GLF_global_loop_bound = 100;
|
|
# int _GLF_global_loop_count = 0;
|
|
#
|
|
# layout(location = 0) out vec4 _GLF_color;
|
|
#
|
|
# void main()
|
|
# {
|
|
# float arr[10] = float[10](1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0);
|
|
# int index = 0;
|
|
#
|
|
# while(_GLF_global_loop_count < _GLF_global_loop_bound)
|
|
# {
|
|
# // The inner loop will be iterated just once.
|
|
# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
|
|
# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
|
|
# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP {
|
|
# LOOP { LOOP { LOOP { LOOP { LOOP
|
|
# {
|
|
# _GLF_global_loop_count ++;
|
|
# }
|
|
# } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
|
|
#
|
|
# // In the end all elemenst of arr have a value of 2.0.
|
|
# arr[_GLF_MAKE_IN_BOUNDS_INT(index, 10)] = float[10](2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0)[_GLF_MAKE_IN_BOUNDS_INT(index, 10)];
|
|
# index++;
|
|
# }
|
|
#
|
|
# // The selected indices don't matter as all have the same data of 2.0.
|
|
# vec2 v = vec2(arr[_GLF_MAKE_IN_BOUNDS_INT(int(gl_FragCoord.x), 10)], arr[_GLF_MAKE_IN_BOUNDS_INT(int(gl_FragCoord.y), 10)]);
|
|
#
|
|
# // Always true.
|
|
# if (v.x == 2.0 && v.y == 2.0)
|
|
# _GLF_color = vec4(1, 0, 0, 1);
|
|
# else
|
|
# _GLF_color = vec4(0);
|
|
#
|
|
# }
|
|
SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
|
|
; SPIR-V
|
|
; Version: 1.0
|
|
; Generator: Khronos Glslang Reference Front End; 10
|
|
; Bound: 583
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Fragment %4 "main" %431 %460
|
|
OpExecutionMode %4 OriginUpperLeft
|
|
OpSource ESSL 320
|
|
OpName %4 "main"
|
|
OpName %15 "arr"
|
|
OpName %419 "indexable"
|
|
OpName %431 "gl_FragCoord"
|
|
OpName %460 "_GLF_color"
|
|
OpDecorate %431 BuiltIn FragCoord
|
|
OpDecorate %460 Location 0
|
|
%2 = OpTypeVoid
|
|
%3 = OpTypeFunction %2
|
|
%6 = OpTypeInt 32 1
|
|
%9 = OpConstant %6 0
|
|
%10 = OpTypeFloat 32
|
|
%11 = OpTypeInt 32 0
|
|
%12 = OpConstant %11 10
|
|
%13 = OpTypeArray %10 %12
|
|
%14 = OpTypePointer Function %13
|
|
%16 = OpConstant %10 1
|
|
%17 = OpConstantComposite %13 %16 %16 %16 %16 %16 %16 %16 %16 %16 %16
|
|
%26 = OpConstant %6 100
|
|
%27 = OpTypeBool
|
|
%36 = OpConstant %6 1
|
|
%413 = OpConstant %6 9
|
|
%415 = OpConstant %10 2
|
|
%416 = OpConstantComposite %13 %415 %415 %415 %415 %415 %415 %415 %415 %415 %415
|
|
%420 = OpTypePointer Function %10
|
|
%429 = OpTypeVector %10 4
|
|
%430 = OpTypePointer Input %429
|
|
%431 = OpVariable %430 Input
|
|
%432 = OpConstant %11 0
|
|
%433 = OpTypePointer Input %10
|
|
%440 = OpConstant %11 1
|
|
%459 = OpTypePointer Output %429
|
|
%460 = OpVariable %459 Output
|
|
%461 = OpConstant %10 0
|
|
%462 = OpConstantComposite %429 %16 %461 %461 %16
|
|
%464 = OpConstantComposite %429 %461 %461 %461 %461
|
|
%4 = OpFunction %2 None %3
|
|
%5 = OpLabel
|
|
%15 = OpVariable %14 Function
|
|
%419 = OpVariable %14 Function
|
|
OpStore %15 %17
|
|
OpBranch %20
|
|
%20 = OpLabel
|
|
%470 = OpPhi %6 %9 %5 %425 %23
|
|
%467 = OpPhi %6 %9 %5 %582 %23
|
|
%28 = OpSLessThan %27 %467 %26
|
|
OpLoopMerge %22 %23 None
|
|
OpBranchConditional %28 %21 %22
|
|
%21 = OpLabel
|
|
OpBranch %30
|
|
%30 = OpLabel
|
|
%468 = OpPhi %6 %9 %21 %411 %33
|
|
%582 = OpPhi %6 %467 %21 %581 %33
|
|
%37 = OpSLessThan %27 %468 %36
|
|
OpLoopMerge %32 %33 None
|
|
OpBranchConditional %37 %31 %32
|
|
%31 = OpLabel
|
|
OpBranch %39
|
|
%39 = OpLabel
|
|
%471 = OpPhi %6 %9 %31 %409 %42
|
|
%581 = OpPhi %6 %582 %31 %580 %42
|
|
%45 = OpSLessThan %27 %471 %36
|
|
OpLoopMerge %41 %42 None
|
|
OpBranchConditional %45 %40 %41
|
|
%40 = OpLabel
|
|
OpBranch %47
|
|
%47 = OpLabel
|
|
%473 = OpPhi %6 %9 %40 %407 %50
|
|
%580 = OpPhi %6 %581 %40 %579 %50
|
|
%53 = OpSLessThan %27 %473 %36
|
|
OpLoopMerge %49 %50 None
|
|
OpBranchConditional %53 %48 %49
|
|
%48 = OpLabel
|
|
OpBranch %55
|
|
%55 = OpLabel
|
|
%475 = OpPhi %6 %9 %48 %405 %58
|
|
%579 = OpPhi %6 %580 %48 %578 %58
|
|
%61 = OpSLessThan %27 %475 %36
|
|
OpLoopMerge %57 %58 None
|
|
OpBranchConditional %61 %56 %57
|
|
%56 = OpLabel
|
|
OpBranch %63
|
|
%63 = OpLabel
|
|
%477 = OpPhi %6 %9 %56 %403 %66
|
|
%578 = OpPhi %6 %579 %56 %577 %66
|
|
%69 = OpSLessThan %27 %477 %36
|
|
OpLoopMerge %65 %66 None
|
|
OpBranchConditional %69 %64 %65
|
|
%64 = OpLabel
|
|
OpBranch %71
|
|
%71 = OpLabel
|
|
%479 = OpPhi %6 %9 %64 %401 %74
|
|
%577 = OpPhi %6 %578 %64 %576 %74
|
|
%77 = OpSLessThan %27 %479 %36
|
|
OpLoopMerge %73 %74 None
|
|
OpBranchConditional %77 %72 %73
|
|
%72 = OpLabel
|
|
OpBranch %79
|
|
%79 = OpLabel
|
|
%481 = OpPhi %6 %9 %72 %399 %82
|
|
%576 = OpPhi %6 %577 %72 %575 %82
|
|
%85 = OpSLessThan %27 %481 %36
|
|
OpLoopMerge %81 %82 None
|
|
OpBranchConditional %85 %80 %81
|
|
%80 = OpLabel
|
|
OpBranch %87
|
|
%87 = OpLabel
|
|
%483 = OpPhi %6 %9 %80 %397 %90
|
|
%575 = OpPhi %6 %576 %80 %574 %90
|
|
%93 = OpSLessThan %27 %483 %36
|
|
OpLoopMerge %89 %90 None
|
|
OpBranchConditional %93 %88 %89
|
|
%88 = OpLabel
|
|
OpBranch %95
|
|
%95 = OpLabel
|
|
%485 = OpPhi %6 %9 %88 %395 %98
|
|
%574 = OpPhi %6 %575 %88 %573 %98
|
|
%101 = OpSLessThan %27 %485 %36
|
|
OpLoopMerge %97 %98 None
|
|
OpBranchConditional %101 %96 %97
|
|
%96 = OpLabel
|
|
OpBranch %103
|
|
%103 = OpLabel
|
|
%487 = OpPhi %6 %9 %96 %393 %106
|
|
%573 = OpPhi %6 %574 %96 %572 %106
|
|
%109 = OpSLessThan %27 %487 %36
|
|
OpLoopMerge %105 %106 None
|
|
OpBranchConditional %109 %104 %105
|
|
%104 = OpLabel
|
|
OpBranch %111
|
|
%111 = OpLabel
|
|
%489 = OpPhi %6 %9 %104 %391 %114
|
|
%572 = OpPhi %6 %573 %104 %571 %114
|
|
%117 = OpSLessThan %27 %489 %36
|
|
OpLoopMerge %113 %114 None
|
|
OpBranchConditional %117 %112 %113
|
|
%112 = OpLabel
|
|
OpBranch %119
|
|
%119 = OpLabel
|
|
%491 = OpPhi %6 %9 %112 %389 %122
|
|
%571 = OpPhi %6 %572 %112 %570 %122
|
|
%125 = OpSLessThan %27 %491 %36
|
|
OpLoopMerge %121 %122 None
|
|
OpBranchConditional %125 %120 %121
|
|
%120 = OpLabel
|
|
OpBranch %127
|
|
%127 = OpLabel
|
|
%493 = OpPhi %6 %9 %120 %387 %130
|
|
%570 = OpPhi %6 %571 %120 %569 %130
|
|
%133 = OpSLessThan %27 %493 %36
|
|
OpLoopMerge %129 %130 None
|
|
OpBranchConditional %133 %128 %129
|
|
%128 = OpLabel
|
|
OpBranch %135
|
|
%135 = OpLabel
|
|
%495 = OpPhi %6 %9 %128 %385 %138
|
|
%569 = OpPhi %6 %570 %128 %568 %138
|
|
%141 = OpSLessThan %27 %495 %36
|
|
OpLoopMerge %137 %138 None
|
|
OpBranchConditional %141 %136 %137
|
|
%136 = OpLabel
|
|
OpBranch %143
|
|
%143 = OpLabel
|
|
%497 = OpPhi %6 %9 %136 %383 %146
|
|
%568 = OpPhi %6 %569 %136 %567 %146
|
|
%149 = OpSLessThan %27 %497 %36
|
|
OpLoopMerge %145 %146 None
|
|
OpBranchConditional %149 %144 %145
|
|
%144 = OpLabel
|
|
OpBranch %151
|
|
%151 = OpLabel
|
|
%499 = OpPhi %6 %9 %144 %381 %154
|
|
%567 = OpPhi %6 %568 %144 %566 %154
|
|
%157 = OpSLessThan %27 %499 %36
|
|
OpLoopMerge %153 %154 None
|
|
OpBranchConditional %157 %152 %153
|
|
%152 = OpLabel
|
|
OpBranch %159
|
|
%159 = OpLabel
|
|
%501 = OpPhi %6 %9 %152 %379 %162
|
|
%566 = OpPhi %6 %567 %152 %565 %162
|
|
%165 = OpSLessThan %27 %501 %36
|
|
OpLoopMerge %161 %162 None
|
|
OpBranchConditional %165 %160 %161
|
|
%160 = OpLabel
|
|
OpBranch %167
|
|
%167 = OpLabel
|
|
%503 = OpPhi %6 %9 %160 %377 %170
|
|
%565 = OpPhi %6 %566 %160 %564 %170
|
|
%173 = OpSLessThan %27 %503 %36
|
|
OpLoopMerge %169 %170 None
|
|
OpBranchConditional %173 %168 %169
|
|
%168 = OpLabel
|
|
OpBranch %175
|
|
%175 = OpLabel
|
|
%505 = OpPhi %6 %9 %168 %375 %178
|
|
%564 = OpPhi %6 %565 %168 %563 %178
|
|
%181 = OpSLessThan %27 %505 %36
|
|
OpLoopMerge %177 %178 None
|
|
OpBranchConditional %181 %176 %177
|
|
%176 = OpLabel
|
|
OpBranch %183
|
|
%183 = OpLabel
|
|
%507 = OpPhi %6 %9 %176 %373 %186
|
|
%563 = OpPhi %6 %564 %176 %562 %186
|
|
%189 = OpSLessThan %27 %507 %36
|
|
OpLoopMerge %185 %186 None
|
|
OpBranchConditional %189 %184 %185
|
|
%184 = OpLabel
|
|
OpBranch %191
|
|
%191 = OpLabel
|
|
%509 = OpPhi %6 %9 %184 %371 %194
|
|
%562 = OpPhi %6 %563 %184 %561 %194
|
|
%197 = OpSLessThan %27 %509 %36
|
|
OpLoopMerge %193 %194 None
|
|
OpBranchConditional %197 %192 %193
|
|
%192 = OpLabel
|
|
OpBranch %199
|
|
%199 = OpLabel
|
|
%511 = OpPhi %6 %9 %192 %369 %202
|
|
%561 = OpPhi %6 %562 %192 %560 %202
|
|
%205 = OpSLessThan %27 %511 %36
|
|
OpLoopMerge %201 %202 None
|
|
OpBranchConditional %205 %200 %201
|
|
%200 = OpLabel
|
|
OpBranch %207
|
|
%207 = OpLabel
|
|
%513 = OpPhi %6 %9 %200 %367 %210
|
|
%560 = OpPhi %6 %561 %200 %559 %210
|
|
%213 = OpSLessThan %27 %513 %36
|
|
OpLoopMerge %209 %210 None
|
|
OpBranchConditional %213 %208 %209
|
|
%208 = OpLabel
|
|
OpBranch %215
|
|
%215 = OpLabel
|
|
%515 = OpPhi %6 %9 %208 %365 %218
|
|
%559 = OpPhi %6 %560 %208 %558 %218
|
|
%221 = OpSLessThan %27 %515 %36
|
|
OpLoopMerge %217 %218 None
|
|
OpBranchConditional %221 %216 %217
|
|
%216 = OpLabel
|
|
OpBranch %223
|
|
%223 = OpLabel
|
|
%517 = OpPhi %6 %9 %216 %363 %226
|
|
%558 = OpPhi %6 %559 %216 %557 %226
|
|
%229 = OpSLessThan %27 %517 %36
|
|
OpLoopMerge %225 %226 None
|
|
OpBranchConditional %229 %224 %225
|
|
%224 = OpLabel
|
|
OpBranch %231
|
|
%231 = OpLabel
|
|
%519 = OpPhi %6 %9 %224 %361 %234
|
|
%557 = OpPhi %6 %558 %224 %556 %234
|
|
%237 = OpSLessThan %27 %519 %36
|
|
OpLoopMerge %233 %234 None
|
|
OpBranchConditional %237 %232 %233
|
|
%232 = OpLabel
|
|
OpBranch %239
|
|
%239 = OpLabel
|
|
%521 = OpPhi %6 %9 %232 %359 %242
|
|
%556 = OpPhi %6 %557 %232 %555 %242
|
|
%245 = OpSLessThan %27 %521 %36
|
|
OpLoopMerge %241 %242 None
|
|
OpBranchConditional %245 %240 %241
|
|
%240 = OpLabel
|
|
OpBranch %247
|
|
%247 = OpLabel
|
|
%523 = OpPhi %6 %9 %240 %357 %250
|
|
%555 = OpPhi %6 %556 %240 %554 %250
|
|
%253 = OpSLessThan %27 %523 %36
|
|
OpLoopMerge %249 %250 None
|
|
OpBranchConditional %253 %248 %249
|
|
%248 = OpLabel
|
|
OpBranch %255
|
|
%255 = OpLabel
|
|
%525 = OpPhi %6 %9 %248 %355 %258
|
|
%554 = OpPhi %6 %555 %248 %553 %258
|
|
%261 = OpSLessThan %27 %525 %36
|
|
OpLoopMerge %257 %258 None
|
|
OpBranchConditional %261 %256 %257
|
|
%256 = OpLabel
|
|
OpBranch %263
|
|
%263 = OpLabel
|
|
%527 = OpPhi %6 %9 %256 %353 %266
|
|
%553 = OpPhi %6 %554 %256 %552 %266
|
|
%269 = OpSLessThan %27 %527 %36
|
|
OpLoopMerge %265 %266 None
|
|
OpBranchConditional %269 %264 %265
|
|
%264 = OpLabel
|
|
OpBranch %271
|
|
%271 = OpLabel
|
|
%529 = OpPhi %6 %9 %264 %351 %274
|
|
%552 = OpPhi %6 %553 %264 %551 %274
|
|
%277 = OpSLessThan %27 %529 %36
|
|
OpLoopMerge %273 %274 None
|
|
OpBranchConditional %277 %272 %273
|
|
%272 = OpLabel
|
|
OpBranch %279
|
|
%279 = OpLabel
|
|
%531 = OpPhi %6 %9 %272 %349 %282
|
|
%551 = OpPhi %6 %552 %272 %550 %282
|
|
%285 = OpSLessThan %27 %531 %36
|
|
OpLoopMerge %281 %282 None
|
|
OpBranchConditional %285 %280 %281
|
|
%280 = OpLabel
|
|
OpBranch %287
|
|
%287 = OpLabel
|
|
%533 = OpPhi %6 %9 %280 %347 %290
|
|
%550 = OpPhi %6 %551 %280 %549 %290
|
|
%293 = OpSLessThan %27 %533 %36
|
|
OpLoopMerge %289 %290 None
|
|
OpBranchConditional %293 %288 %289
|
|
%288 = OpLabel
|
|
OpBranch %295
|
|
%295 = OpLabel
|
|
%535 = OpPhi %6 %9 %288 %345 %298
|
|
%549 = OpPhi %6 %550 %288 %548 %298
|
|
%301 = OpSLessThan %27 %535 %36
|
|
OpLoopMerge %297 %298 None
|
|
OpBranchConditional %301 %296 %297
|
|
%296 = OpLabel
|
|
OpBranch %303
|
|
%303 = OpLabel
|
|
%537 = OpPhi %6 %9 %296 %343 %306
|
|
%548 = OpPhi %6 %549 %296 %547 %306
|
|
%309 = OpSLessThan %27 %537 %36
|
|
OpLoopMerge %305 %306 None
|
|
OpBranchConditional %309 %304 %305
|
|
%304 = OpLabel
|
|
OpBranch %311
|
|
%311 = OpLabel
|
|
%539 = OpPhi %6 %9 %304 %341 %314
|
|
%547 = OpPhi %6 %548 %304 %546 %314
|
|
%317 = OpSLessThan %27 %539 %36
|
|
OpLoopMerge %313 %314 None
|
|
OpBranchConditional %317 %312 %313
|
|
%312 = OpLabel
|
|
OpBranch %319
|
|
%319 = OpLabel
|
|
%541 = OpPhi %6 %9 %312 %339 %322
|
|
%546 = OpPhi %6 %547 %312 %545 %322
|
|
%325 = OpSLessThan %27 %541 %36
|
|
OpLoopMerge %321 %322 None
|
|
OpBranchConditional %325 %320 %321
|
|
%320 = OpLabel
|
|
OpBranch %327
|
|
%327 = OpLabel
|
|
%545 = OpPhi %6 %546 %320 %335 %328
|
|
%543 = OpPhi %6 %9 %320 %337 %328
|
|
%333 = OpSLessThan %27 %543 %36
|
|
OpLoopMerge %329 %328 None
|
|
OpBranchConditional %333 %328 %329
|
|
%328 = OpLabel
|
|
%335 = OpIAdd %6 %545 %36
|
|
%337 = OpIAdd %6 %543 %36
|
|
OpBranch %327
|
|
%329 = OpLabel
|
|
OpBranch %322
|
|
%322 = OpLabel
|
|
%339 = OpIAdd %6 %541 %36
|
|
OpBranch %319
|
|
%321 = OpLabel
|
|
OpBranch %314
|
|
%314 = OpLabel
|
|
%341 = OpIAdd %6 %539 %36
|
|
OpBranch %311
|
|
%313 = OpLabel
|
|
OpBranch %306
|
|
%306 = OpLabel
|
|
%343 = OpIAdd %6 %537 %36
|
|
OpBranch %303
|
|
%305 = OpLabel
|
|
OpBranch %298
|
|
%298 = OpLabel
|
|
%345 = OpIAdd %6 %535 %36
|
|
OpBranch %295
|
|
%297 = OpLabel
|
|
OpBranch %290
|
|
%290 = OpLabel
|
|
%347 = OpIAdd %6 %533 %36
|
|
OpBranch %287
|
|
%289 = OpLabel
|
|
OpBranch %282
|
|
%282 = OpLabel
|
|
%349 = OpIAdd %6 %531 %36
|
|
OpBranch %279
|
|
%281 = OpLabel
|
|
OpBranch %274
|
|
%274 = OpLabel
|
|
%351 = OpIAdd %6 %529 %36
|
|
OpBranch %271
|
|
%273 = OpLabel
|
|
OpBranch %266
|
|
%266 = OpLabel
|
|
%353 = OpIAdd %6 %527 %36
|
|
OpBranch %263
|
|
%265 = OpLabel
|
|
OpBranch %258
|
|
%258 = OpLabel
|
|
%355 = OpIAdd %6 %525 %36
|
|
OpBranch %255
|
|
%257 = OpLabel
|
|
OpBranch %250
|
|
%250 = OpLabel
|
|
%357 = OpIAdd %6 %523 %36
|
|
OpBranch %247
|
|
%249 = OpLabel
|
|
OpBranch %242
|
|
%242 = OpLabel
|
|
%359 = OpIAdd %6 %521 %36
|
|
OpBranch %239
|
|
%241 = OpLabel
|
|
OpBranch %234
|
|
%234 = OpLabel
|
|
%361 = OpIAdd %6 %519 %36
|
|
OpBranch %231
|
|
%233 = OpLabel
|
|
OpBranch %226
|
|
%226 = OpLabel
|
|
%363 = OpIAdd %6 %517 %36
|
|
OpBranch %223
|
|
%225 = OpLabel
|
|
OpBranch %218
|
|
%218 = OpLabel
|
|
%365 = OpIAdd %6 %515 %36
|
|
OpBranch %215
|
|
%217 = OpLabel
|
|
OpBranch %210
|
|
%210 = OpLabel
|
|
%367 = OpIAdd %6 %513 %36
|
|
OpBranch %207
|
|
%209 = OpLabel
|
|
OpBranch %202
|
|
%202 = OpLabel
|
|
%369 = OpIAdd %6 %511 %36
|
|
OpBranch %199
|
|
%201 = OpLabel
|
|
OpBranch %194
|
|
%194 = OpLabel
|
|
%371 = OpIAdd %6 %509 %36
|
|
OpBranch %191
|
|
%193 = OpLabel
|
|
OpBranch %186
|
|
%186 = OpLabel
|
|
%373 = OpIAdd %6 %507 %36
|
|
OpBranch %183
|
|
%185 = OpLabel
|
|
OpBranch %178
|
|
%178 = OpLabel
|
|
%375 = OpIAdd %6 %505 %36
|
|
OpBranch %175
|
|
%177 = OpLabel
|
|
OpBranch %170
|
|
%170 = OpLabel
|
|
%377 = OpIAdd %6 %503 %36
|
|
OpBranch %167
|
|
%169 = OpLabel
|
|
OpBranch %162
|
|
%162 = OpLabel
|
|
%379 = OpIAdd %6 %501 %36
|
|
OpBranch %159
|
|
%161 = OpLabel
|
|
OpBranch %154
|
|
%154 = OpLabel
|
|
%381 = OpIAdd %6 %499 %36
|
|
OpBranch %151
|
|
%153 = OpLabel
|
|
OpBranch %146
|
|
%146 = OpLabel
|
|
%383 = OpIAdd %6 %497 %36
|
|
OpBranch %143
|
|
%145 = OpLabel
|
|
OpBranch %138
|
|
%138 = OpLabel
|
|
%385 = OpIAdd %6 %495 %36
|
|
OpBranch %135
|
|
%137 = OpLabel
|
|
OpBranch %130
|
|
%130 = OpLabel
|
|
%387 = OpIAdd %6 %493 %36
|
|
OpBranch %127
|
|
%129 = OpLabel
|
|
OpBranch %122
|
|
%122 = OpLabel
|
|
%389 = OpIAdd %6 %491 %36
|
|
OpBranch %119
|
|
%121 = OpLabel
|
|
OpBranch %114
|
|
%114 = OpLabel
|
|
%391 = OpIAdd %6 %489 %36
|
|
OpBranch %111
|
|
%113 = OpLabel
|
|
OpBranch %106
|
|
%106 = OpLabel
|
|
%393 = OpIAdd %6 %487 %36
|
|
OpBranch %103
|
|
%105 = OpLabel
|
|
OpBranch %98
|
|
%98 = OpLabel
|
|
%395 = OpIAdd %6 %485 %36
|
|
OpBranch %95
|
|
%97 = OpLabel
|
|
OpBranch %90
|
|
%90 = OpLabel
|
|
%397 = OpIAdd %6 %483 %36
|
|
OpBranch %87
|
|
%89 = OpLabel
|
|
OpBranch %82
|
|
%82 = OpLabel
|
|
%399 = OpIAdd %6 %481 %36
|
|
OpBranch %79
|
|
%81 = OpLabel
|
|
OpBranch %74
|
|
%74 = OpLabel
|
|
%401 = OpIAdd %6 %479 %36
|
|
OpBranch %71
|
|
%73 = OpLabel
|
|
OpBranch %66
|
|
%66 = OpLabel
|
|
%403 = OpIAdd %6 %477 %36
|
|
OpBranch %63
|
|
%65 = OpLabel
|
|
OpBranch %58
|
|
%58 = OpLabel
|
|
%405 = OpIAdd %6 %475 %36
|
|
OpBranch %55
|
|
%57 = OpLabel
|
|
OpBranch %50
|
|
%50 = OpLabel
|
|
%407 = OpIAdd %6 %473 %36
|
|
OpBranch %47
|
|
%49 = OpLabel
|
|
OpBranch %42
|
|
%42 = OpLabel
|
|
%409 = OpIAdd %6 %471 %36
|
|
OpBranch %39
|
|
%41 = OpLabel
|
|
OpBranch %33
|
|
%33 = OpLabel
|
|
%411 = OpIAdd %6 %468 %36
|
|
OpBranch %30
|
|
%32 = OpLabel
|
|
%414 = OpExtInst %6 %1 SClamp %470 %9 %413
|
|
OpStore %419 %416
|
|
%421 = OpAccessChain %420 %419 %414
|
|
%422 = OpLoad %10 %421
|
|
%423 = OpAccessChain %420 %15 %414
|
|
OpStore %423 %422
|
|
%425 = OpIAdd %6 %470 %36
|
|
OpBranch %23
|
|
%23 = OpLabel
|
|
OpBranch %20
|
|
%22 = OpLabel
|
|
%434 = OpAccessChain %433 %431 %432
|
|
%435 = OpLoad %10 %434
|
|
%436 = OpConvertFToS %6 %435
|
|
%437 = OpExtInst %6 %1 SClamp %436 %9 %413
|
|
%438 = OpAccessChain %420 %15 %437
|
|
%439 = OpLoad %10 %438
|
|
%441 = OpAccessChain %433 %431 %440
|
|
%442 = OpLoad %10 %441
|
|
%443 = OpConvertFToS %6 %442
|
|
%444 = OpExtInst %6 %1 SClamp %443 %9 %413
|
|
%445 = OpAccessChain %420 %15 %444
|
|
%446 = OpLoad %10 %445
|
|
%450 = OpFOrdEqual %27 %439 %415
|
|
OpSelectionMerge %452 None
|
|
OpBranchConditional %450 %451 %452
|
|
%451 = OpLabel
|
|
%455 = OpFOrdEqual %27 %446 %415
|
|
OpBranch %452
|
|
%452 = OpLabel
|
|
%456 = OpPhi %27 %450 %22 %455 %451
|
|
OpSelectionMerge %458 None
|
|
OpBranchConditional %456 %457 %463
|
|
%457 = OpLabel
|
|
OpStore %460 %462
|
|
OpBranch %458
|
|
%463 = OpLabel
|
|
OpStore %460 %464
|
|
OpBranch %458
|
|
%458 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|
|
END
|
|
|
|
|
|
BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
|
|
|
|
PIPELINE graphics variant_pipeline
|
|
ATTACH variant_vertex_shader
|
|
ATTACH variant_fragment_shader
|
|
FRAMEBUFFER_SIZE 256 256
|
|
BIND BUFFER variant_framebuffer AS color LOCATION 0
|
|
END
|
|
CLEAR_COLOR variant_pipeline 0 0 0 255
|
|
|
|
CLEAR variant_pipeline
|
|
RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256
|
|
|
|
EXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255
|