846 lines
28 KiB
Plaintext
846 lines
28 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:
|
|
# '-Os'
|
|
# spirv-opt commit hash: a0370efd589be33d5d9a85cfde2f85841b3755af
|
|
|
|
|
|
|
|
SHADER vertex variant_vertex_shader PASSTHROUGH
|
|
|
|
# variant_fragment_shader is derived from the following GLSL:
|
|
# #version 320 es
|
|
#
|
|
# 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;
|
|
#
|
|
# struct S
|
|
# {
|
|
# int data[10];
|
|
# };
|
|
#
|
|
# int func(S obj)
|
|
# {
|
|
# int x = 0;
|
|
#
|
|
# // Five more iterations as the global loop count has already
|
|
# // reached its limit.
|
|
# while(_GLF_global_loop_count < _GLF_global_loop_bound + 5)
|
|
# {
|
|
# _GLF_global_loop_count ++;
|
|
#
|
|
# // Checks if the first five elements are set to the
|
|
# // correct value inside the inner loop in the main
|
|
# // function. Return zero if the check fails.
|
|
# if (obj.data[x] != x)
|
|
# return 0;
|
|
#
|
|
# x++;
|
|
# }
|
|
#
|
|
# // Return 1 when the check passes.
|
|
# return 1;
|
|
# }
|
|
#
|
|
# // Global loop counter incrementation cannot be inside the for loop (along with i++) for the coverage points to trigger.
|
|
# #define LOOP _GLF_global_loop_count++; for(int i = 0; i < 5 && _GLF_global_loop_count < _GLF_global_loop_bound; i++)
|
|
#
|
|
# void main()
|
|
# {
|
|
# S obj = S(int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
|
|
#
|
|
# 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 { LOOP {
|
|
# // Sets the first five elements to 0, 1, 2, 3, 4.
|
|
# obj.data[i] = i;
|
|
# } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }
|
|
#
|
|
# int a = 0;
|
|
# // Always true.
|
|
# if(gl_FragCoord.y > 0.0)
|
|
# a = func(obj);
|
|
#
|
|
# // Always true.
|
|
# if (a == 1)
|
|
# _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: 836
|
|
; Schema: 0
|
|
OpCapability Shader
|
|
%1 = OpExtInstImport "GLSL.std.450"
|
|
OpMemoryModel Logical GLSL450
|
|
OpEntryPoint Fragment %4 "main" %642 %659
|
|
OpExecutionMode %4 OriginUpperLeft
|
|
OpSource ESSL 320
|
|
OpName %4 "main"
|
|
OpName %642 "gl_FragCoord"
|
|
OpName %659 "_GLF_color"
|
|
OpDecorate %642 BuiltIn FragCoord
|
|
OpDecorate %659 Location 0
|
|
%2 = OpTypeVoid
|
|
%3 = OpTypeFunction %2
|
|
%6 = OpTypeInt 32 1
|
|
%7 = OpTypeInt 32 0
|
|
%8 = OpConstant %7 10
|
|
%9 = OpTypeArray %6 %8
|
|
%18 = OpConstant %6 0
|
|
%19 = OpTypePointer Function %6
|
|
%27 = OpConstant %6 105
|
|
%28 = OpTypeBool
|
|
%31 = OpConstant %6 1
|
|
%46 = OpConstantComposite %9 %18 %18 %18 %18 %18 %18 %18 %18 %18 %18
|
|
%57 = OpConstant %6 5
|
|
%60 = OpConstant %6 100
|
|
%639 = OpTypeFloat 32
|
|
%640 = OpTypeVector %639 4
|
|
%641 = OpTypePointer Input %640
|
|
%642 = OpVariable %641 Input
|
|
%643 = OpConstant %7 1
|
|
%644 = OpTypePointer Input %639
|
|
%647 = OpConstant %639 0
|
|
%658 = OpTypePointer Output %640
|
|
%659 = OpVariable %658 Output
|
|
%660 = OpConstant %639 1
|
|
%661 = OpConstantComposite %640 %660 %647 %647 %660
|
|
%663 = OpConstantComposite %640 %647 %647 %647 %647
|
|
%668 = OpConstant %7 0
|
|
%669 = OpConstantFalse %28
|
|
%672 = OpConstantTrue %28
|
|
%703 = OpTypePointer Function %9
|
|
%722 = OpUndef %6
|
|
%4 = OpFunction %2 None %3
|
|
%5 = OpLabel
|
|
%709 = OpVariable %703 Function
|
|
%704 = OpVariable %703 Function
|
|
OpStore %704 %46
|
|
OpBranch %51
|
|
%51 = OpLabel
|
|
%713 = OpPhi %6 %31 %5 %725 %54
|
|
%712 = OpPhi %6 %18 %5 %637 %54
|
|
%58 = OpSLessThan %28 %712 %57
|
|
%61 = OpSLessThan %28 %713 %60
|
|
%62 = OpLogicalAnd %28 %58 %61
|
|
OpLoopMerge %53 %54 None
|
|
OpBranchConditional %62 %52 %53
|
|
%52 = OpLabel
|
|
%64 = OpIAdd %6 %713 %31
|
|
OpBranch %66
|
|
%66 = OpLabel
|
|
%725 = OpPhi %6 %64 %52 %728 %69
|
|
%724 = OpPhi %6 %18 %52 %635 %69
|
|
%72 = OpSLessThan %28 %724 %57
|
|
%74 = OpSLessThan %28 %725 %60
|
|
%75 = OpLogicalAnd %28 %72 %74
|
|
OpLoopMerge %68 %69 None
|
|
OpBranchConditional %75 %67 %68
|
|
%67 = OpLabel
|
|
%77 = OpIAdd %6 %725 %31
|
|
OpBranch %79
|
|
%79 = OpLabel
|
|
%728 = OpPhi %6 %77 %67 %731 %82
|
|
%727 = OpPhi %6 %18 %67 %633 %82
|
|
%85 = OpSLessThan %28 %727 %57
|
|
%87 = OpSLessThan %28 %728 %60
|
|
%88 = OpLogicalAnd %28 %85 %87
|
|
OpLoopMerge %81 %82 None
|
|
OpBranchConditional %88 %80 %81
|
|
%80 = OpLabel
|
|
%90 = OpIAdd %6 %728 %31
|
|
OpBranch %92
|
|
%92 = OpLabel
|
|
%731 = OpPhi %6 %90 %80 %734 %95
|
|
%730 = OpPhi %6 %18 %80 %631 %95
|
|
%98 = OpSLessThan %28 %730 %57
|
|
%100 = OpSLessThan %28 %731 %60
|
|
%101 = OpLogicalAnd %28 %98 %100
|
|
OpLoopMerge %94 %95 None
|
|
OpBranchConditional %101 %93 %94
|
|
%93 = OpLabel
|
|
%103 = OpIAdd %6 %731 %31
|
|
OpBranch %105
|
|
%105 = OpLabel
|
|
%734 = OpPhi %6 %103 %93 %737 %108
|
|
%733 = OpPhi %6 %18 %93 %629 %108
|
|
%111 = OpSLessThan %28 %733 %57
|
|
%113 = OpSLessThan %28 %734 %60
|
|
%114 = OpLogicalAnd %28 %111 %113
|
|
OpLoopMerge %107 %108 None
|
|
OpBranchConditional %114 %106 %107
|
|
%106 = OpLabel
|
|
%116 = OpIAdd %6 %734 %31
|
|
OpBranch %118
|
|
%118 = OpLabel
|
|
%737 = OpPhi %6 %116 %106 %740 %121
|
|
%736 = OpPhi %6 %18 %106 %627 %121
|
|
%124 = OpSLessThan %28 %736 %57
|
|
%126 = OpSLessThan %28 %737 %60
|
|
%127 = OpLogicalAnd %28 %124 %126
|
|
OpLoopMerge %120 %121 None
|
|
OpBranchConditional %127 %119 %120
|
|
%119 = OpLabel
|
|
%129 = OpIAdd %6 %737 %31
|
|
OpBranch %131
|
|
%131 = OpLabel
|
|
%740 = OpPhi %6 %129 %119 %743 %134
|
|
%739 = OpPhi %6 %18 %119 %625 %134
|
|
%137 = OpSLessThan %28 %739 %57
|
|
%139 = OpSLessThan %28 %740 %60
|
|
%140 = OpLogicalAnd %28 %137 %139
|
|
OpLoopMerge %133 %134 None
|
|
OpBranchConditional %140 %132 %133
|
|
%132 = OpLabel
|
|
%142 = OpIAdd %6 %740 %31
|
|
OpBranch %144
|
|
%144 = OpLabel
|
|
%743 = OpPhi %6 %142 %132 %746 %147
|
|
%742 = OpPhi %6 %18 %132 %623 %147
|
|
%150 = OpSLessThan %28 %742 %57
|
|
%152 = OpSLessThan %28 %743 %60
|
|
%153 = OpLogicalAnd %28 %150 %152
|
|
OpLoopMerge %146 %147 None
|
|
OpBranchConditional %153 %145 %146
|
|
%145 = OpLabel
|
|
%155 = OpIAdd %6 %743 %31
|
|
OpBranch %157
|
|
%157 = OpLabel
|
|
%746 = OpPhi %6 %155 %145 %749 %160
|
|
%745 = OpPhi %6 %18 %145 %621 %160
|
|
%163 = OpSLessThan %28 %745 %57
|
|
%165 = OpSLessThan %28 %746 %60
|
|
%166 = OpLogicalAnd %28 %163 %165
|
|
OpLoopMerge %159 %160 None
|
|
OpBranchConditional %166 %158 %159
|
|
%158 = OpLabel
|
|
%168 = OpIAdd %6 %746 %31
|
|
OpBranch %170
|
|
%170 = OpLabel
|
|
%749 = OpPhi %6 %168 %158 %752 %173
|
|
%748 = OpPhi %6 %18 %158 %619 %173
|
|
%176 = OpSLessThan %28 %748 %57
|
|
%178 = OpSLessThan %28 %749 %60
|
|
%179 = OpLogicalAnd %28 %176 %178
|
|
OpLoopMerge %172 %173 None
|
|
OpBranchConditional %179 %171 %172
|
|
%171 = OpLabel
|
|
%181 = OpIAdd %6 %749 %31
|
|
OpBranch %183
|
|
%183 = OpLabel
|
|
%752 = OpPhi %6 %181 %171 %755 %186
|
|
%751 = OpPhi %6 %18 %171 %617 %186
|
|
%189 = OpSLessThan %28 %751 %57
|
|
%191 = OpSLessThan %28 %752 %60
|
|
%192 = OpLogicalAnd %28 %189 %191
|
|
OpLoopMerge %185 %186 None
|
|
OpBranchConditional %192 %184 %185
|
|
%184 = OpLabel
|
|
%194 = OpIAdd %6 %752 %31
|
|
OpBranch %196
|
|
%196 = OpLabel
|
|
%755 = OpPhi %6 %194 %184 %758 %199
|
|
%754 = OpPhi %6 %18 %184 %615 %199
|
|
%202 = OpSLessThan %28 %754 %57
|
|
%204 = OpSLessThan %28 %755 %60
|
|
%205 = OpLogicalAnd %28 %202 %204
|
|
OpLoopMerge %198 %199 None
|
|
OpBranchConditional %205 %197 %198
|
|
%197 = OpLabel
|
|
%207 = OpIAdd %6 %755 %31
|
|
OpBranch %209
|
|
%209 = OpLabel
|
|
%758 = OpPhi %6 %207 %197 %761 %212
|
|
%757 = OpPhi %6 %18 %197 %613 %212
|
|
%215 = OpSLessThan %28 %757 %57
|
|
%217 = OpSLessThan %28 %758 %60
|
|
%218 = OpLogicalAnd %28 %215 %217
|
|
OpLoopMerge %211 %212 None
|
|
OpBranchConditional %218 %210 %211
|
|
%210 = OpLabel
|
|
%220 = OpIAdd %6 %758 %31
|
|
OpBranch %222
|
|
%222 = OpLabel
|
|
%761 = OpPhi %6 %220 %210 %764 %225
|
|
%760 = OpPhi %6 %18 %210 %611 %225
|
|
%228 = OpSLessThan %28 %760 %57
|
|
%230 = OpSLessThan %28 %761 %60
|
|
%231 = OpLogicalAnd %28 %228 %230
|
|
OpLoopMerge %224 %225 None
|
|
OpBranchConditional %231 %223 %224
|
|
%223 = OpLabel
|
|
%233 = OpIAdd %6 %761 %31
|
|
OpBranch %235
|
|
%235 = OpLabel
|
|
%764 = OpPhi %6 %233 %223 %767 %238
|
|
%763 = OpPhi %6 %18 %223 %609 %238
|
|
%241 = OpSLessThan %28 %763 %57
|
|
%243 = OpSLessThan %28 %764 %60
|
|
%244 = OpLogicalAnd %28 %241 %243
|
|
OpLoopMerge %237 %238 None
|
|
OpBranchConditional %244 %236 %237
|
|
%236 = OpLabel
|
|
%246 = OpIAdd %6 %764 %31
|
|
OpBranch %248
|
|
%248 = OpLabel
|
|
%767 = OpPhi %6 %246 %236 %770 %251
|
|
%766 = OpPhi %6 %18 %236 %607 %251
|
|
%254 = OpSLessThan %28 %766 %57
|
|
%256 = OpSLessThan %28 %767 %60
|
|
%257 = OpLogicalAnd %28 %254 %256
|
|
OpLoopMerge %250 %251 None
|
|
OpBranchConditional %257 %249 %250
|
|
%249 = OpLabel
|
|
%259 = OpIAdd %6 %767 %31
|
|
OpBranch %261
|
|
%261 = OpLabel
|
|
%770 = OpPhi %6 %259 %249 %773 %264
|
|
%769 = OpPhi %6 %18 %249 %605 %264
|
|
%267 = OpSLessThan %28 %769 %57
|
|
%269 = OpSLessThan %28 %770 %60
|
|
%270 = OpLogicalAnd %28 %267 %269
|
|
OpLoopMerge %263 %264 None
|
|
OpBranchConditional %270 %262 %263
|
|
%262 = OpLabel
|
|
%272 = OpIAdd %6 %770 %31
|
|
OpBranch %274
|
|
%274 = OpLabel
|
|
%773 = OpPhi %6 %272 %262 %776 %277
|
|
%772 = OpPhi %6 %18 %262 %603 %277
|
|
%280 = OpSLessThan %28 %772 %57
|
|
%282 = OpSLessThan %28 %773 %60
|
|
%283 = OpLogicalAnd %28 %280 %282
|
|
OpLoopMerge %276 %277 None
|
|
OpBranchConditional %283 %275 %276
|
|
%275 = OpLabel
|
|
%285 = OpIAdd %6 %773 %31
|
|
OpBranch %287
|
|
%287 = OpLabel
|
|
%776 = OpPhi %6 %285 %275 %779 %290
|
|
%775 = OpPhi %6 %18 %275 %601 %290
|
|
%293 = OpSLessThan %28 %775 %57
|
|
%295 = OpSLessThan %28 %776 %60
|
|
%296 = OpLogicalAnd %28 %293 %295
|
|
OpLoopMerge %289 %290 None
|
|
OpBranchConditional %296 %288 %289
|
|
%288 = OpLabel
|
|
%298 = OpIAdd %6 %776 %31
|
|
OpBranch %300
|
|
%300 = OpLabel
|
|
%779 = OpPhi %6 %298 %288 %782 %303
|
|
%778 = OpPhi %6 %18 %288 %599 %303
|
|
%306 = OpSLessThan %28 %778 %57
|
|
%308 = OpSLessThan %28 %779 %60
|
|
%309 = OpLogicalAnd %28 %306 %308
|
|
OpLoopMerge %302 %303 None
|
|
OpBranchConditional %309 %301 %302
|
|
%301 = OpLabel
|
|
%311 = OpIAdd %6 %779 %31
|
|
OpBranch %313
|
|
%313 = OpLabel
|
|
%782 = OpPhi %6 %311 %301 %785 %316
|
|
%781 = OpPhi %6 %18 %301 %597 %316
|
|
%319 = OpSLessThan %28 %781 %57
|
|
%321 = OpSLessThan %28 %782 %60
|
|
%322 = OpLogicalAnd %28 %319 %321
|
|
OpLoopMerge %315 %316 None
|
|
OpBranchConditional %322 %314 %315
|
|
%314 = OpLabel
|
|
%324 = OpIAdd %6 %782 %31
|
|
OpBranch %326
|
|
%326 = OpLabel
|
|
%785 = OpPhi %6 %324 %314 %788 %329
|
|
%784 = OpPhi %6 %18 %314 %595 %329
|
|
%332 = OpSLessThan %28 %784 %57
|
|
%334 = OpSLessThan %28 %785 %60
|
|
%335 = OpLogicalAnd %28 %332 %334
|
|
OpLoopMerge %328 %329 None
|
|
OpBranchConditional %335 %327 %328
|
|
%327 = OpLabel
|
|
%337 = OpIAdd %6 %785 %31
|
|
OpBranch %339
|
|
%339 = OpLabel
|
|
%788 = OpPhi %6 %337 %327 %791 %342
|
|
%787 = OpPhi %6 %18 %327 %593 %342
|
|
%345 = OpSLessThan %28 %787 %57
|
|
%347 = OpSLessThan %28 %788 %60
|
|
%348 = OpLogicalAnd %28 %345 %347
|
|
OpLoopMerge %341 %342 None
|
|
OpBranchConditional %348 %340 %341
|
|
%340 = OpLabel
|
|
%350 = OpIAdd %6 %788 %31
|
|
OpBranch %352
|
|
%352 = OpLabel
|
|
%791 = OpPhi %6 %350 %340 %794 %355
|
|
%790 = OpPhi %6 %18 %340 %591 %355
|
|
%358 = OpSLessThan %28 %790 %57
|
|
%360 = OpSLessThan %28 %791 %60
|
|
%361 = OpLogicalAnd %28 %358 %360
|
|
OpLoopMerge %354 %355 None
|
|
OpBranchConditional %361 %353 %354
|
|
%353 = OpLabel
|
|
%363 = OpIAdd %6 %791 %31
|
|
OpBranch %365
|
|
%365 = OpLabel
|
|
%794 = OpPhi %6 %363 %353 %797 %368
|
|
%793 = OpPhi %6 %18 %353 %589 %368
|
|
%371 = OpSLessThan %28 %793 %57
|
|
%373 = OpSLessThan %28 %794 %60
|
|
%374 = OpLogicalAnd %28 %371 %373
|
|
OpLoopMerge %367 %368 None
|
|
OpBranchConditional %374 %366 %367
|
|
%366 = OpLabel
|
|
%376 = OpIAdd %6 %794 %31
|
|
OpBranch %378
|
|
%378 = OpLabel
|
|
%797 = OpPhi %6 %376 %366 %800 %381
|
|
%796 = OpPhi %6 %18 %366 %587 %381
|
|
%384 = OpSLessThan %28 %796 %57
|
|
%386 = OpSLessThan %28 %797 %60
|
|
%387 = OpLogicalAnd %28 %384 %386
|
|
OpLoopMerge %380 %381 None
|
|
OpBranchConditional %387 %379 %380
|
|
%379 = OpLabel
|
|
%389 = OpIAdd %6 %797 %31
|
|
OpBranch %391
|
|
%391 = OpLabel
|
|
%800 = OpPhi %6 %389 %379 %803 %394
|
|
%799 = OpPhi %6 %18 %379 %585 %394
|
|
%397 = OpSLessThan %28 %799 %57
|
|
%399 = OpSLessThan %28 %800 %60
|
|
%400 = OpLogicalAnd %28 %397 %399
|
|
OpLoopMerge %393 %394 None
|
|
OpBranchConditional %400 %392 %393
|
|
%392 = OpLabel
|
|
%402 = OpIAdd %6 %800 %31
|
|
OpBranch %404
|
|
%404 = OpLabel
|
|
%803 = OpPhi %6 %402 %392 %806 %407
|
|
%802 = OpPhi %6 %18 %392 %583 %407
|
|
%410 = OpSLessThan %28 %802 %57
|
|
%412 = OpSLessThan %28 %803 %60
|
|
%413 = OpLogicalAnd %28 %410 %412
|
|
OpLoopMerge %406 %407 None
|
|
OpBranchConditional %413 %405 %406
|
|
%405 = OpLabel
|
|
%415 = OpIAdd %6 %803 %31
|
|
OpBranch %417
|
|
%417 = OpLabel
|
|
%806 = OpPhi %6 %415 %405 %809 %420
|
|
%805 = OpPhi %6 %18 %405 %581 %420
|
|
%423 = OpSLessThan %28 %805 %57
|
|
%425 = OpSLessThan %28 %806 %60
|
|
%426 = OpLogicalAnd %28 %423 %425
|
|
OpLoopMerge %419 %420 None
|
|
OpBranchConditional %426 %418 %419
|
|
%418 = OpLabel
|
|
%428 = OpIAdd %6 %806 %31
|
|
OpBranch %430
|
|
%430 = OpLabel
|
|
%809 = OpPhi %6 %428 %418 %812 %433
|
|
%808 = OpPhi %6 %18 %418 %579 %433
|
|
%436 = OpSLessThan %28 %808 %57
|
|
%438 = OpSLessThan %28 %809 %60
|
|
%439 = OpLogicalAnd %28 %436 %438
|
|
OpLoopMerge %432 %433 None
|
|
OpBranchConditional %439 %431 %432
|
|
%431 = OpLabel
|
|
%441 = OpIAdd %6 %809 %31
|
|
OpBranch %443
|
|
%443 = OpLabel
|
|
%812 = OpPhi %6 %441 %431 %815 %446
|
|
%811 = OpPhi %6 %18 %431 %577 %446
|
|
%449 = OpSLessThan %28 %811 %57
|
|
%451 = OpSLessThan %28 %812 %60
|
|
%452 = OpLogicalAnd %28 %449 %451
|
|
OpLoopMerge %445 %446 None
|
|
OpBranchConditional %452 %444 %445
|
|
%444 = OpLabel
|
|
%454 = OpIAdd %6 %812 %31
|
|
OpBranch %456
|
|
%456 = OpLabel
|
|
%815 = OpPhi %6 %454 %444 %818 %459
|
|
%814 = OpPhi %6 %18 %444 %575 %459
|
|
%462 = OpSLessThan %28 %814 %57
|
|
%464 = OpSLessThan %28 %815 %60
|
|
%465 = OpLogicalAnd %28 %462 %464
|
|
OpLoopMerge %458 %459 None
|
|
OpBranchConditional %465 %457 %458
|
|
%457 = OpLabel
|
|
%467 = OpIAdd %6 %815 %31
|
|
OpBranch %469
|
|
%469 = OpLabel
|
|
%818 = OpPhi %6 %467 %457 %821 %472
|
|
%817 = OpPhi %6 %18 %457 %573 %472
|
|
%475 = OpSLessThan %28 %817 %57
|
|
%477 = OpSLessThan %28 %818 %60
|
|
%478 = OpLogicalAnd %28 %475 %477
|
|
OpLoopMerge %471 %472 None
|
|
OpBranchConditional %478 %470 %471
|
|
%470 = OpLabel
|
|
%480 = OpIAdd %6 %818 %31
|
|
OpBranch %482
|
|
%482 = OpLabel
|
|
%821 = OpPhi %6 %480 %470 %824 %485
|
|
%820 = OpPhi %6 %18 %470 %571 %485
|
|
%488 = OpSLessThan %28 %820 %57
|
|
%490 = OpSLessThan %28 %821 %60
|
|
%491 = OpLogicalAnd %28 %488 %490
|
|
OpLoopMerge %484 %485 None
|
|
OpBranchConditional %491 %483 %484
|
|
%483 = OpLabel
|
|
%493 = OpIAdd %6 %821 %31
|
|
OpBranch %495
|
|
%495 = OpLabel
|
|
%824 = OpPhi %6 %493 %483 %827 %498
|
|
%823 = OpPhi %6 %18 %483 %569 %498
|
|
%501 = OpSLessThan %28 %823 %57
|
|
%503 = OpSLessThan %28 %824 %60
|
|
%504 = OpLogicalAnd %28 %501 %503
|
|
OpLoopMerge %497 %498 None
|
|
OpBranchConditional %504 %496 %497
|
|
%496 = OpLabel
|
|
%506 = OpIAdd %6 %824 %31
|
|
OpBranch %508
|
|
%508 = OpLabel
|
|
%827 = OpPhi %6 %506 %496 %830 %511
|
|
%826 = OpPhi %6 %18 %496 %567 %511
|
|
%514 = OpSLessThan %28 %826 %57
|
|
%516 = OpSLessThan %28 %827 %60
|
|
%517 = OpLogicalAnd %28 %514 %516
|
|
OpLoopMerge %510 %511 None
|
|
OpBranchConditional %517 %509 %510
|
|
%509 = OpLabel
|
|
%519 = OpIAdd %6 %827 %31
|
|
OpBranch %521
|
|
%521 = OpLabel
|
|
%830 = OpPhi %6 %519 %509 %833 %524
|
|
%829 = OpPhi %6 %18 %509 %565 %524
|
|
%527 = OpSLessThan %28 %829 %57
|
|
%529 = OpSLessThan %28 %830 %60
|
|
%530 = OpLogicalAnd %28 %527 %529
|
|
OpLoopMerge %523 %524 None
|
|
OpBranchConditional %530 %522 %523
|
|
%522 = OpLabel
|
|
%532 = OpIAdd %6 %830 %31
|
|
OpBranch %534
|
|
%534 = OpLabel
|
|
%833 = OpPhi %6 %532 %522 %545 %537
|
|
%832 = OpPhi %6 %18 %522 %563 %537
|
|
%540 = OpSLessThan %28 %832 %57
|
|
%542 = OpSLessThan %28 %833 %60
|
|
%543 = OpLogicalAnd %28 %540 %542
|
|
OpLoopMerge %536 %537 None
|
|
OpBranchConditional %543 %535 %536
|
|
%535 = OpLabel
|
|
%545 = OpIAdd %6 %833 %31
|
|
OpBranch %547
|
|
%547 = OpLabel
|
|
%835 = OpPhi %6 %18 %535 %561 %548
|
|
%553 = OpSLessThan %28 %835 %57
|
|
%555 = OpSLessThan %28 %545 %60
|
|
%556 = OpLogicalAnd %28 %553 %555
|
|
OpLoopMerge %549 %548 None
|
|
OpBranchConditional %556 %548 %549
|
|
%548 = OpLabel
|
|
%706 = OpAccessChain %19 %704 %835
|
|
OpStore %706 %835
|
|
%561 = OpIAdd %6 %835 %31
|
|
OpBranch %547
|
|
%549 = OpLabel
|
|
OpBranch %537
|
|
%537 = OpLabel
|
|
%563 = OpIAdd %6 %832 %31
|
|
OpBranch %534
|
|
%536 = OpLabel
|
|
OpBranch %524
|
|
%524 = OpLabel
|
|
%565 = OpIAdd %6 %829 %31
|
|
OpBranch %521
|
|
%523 = OpLabel
|
|
OpBranch %511
|
|
%511 = OpLabel
|
|
%567 = OpIAdd %6 %826 %31
|
|
OpBranch %508
|
|
%510 = OpLabel
|
|
OpBranch %498
|
|
%498 = OpLabel
|
|
%569 = OpIAdd %6 %823 %31
|
|
OpBranch %495
|
|
%497 = OpLabel
|
|
OpBranch %485
|
|
%485 = OpLabel
|
|
%571 = OpIAdd %6 %820 %31
|
|
OpBranch %482
|
|
%484 = OpLabel
|
|
OpBranch %472
|
|
%472 = OpLabel
|
|
%573 = OpIAdd %6 %817 %31
|
|
OpBranch %469
|
|
%471 = OpLabel
|
|
OpBranch %459
|
|
%459 = OpLabel
|
|
%575 = OpIAdd %6 %814 %31
|
|
OpBranch %456
|
|
%458 = OpLabel
|
|
OpBranch %446
|
|
%446 = OpLabel
|
|
%577 = OpIAdd %6 %811 %31
|
|
OpBranch %443
|
|
%445 = OpLabel
|
|
OpBranch %433
|
|
%433 = OpLabel
|
|
%579 = OpIAdd %6 %808 %31
|
|
OpBranch %430
|
|
%432 = OpLabel
|
|
OpBranch %420
|
|
%420 = OpLabel
|
|
%581 = OpIAdd %6 %805 %31
|
|
OpBranch %417
|
|
%419 = OpLabel
|
|
OpBranch %407
|
|
%407 = OpLabel
|
|
%583 = OpIAdd %6 %802 %31
|
|
OpBranch %404
|
|
%406 = OpLabel
|
|
OpBranch %394
|
|
%394 = OpLabel
|
|
%585 = OpIAdd %6 %799 %31
|
|
OpBranch %391
|
|
%393 = OpLabel
|
|
OpBranch %381
|
|
%381 = OpLabel
|
|
%587 = OpIAdd %6 %796 %31
|
|
OpBranch %378
|
|
%380 = OpLabel
|
|
OpBranch %368
|
|
%368 = OpLabel
|
|
%589 = OpIAdd %6 %793 %31
|
|
OpBranch %365
|
|
%367 = OpLabel
|
|
OpBranch %355
|
|
%355 = OpLabel
|
|
%591 = OpIAdd %6 %790 %31
|
|
OpBranch %352
|
|
%354 = OpLabel
|
|
OpBranch %342
|
|
%342 = OpLabel
|
|
%593 = OpIAdd %6 %787 %31
|
|
OpBranch %339
|
|
%341 = OpLabel
|
|
OpBranch %329
|
|
%329 = OpLabel
|
|
%595 = OpIAdd %6 %784 %31
|
|
OpBranch %326
|
|
%328 = OpLabel
|
|
OpBranch %316
|
|
%316 = OpLabel
|
|
%597 = OpIAdd %6 %781 %31
|
|
OpBranch %313
|
|
%315 = OpLabel
|
|
OpBranch %303
|
|
%303 = OpLabel
|
|
%599 = OpIAdd %6 %778 %31
|
|
OpBranch %300
|
|
%302 = OpLabel
|
|
OpBranch %290
|
|
%290 = OpLabel
|
|
%601 = OpIAdd %6 %775 %31
|
|
OpBranch %287
|
|
%289 = OpLabel
|
|
OpBranch %277
|
|
%277 = OpLabel
|
|
%603 = OpIAdd %6 %772 %31
|
|
OpBranch %274
|
|
%276 = OpLabel
|
|
OpBranch %264
|
|
%264 = OpLabel
|
|
%605 = OpIAdd %6 %769 %31
|
|
OpBranch %261
|
|
%263 = OpLabel
|
|
OpBranch %251
|
|
%251 = OpLabel
|
|
%607 = OpIAdd %6 %766 %31
|
|
OpBranch %248
|
|
%250 = OpLabel
|
|
OpBranch %238
|
|
%238 = OpLabel
|
|
%609 = OpIAdd %6 %763 %31
|
|
OpBranch %235
|
|
%237 = OpLabel
|
|
OpBranch %225
|
|
%225 = OpLabel
|
|
%611 = OpIAdd %6 %760 %31
|
|
OpBranch %222
|
|
%224 = OpLabel
|
|
OpBranch %212
|
|
%212 = OpLabel
|
|
%613 = OpIAdd %6 %757 %31
|
|
OpBranch %209
|
|
%211 = OpLabel
|
|
OpBranch %199
|
|
%199 = OpLabel
|
|
%615 = OpIAdd %6 %754 %31
|
|
OpBranch %196
|
|
%198 = OpLabel
|
|
OpBranch %186
|
|
%186 = OpLabel
|
|
%617 = OpIAdd %6 %751 %31
|
|
OpBranch %183
|
|
%185 = OpLabel
|
|
OpBranch %173
|
|
%173 = OpLabel
|
|
%619 = OpIAdd %6 %748 %31
|
|
OpBranch %170
|
|
%172 = OpLabel
|
|
OpBranch %160
|
|
%160 = OpLabel
|
|
%621 = OpIAdd %6 %745 %31
|
|
OpBranch %157
|
|
%159 = OpLabel
|
|
OpBranch %147
|
|
%147 = OpLabel
|
|
%623 = OpIAdd %6 %742 %31
|
|
OpBranch %144
|
|
%146 = OpLabel
|
|
OpBranch %134
|
|
%134 = OpLabel
|
|
%625 = OpIAdd %6 %739 %31
|
|
OpBranch %131
|
|
%133 = OpLabel
|
|
OpBranch %121
|
|
%121 = OpLabel
|
|
%627 = OpIAdd %6 %736 %31
|
|
OpBranch %118
|
|
%120 = OpLabel
|
|
OpBranch %108
|
|
%108 = OpLabel
|
|
%629 = OpIAdd %6 %733 %31
|
|
OpBranch %105
|
|
%107 = OpLabel
|
|
OpBranch %95
|
|
%95 = OpLabel
|
|
%631 = OpIAdd %6 %730 %31
|
|
OpBranch %92
|
|
%94 = OpLabel
|
|
OpBranch %82
|
|
%82 = OpLabel
|
|
%633 = OpIAdd %6 %727 %31
|
|
OpBranch %79
|
|
%81 = OpLabel
|
|
OpBranch %69
|
|
%69 = OpLabel
|
|
%635 = OpIAdd %6 %724 %31
|
|
OpBranch %66
|
|
%68 = OpLabel
|
|
OpBranch %54
|
|
%54 = OpLabel
|
|
%637 = OpIAdd %6 %712 %31
|
|
OpBranch %51
|
|
%53 = OpLabel
|
|
%645 = OpAccessChain %644 %642 %643
|
|
%646 = OpLoad %639 %645
|
|
%648 = OpFOrdGreaterThan %28 %646 %647
|
|
OpSelectionMerge %650 None
|
|
OpBranchConditional %648 %649 %650
|
|
%649 = OpLabel
|
|
%707 = OpLoad %9 %704
|
|
OpStore %709 %707
|
|
OpSelectionMerge %701 None
|
|
OpSwitch %668 %680
|
|
%680 = OpLabel
|
|
OpBranch %681
|
|
%681 = OpLabel
|
|
%715 = OpPhi %6 %18 %680 %696 %697
|
|
%714 = OpPhi %6 %713 %680 %687 %697
|
|
%684 = OpSLessThan %28 %714 %27
|
|
OpLoopMerge %698 %697 None
|
|
OpBranchConditional %684 %685 %698
|
|
%685 = OpLabel
|
|
%687 = OpIAdd %6 %714 %31
|
|
%711 = OpAccessChain %19 %709 %715
|
|
%690 = OpLoad %6 %711
|
|
%692 = OpINotEqual %28 %690 %715
|
|
OpSelectionMerge %694 None
|
|
OpBranchConditional %692 %693 %694
|
|
%693 = OpLabel
|
|
OpBranch %698
|
|
%694 = OpLabel
|
|
%696 = OpIAdd %6 %715 %31
|
|
OpBranch %697
|
|
%697 = OpLabel
|
|
OpBranch %681
|
|
%698 = OpLabel
|
|
%719 = OpPhi %6 %722 %681 %18 %693
|
|
%716 = OpPhi %28 %669 %681 %672 %693
|
|
OpSelectionMerge %700 None
|
|
OpBranchConditional %716 %701 %700
|
|
%700 = OpLabel
|
|
OpBranch %701
|
|
%701 = OpLabel
|
|
%718 = OpPhi %6 %719 %698 %31 %700
|
|
OpBranch %650
|
|
%650 = OpLabel
|
|
%723 = OpPhi %6 %18 %53 %718 %701
|
|
%655 = OpIEqual %28 %723 %31
|
|
OpSelectionMerge %657 None
|
|
OpBranchConditional %655 %656 %662
|
|
%656 = OpLabel
|
|
OpStore %659 %661
|
|
OpBranch %657
|
|
%662 = OpLabel
|
|
OpStore %659 %663
|
|
OpBranch %657
|
|
%657 = OpLabel
|
|
OpReturn
|
|
OpFunctionEnd
|
|
END
|
|
|
|
# uniforms for variant
|
|
|
|
|
|
BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
|
|
|
|
PIPELINE graphics variant_pipeline
|
|
ATTACH variant_vertex_shader
|
|
ATTACH variant_fragment_shader
|
|
FRAMEBUFFER_SIZE 16 16
|
|
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 16 16
|
|
|
|
EXPECT variant_framebuffer IDX 0 0 SIZE 16 16 EQ_RGBA 255 0 0 255
|