Files
Vulkan-CTS-bin/vulkan/amber/graphicsfuzz/cov-loop-large-array-index-clamp-negative-value.amber
2026-05-06 23:44:13 +02:00

708 lines
28 KiB
Plaintext

#!amber
# Copyright 2022 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 LLVM code paths
# The test passes because the shader always writes red.
SHADER vertex variant_vertex_shader PASSTHROUGH
# variant_fragment_shader is derived from the following GLSL:
# #version 320 es
# #define _int_1 _GLF_uniform_int_values[0]
# #define _int_2 _GLF_uniform_int_values[1]
# #define _int_0 _GLF_uniform_int_values[2]
#
# precision highp float;
# precision highp int;
#
# // Contents of _GLF_uniform_int_values: [1, 2, 0]
# layout(set = 0, binding = 0) uniform buf0
# {
# int _GLF_uniform_int_values[3];
# };
#
# layout(location = 0) out vec4 _GLF_color;
#
# void func()
# {
# int a = -86465;
#
# for(int i = 0; i < 3; i++)
# {
# // Always clamps the index to one and selects value two.
# if(int[256](_int_1, _int_2, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1, _int_1)[clamp(a, 1, 255)] == _int_2)
# {
# _GLF_color = vec4(1, 0, 0, 1);
# }
#
# a++;
# }
# }
#
# void main()
# {
# _GLF_color = vec4(_int_0);
# func();
# }
SHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0
; SPIR-V
; Version: 1.0
; Generator: Khronos Glslang Reference Front End; 10
; Bound: 575
; Schema: 0
OpCapability Shader
%1 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Fragment %4 "main" %561
OpExecutionMode %4 OriginUpperLeft
OpSource ESSL 320
OpName %4 "main"
OpName %6 "func("
OpName %10 "a"
OpName %12 "i"
OpName %26 "buf0"
OpMemberName %26 0 "_GLF_uniform_int_values"
OpName %28 ""
OpName %550 "indexable"
OpName %561 "_GLF_color"
OpDecorate %25 ArrayStride 16
OpMemberDecorate %26 0 Offset 0
OpDecorate %26 Block
OpDecorate %28 DescriptorSet 0
OpDecorate %28 Binding 0
OpDecorate %561 Location 0
%2 = OpTypeVoid
%3 = OpTypeFunction %2
%8 = OpTypeInt 32 1
%9 = OpTypePointer Function %8
%11 = OpConstant %8 -86465
%13 = OpConstant %8 0
%20 = OpConstant %8 3
%21 = OpTypeBool
%23 = OpTypeInt 32 0
%24 = OpConstant %23 3
%25 = OpTypeArray %8 %24
%26 = OpTypeStruct %25
%27 = OpTypePointer Uniform %26
%28 = OpVariable %27 Uniform
%29 = OpTypePointer Uniform %8
%32 = OpConstant %8 1
%543 = OpConstant %23 256
%544 = OpTypeArray %8 %543
%547 = OpConstant %8 255
%549 = OpTypePointer Function %544
%558 = OpTypeFloat 32
%559 = OpTypeVector %558 4
%560 = OpTypePointer Output %559
%561 = OpVariable %560 Output
%562 = OpConstant %558 1
%563 = OpConstant %558 0
%564 = OpConstantComposite %559 %562 %563 %563 %562
%569 = OpConstant %8 2
%4 = OpFunction %2 None %3
%5 = OpLabel
%570 = OpAccessChain %29 %28 %13 %569
%571 = OpLoad %8 %570
%572 = OpConvertSToF %558 %571
%573 = OpCompositeConstruct %559 %572 %572 %572 %572
OpStore %561 %573
%574 = OpFunctionCall %2 %6
OpReturn
OpFunctionEnd
%6 = OpFunction %2 None %3
%7 = OpLabel
%10 = OpVariable %9 Function
%12 = OpVariable %9 Function
%550 = OpVariable %549 Function
OpStore %10 %11
OpStore %12 %13
OpBranch %14
%14 = OpLabel
OpLoopMerge %16 %17 None
OpBranch %18
%18 = OpLabel
%19 = OpLoad %8 %12
%22 = OpSLessThan %21 %19 %20
OpBranchConditional %22 %15 %16
%15 = OpLabel
%30 = OpAccessChain %29 %28 %13 %13
%31 = OpLoad %8 %30
%33 = OpAccessChain %29 %28 %13 %32
%34 = OpLoad %8 %33
%35 = OpAccessChain %29 %28 %13 %13
%36 = OpLoad %8 %35
%37 = OpAccessChain %29 %28 %13 %13
%38 = OpLoad %8 %37
%39 = OpAccessChain %29 %28 %13 %13
%40 = OpLoad %8 %39
%41 = OpAccessChain %29 %28 %13 %13
%42 = OpLoad %8 %41
%43 = OpAccessChain %29 %28 %13 %13
%44 = OpLoad %8 %43
%45 = OpAccessChain %29 %28 %13 %13
%46 = OpLoad %8 %45
%47 = OpAccessChain %29 %28 %13 %13
%48 = OpLoad %8 %47
%49 = OpAccessChain %29 %28 %13 %13
%50 = OpLoad %8 %49
%51 = OpAccessChain %29 %28 %13 %13
%52 = OpLoad %8 %51
%53 = OpAccessChain %29 %28 %13 %13
%54 = OpLoad %8 %53
%55 = OpAccessChain %29 %28 %13 %13
%56 = OpLoad %8 %55
%57 = OpAccessChain %29 %28 %13 %13
%58 = OpLoad %8 %57
%59 = OpAccessChain %29 %28 %13 %13
%60 = OpLoad %8 %59
%61 = OpAccessChain %29 %28 %13 %13
%62 = OpLoad %8 %61
%63 = OpAccessChain %29 %28 %13 %13
%64 = OpLoad %8 %63
%65 = OpAccessChain %29 %28 %13 %13
%66 = OpLoad %8 %65
%67 = OpAccessChain %29 %28 %13 %13
%68 = OpLoad %8 %67
%69 = OpAccessChain %29 %28 %13 %13
%70 = OpLoad %8 %69
%71 = OpAccessChain %29 %28 %13 %13
%72 = OpLoad %8 %71
%73 = OpAccessChain %29 %28 %13 %13
%74 = OpLoad %8 %73
%75 = OpAccessChain %29 %28 %13 %13
%76 = OpLoad %8 %75
%77 = OpAccessChain %29 %28 %13 %13
%78 = OpLoad %8 %77
%79 = OpAccessChain %29 %28 %13 %13
%80 = OpLoad %8 %79
%81 = OpAccessChain %29 %28 %13 %13
%82 = OpLoad %8 %81
%83 = OpAccessChain %29 %28 %13 %13
%84 = OpLoad %8 %83
%85 = OpAccessChain %29 %28 %13 %13
%86 = OpLoad %8 %85
%87 = OpAccessChain %29 %28 %13 %13
%88 = OpLoad %8 %87
%89 = OpAccessChain %29 %28 %13 %13
%90 = OpLoad %8 %89
%91 = OpAccessChain %29 %28 %13 %13
%92 = OpLoad %8 %91
%93 = OpAccessChain %29 %28 %13 %13
%94 = OpLoad %8 %93
%95 = OpAccessChain %29 %28 %13 %13
%96 = OpLoad %8 %95
%97 = OpAccessChain %29 %28 %13 %13
%98 = OpLoad %8 %97
%99 = OpAccessChain %29 %28 %13 %13
%100 = OpLoad %8 %99
%101 = OpAccessChain %29 %28 %13 %13
%102 = OpLoad %8 %101
%103 = OpAccessChain %29 %28 %13 %13
%104 = OpLoad %8 %103
%105 = OpAccessChain %29 %28 %13 %13
%106 = OpLoad %8 %105
%107 = OpAccessChain %29 %28 %13 %13
%108 = OpLoad %8 %107
%109 = OpAccessChain %29 %28 %13 %13
%110 = OpLoad %8 %109
%111 = OpAccessChain %29 %28 %13 %13
%112 = OpLoad %8 %111
%113 = OpAccessChain %29 %28 %13 %13
%114 = OpLoad %8 %113
%115 = OpAccessChain %29 %28 %13 %13
%116 = OpLoad %8 %115
%117 = OpAccessChain %29 %28 %13 %13
%118 = OpLoad %8 %117
%119 = OpAccessChain %29 %28 %13 %13
%120 = OpLoad %8 %119
%121 = OpAccessChain %29 %28 %13 %13
%122 = OpLoad %8 %121
%123 = OpAccessChain %29 %28 %13 %13
%124 = OpLoad %8 %123
%125 = OpAccessChain %29 %28 %13 %13
%126 = OpLoad %8 %125
%127 = OpAccessChain %29 %28 %13 %13
%128 = OpLoad %8 %127
%129 = OpAccessChain %29 %28 %13 %13
%130 = OpLoad %8 %129
%131 = OpAccessChain %29 %28 %13 %13
%132 = OpLoad %8 %131
%133 = OpAccessChain %29 %28 %13 %13
%134 = OpLoad %8 %133
%135 = OpAccessChain %29 %28 %13 %13
%136 = OpLoad %8 %135
%137 = OpAccessChain %29 %28 %13 %13
%138 = OpLoad %8 %137
%139 = OpAccessChain %29 %28 %13 %13
%140 = OpLoad %8 %139
%141 = OpAccessChain %29 %28 %13 %13
%142 = OpLoad %8 %141
%143 = OpAccessChain %29 %28 %13 %13
%144 = OpLoad %8 %143
%145 = OpAccessChain %29 %28 %13 %13
%146 = OpLoad %8 %145
%147 = OpAccessChain %29 %28 %13 %13
%148 = OpLoad %8 %147
%149 = OpAccessChain %29 %28 %13 %13
%150 = OpLoad %8 %149
%151 = OpAccessChain %29 %28 %13 %13
%152 = OpLoad %8 %151
%153 = OpAccessChain %29 %28 %13 %13
%154 = OpLoad %8 %153
%155 = OpAccessChain %29 %28 %13 %13
%156 = OpLoad %8 %155
%157 = OpAccessChain %29 %28 %13 %13
%158 = OpLoad %8 %157
%159 = OpAccessChain %29 %28 %13 %13
%160 = OpLoad %8 %159
%161 = OpAccessChain %29 %28 %13 %13
%162 = OpLoad %8 %161
%163 = OpAccessChain %29 %28 %13 %13
%164 = OpLoad %8 %163
%165 = OpAccessChain %29 %28 %13 %13
%166 = OpLoad %8 %165
%167 = OpAccessChain %29 %28 %13 %13
%168 = OpLoad %8 %167
%169 = OpAccessChain %29 %28 %13 %13
%170 = OpLoad %8 %169
%171 = OpAccessChain %29 %28 %13 %13
%172 = OpLoad %8 %171
%173 = OpAccessChain %29 %28 %13 %13
%174 = OpLoad %8 %173
%175 = OpAccessChain %29 %28 %13 %13
%176 = OpLoad %8 %175
%177 = OpAccessChain %29 %28 %13 %13
%178 = OpLoad %8 %177
%179 = OpAccessChain %29 %28 %13 %13
%180 = OpLoad %8 %179
%181 = OpAccessChain %29 %28 %13 %13
%182 = OpLoad %8 %181
%183 = OpAccessChain %29 %28 %13 %13
%184 = OpLoad %8 %183
%185 = OpAccessChain %29 %28 %13 %13
%186 = OpLoad %8 %185
%187 = OpAccessChain %29 %28 %13 %13
%188 = OpLoad %8 %187
%189 = OpAccessChain %29 %28 %13 %13
%190 = OpLoad %8 %189
%191 = OpAccessChain %29 %28 %13 %13
%192 = OpLoad %8 %191
%193 = OpAccessChain %29 %28 %13 %13
%194 = OpLoad %8 %193
%195 = OpAccessChain %29 %28 %13 %13
%196 = OpLoad %8 %195
%197 = OpAccessChain %29 %28 %13 %13
%198 = OpLoad %8 %197
%199 = OpAccessChain %29 %28 %13 %13
%200 = OpLoad %8 %199
%201 = OpAccessChain %29 %28 %13 %13
%202 = OpLoad %8 %201
%203 = OpAccessChain %29 %28 %13 %13
%204 = OpLoad %8 %203
%205 = OpAccessChain %29 %28 %13 %13
%206 = OpLoad %8 %205
%207 = OpAccessChain %29 %28 %13 %13
%208 = OpLoad %8 %207
%209 = OpAccessChain %29 %28 %13 %13
%210 = OpLoad %8 %209
%211 = OpAccessChain %29 %28 %13 %13
%212 = OpLoad %8 %211
%213 = OpAccessChain %29 %28 %13 %13
%214 = OpLoad %8 %213
%215 = OpAccessChain %29 %28 %13 %13
%216 = OpLoad %8 %215
%217 = OpAccessChain %29 %28 %13 %13
%218 = OpLoad %8 %217
%219 = OpAccessChain %29 %28 %13 %13
%220 = OpLoad %8 %219
%221 = OpAccessChain %29 %28 %13 %13
%222 = OpLoad %8 %221
%223 = OpAccessChain %29 %28 %13 %13
%224 = OpLoad %8 %223
%225 = OpAccessChain %29 %28 %13 %13
%226 = OpLoad %8 %225
%227 = OpAccessChain %29 %28 %13 %13
%228 = OpLoad %8 %227
%229 = OpAccessChain %29 %28 %13 %13
%230 = OpLoad %8 %229
%231 = OpAccessChain %29 %28 %13 %13
%232 = OpLoad %8 %231
%233 = OpAccessChain %29 %28 %13 %13
%234 = OpLoad %8 %233
%235 = OpAccessChain %29 %28 %13 %13
%236 = OpLoad %8 %235
%237 = OpAccessChain %29 %28 %13 %13
%238 = OpLoad %8 %237
%239 = OpAccessChain %29 %28 %13 %13
%240 = OpLoad %8 %239
%241 = OpAccessChain %29 %28 %13 %13
%242 = OpLoad %8 %241
%243 = OpAccessChain %29 %28 %13 %13
%244 = OpLoad %8 %243
%245 = OpAccessChain %29 %28 %13 %13
%246 = OpLoad %8 %245
%247 = OpAccessChain %29 %28 %13 %13
%248 = OpLoad %8 %247
%249 = OpAccessChain %29 %28 %13 %13
%250 = OpLoad %8 %249
%251 = OpAccessChain %29 %28 %13 %13
%252 = OpLoad %8 %251
%253 = OpAccessChain %29 %28 %13 %13
%254 = OpLoad %8 %253
%255 = OpAccessChain %29 %28 %13 %13
%256 = OpLoad %8 %255
%257 = OpAccessChain %29 %28 %13 %13
%258 = OpLoad %8 %257
%259 = OpAccessChain %29 %28 %13 %13
%260 = OpLoad %8 %259
%261 = OpAccessChain %29 %28 %13 %13
%262 = OpLoad %8 %261
%263 = OpAccessChain %29 %28 %13 %13
%264 = OpLoad %8 %263
%265 = OpAccessChain %29 %28 %13 %13
%266 = OpLoad %8 %265
%267 = OpAccessChain %29 %28 %13 %13
%268 = OpLoad %8 %267
%269 = OpAccessChain %29 %28 %13 %13
%270 = OpLoad %8 %269
%271 = OpAccessChain %29 %28 %13 %13
%272 = OpLoad %8 %271
%273 = OpAccessChain %29 %28 %13 %13
%274 = OpLoad %8 %273
%275 = OpAccessChain %29 %28 %13 %13
%276 = OpLoad %8 %275
%277 = OpAccessChain %29 %28 %13 %13
%278 = OpLoad %8 %277
%279 = OpAccessChain %29 %28 %13 %13
%280 = OpLoad %8 %279
%281 = OpAccessChain %29 %28 %13 %13
%282 = OpLoad %8 %281
%283 = OpAccessChain %29 %28 %13 %13
%284 = OpLoad %8 %283
%285 = OpAccessChain %29 %28 %13 %13
%286 = OpLoad %8 %285
%287 = OpAccessChain %29 %28 %13 %13
%288 = OpLoad %8 %287
%289 = OpAccessChain %29 %28 %13 %13
%290 = OpLoad %8 %289
%291 = OpAccessChain %29 %28 %13 %13
%292 = OpLoad %8 %291
%293 = OpAccessChain %29 %28 %13 %13
%294 = OpLoad %8 %293
%295 = OpAccessChain %29 %28 %13 %13
%296 = OpLoad %8 %295
%297 = OpAccessChain %29 %28 %13 %13
%298 = OpLoad %8 %297
%299 = OpAccessChain %29 %28 %13 %13
%300 = OpLoad %8 %299
%301 = OpAccessChain %29 %28 %13 %13
%302 = OpLoad %8 %301
%303 = OpAccessChain %29 %28 %13 %13
%304 = OpLoad %8 %303
%305 = OpAccessChain %29 %28 %13 %13
%306 = OpLoad %8 %305
%307 = OpAccessChain %29 %28 %13 %13
%308 = OpLoad %8 %307
%309 = OpAccessChain %29 %28 %13 %13
%310 = OpLoad %8 %309
%311 = OpAccessChain %29 %28 %13 %13
%312 = OpLoad %8 %311
%313 = OpAccessChain %29 %28 %13 %13
%314 = OpLoad %8 %313
%315 = OpAccessChain %29 %28 %13 %13
%316 = OpLoad %8 %315
%317 = OpAccessChain %29 %28 %13 %13
%318 = OpLoad %8 %317
%319 = OpAccessChain %29 %28 %13 %13
%320 = OpLoad %8 %319
%321 = OpAccessChain %29 %28 %13 %13
%322 = OpLoad %8 %321
%323 = OpAccessChain %29 %28 %13 %13
%324 = OpLoad %8 %323
%325 = OpAccessChain %29 %28 %13 %13
%326 = OpLoad %8 %325
%327 = OpAccessChain %29 %28 %13 %13
%328 = OpLoad %8 %327
%329 = OpAccessChain %29 %28 %13 %13
%330 = OpLoad %8 %329
%331 = OpAccessChain %29 %28 %13 %13
%332 = OpLoad %8 %331
%333 = OpAccessChain %29 %28 %13 %13
%334 = OpLoad %8 %333
%335 = OpAccessChain %29 %28 %13 %13
%336 = OpLoad %8 %335
%337 = OpAccessChain %29 %28 %13 %13
%338 = OpLoad %8 %337
%339 = OpAccessChain %29 %28 %13 %13
%340 = OpLoad %8 %339
%341 = OpAccessChain %29 %28 %13 %13
%342 = OpLoad %8 %341
%343 = OpAccessChain %29 %28 %13 %13
%344 = OpLoad %8 %343
%345 = OpAccessChain %29 %28 %13 %13
%346 = OpLoad %8 %345
%347 = OpAccessChain %29 %28 %13 %13
%348 = OpLoad %8 %347
%349 = OpAccessChain %29 %28 %13 %13
%350 = OpLoad %8 %349
%351 = OpAccessChain %29 %28 %13 %13
%352 = OpLoad %8 %351
%353 = OpAccessChain %29 %28 %13 %13
%354 = OpLoad %8 %353
%355 = OpAccessChain %29 %28 %13 %13
%356 = OpLoad %8 %355
%357 = OpAccessChain %29 %28 %13 %13
%358 = OpLoad %8 %357
%359 = OpAccessChain %29 %28 %13 %13
%360 = OpLoad %8 %359
%361 = OpAccessChain %29 %28 %13 %13
%362 = OpLoad %8 %361
%363 = OpAccessChain %29 %28 %13 %13
%364 = OpLoad %8 %363
%365 = OpAccessChain %29 %28 %13 %13
%366 = OpLoad %8 %365
%367 = OpAccessChain %29 %28 %13 %13
%368 = OpLoad %8 %367
%369 = OpAccessChain %29 %28 %13 %13
%370 = OpLoad %8 %369
%371 = OpAccessChain %29 %28 %13 %13
%372 = OpLoad %8 %371
%373 = OpAccessChain %29 %28 %13 %13
%374 = OpLoad %8 %373
%375 = OpAccessChain %29 %28 %13 %13
%376 = OpLoad %8 %375
%377 = OpAccessChain %29 %28 %13 %13
%378 = OpLoad %8 %377
%379 = OpAccessChain %29 %28 %13 %13
%380 = OpLoad %8 %379
%381 = OpAccessChain %29 %28 %13 %13
%382 = OpLoad %8 %381
%383 = OpAccessChain %29 %28 %13 %13
%384 = OpLoad %8 %383
%385 = OpAccessChain %29 %28 %13 %13
%386 = OpLoad %8 %385
%387 = OpAccessChain %29 %28 %13 %13
%388 = OpLoad %8 %387
%389 = OpAccessChain %29 %28 %13 %13
%390 = OpLoad %8 %389
%391 = OpAccessChain %29 %28 %13 %13
%392 = OpLoad %8 %391
%393 = OpAccessChain %29 %28 %13 %13
%394 = OpLoad %8 %393
%395 = OpAccessChain %29 %28 %13 %13
%396 = OpLoad %8 %395
%397 = OpAccessChain %29 %28 %13 %13
%398 = OpLoad %8 %397
%399 = OpAccessChain %29 %28 %13 %13
%400 = OpLoad %8 %399
%401 = OpAccessChain %29 %28 %13 %13
%402 = OpLoad %8 %401
%403 = OpAccessChain %29 %28 %13 %13
%404 = OpLoad %8 %403
%405 = OpAccessChain %29 %28 %13 %13
%406 = OpLoad %8 %405
%407 = OpAccessChain %29 %28 %13 %13
%408 = OpLoad %8 %407
%409 = OpAccessChain %29 %28 %13 %13
%410 = OpLoad %8 %409
%411 = OpAccessChain %29 %28 %13 %13
%412 = OpLoad %8 %411
%413 = OpAccessChain %29 %28 %13 %13
%414 = OpLoad %8 %413
%415 = OpAccessChain %29 %28 %13 %13
%416 = OpLoad %8 %415
%417 = OpAccessChain %29 %28 %13 %13
%418 = OpLoad %8 %417
%419 = OpAccessChain %29 %28 %13 %13
%420 = OpLoad %8 %419
%421 = OpAccessChain %29 %28 %13 %13
%422 = OpLoad %8 %421
%423 = OpAccessChain %29 %28 %13 %13
%424 = OpLoad %8 %423
%425 = OpAccessChain %29 %28 %13 %13
%426 = OpLoad %8 %425
%427 = OpAccessChain %29 %28 %13 %13
%428 = OpLoad %8 %427
%429 = OpAccessChain %29 %28 %13 %13
%430 = OpLoad %8 %429
%431 = OpAccessChain %29 %28 %13 %13
%432 = OpLoad %8 %431
%433 = OpAccessChain %29 %28 %13 %13
%434 = OpLoad %8 %433
%435 = OpAccessChain %29 %28 %13 %13
%436 = OpLoad %8 %435
%437 = OpAccessChain %29 %28 %13 %13
%438 = OpLoad %8 %437
%439 = OpAccessChain %29 %28 %13 %13
%440 = OpLoad %8 %439
%441 = OpAccessChain %29 %28 %13 %13
%442 = OpLoad %8 %441
%443 = OpAccessChain %29 %28 %13 %13
%444 = OpLoad %8 %443
%445 = OpAccessChain %29 %28 %13 %13
%446 = OpLoad %8 %445
%447 = OpAccessChain %29 %28 %13 %13
%448 = OpLoad %8 %447
%449 = OpAccessChain %29 %28 %13 %13
%450 = OpLoad %8 %449
%451 = OpAccessChain %29 %28 %13 %13
%452 = OpLoad %8 %451
%453 = OpAccessChain %29 %28 %13 %13
%454 = OpLoad %8 %453
%455 = OpAccessChain %29 %28 %13 %13
%456 = OpLoad %8 %455
%457 = OpAccessChain %29 %28 %13 %13
%458 = OpLoad %8 %457
%459 = OpAccessChain %29 %28 %13 %13
%460 = OpLoad %8 %459
%461 = OpAccessChain %29 %28 %13 %13
%462 = OpLoad %8 %461
%463 = OpAccessChain %29 %28 %13 %13
%464 = OpLoad %8 %463
%465 = OpAccessChain %29 %28 %13 %13
%466 = OpLoad %8 %465
%467 = OpAccessChain %29 %28 %13 %13
%468 = OpLoad %8 %467
%469 = OpAccessChain %29 %28 %13 %13
%470 = OpLoad %8 %469
%471 = OpAccessChain %29 %28 %13 %13
%472 = OpLoad %8 %471
%473 = OpAccessChain %29 %28 %13 %13
%474 = OpLoad %8 %473
%475 = OpAccessChain %29 %28 %13 %13
%476 = OpLoad %8 %475
%477 = OpAccessChain %29 %28 %13 %13
%478 = OpLoad %8 %477
%479 = OpAccessChain %29 %28 %13 %13
%480 = OpLoad %8 %479
%481 = OpAccessChain %29 %28 %13 %13
%482 = OpLoad %8 %481
%483 = OpAccessChain %29 %28 %13 %13
%484 = OpLoad %8 %483
%485 = OpAccessChain %29 %28 %13 %13
%486 = OpLoad %8 %485
%487 = OpAccessChain %29 %28 %13 %13
%488 = OpLoad %8 %487
%489 = OpAccessChain %29 %28 %13 %13
%490 = OpLoad %8 %489
%491 = OpAccessChain %29 %28 %13 %13
%492 = OpLoad %8 %491
%493 = OpAccessChain %29 %28 %13 %13
%494 = OpLoad %8 %493
%495 = OpAccessChain %29 %28 %13 %13
%496 = OpLoad %8 %495
%497 = OpAccessChain %29 %28 %13 %13
%498 = OpLoad %8 %497
%499 = OpAccessChain %29 %28 %13 %13
%500 = OpLoad %8 %499
%501 = OpAccessChain %29 %28 %13 %13
%502 = OpLoad %8 %501
%503 = OpAccessChain %29 %28 %13 %13
%504 = OpLoad %8 %503
%505 = OpAccessChain %29 %28 %13 %13
%506 = OpLoad %8 %505
%507 = OpAccessChain %29 %28 %13 %13
%508 = OpLoad %8 %507
%509 = OpAccessChain %29 %28 %13 %13
%510 = OpLoad %8 %509
%511 = OpAccessChain %29 %28 %13 %13
%512 = OpLoad %8 %511
%513 = OpAccessChain %29 %28 %13 %13
%514 = OpLoad %8 %513
%515 = OpAccessChain %29 %28 %13 %13
%516 = OpLoad %8 %515
%517 = OpAccessChain %29 %28 %13 %13
%518 = OpLoad %8 %517
%519 = OpAccessChain %29 %28 %13 %13
%520 = OpLoad %8 %519
%521 = OpAccessChain %29 %28 %13 %13
%522 = OpLoad %8 %521
%523 = OpAccessChain %29 %28 %13 %13
%524 = OpLoad %8 %523
%525 = OpAccessChain %29 %28 %13 %13
%526 = OpLoad %8 %525
%527 = OpAccessChain %29 %28 %13 %13
%528 = OpLoad %8 %527
%529 = OpAccessChain %29 %28 %13 %13
%530 = OpLoad %8 %529
%531 = OpAccessChain %29 %28 %13 %13
%532 = OpLoad %8 %531
%533 = OpAccessChain %29 %28 %13 %13
%534 = OpLoad %8 %533
%535 = OpAccessChain %29 %28 %13 %13
%536 = OpLoad %8 %535
%537 = OpAccessChain %29 %28 %13 %13
%538 = OpLoad %8 %537
%539 = OpAccessChain %29 %28 %13 %13
%540 = OpLoad %8 %539
%541 = OpAccessChain %29 %28 %13 %13
%542 = OpLoad %8 %541
%545 = OpCompositeConstruct %544 %31 %34 %36 %38 %40 %42 %44 %46 %48 %50 %52 %54 %56 %58 %60 %62 %64 %66 %68 %70 %72 %74 %76 %78 %80 %82 %84 %86 %88 %90 %92 %94 %96 %98 %100 %102 %104 %106 %108 %110 %112 %114 %116 %118 %120 %122 %124 %126 %128 %130 %132 %134 %136 %138 %140 %142 %144 %146 %148 %150 %152 %154 %156 %158 %160 %162 %164 %166 %168 %170 %172 %174 %176 %178 %180 %182 %184 %186 %188 %190 %192 %194 %196 %198 %200 %202 %204 %206 %208 %210 %212 %214 %216 %218 %220 %222 %224 %226 %228 %230 %232 %234 %236 %238 %240 %242 %244 %246 %248 %250 %252 %254 %256 %258 %260 %262 %264 %266 %268 %270 %272 %274 %276 %278 %280 %282 %284 %286 %288 %290 %292 %294 %296 %298 %300 %302 %304 %306 %308 %310 %312 %314 %316 %318 %320 %322 %324 %326 %328 %330 %332 %334 %336 %338 %340 %342 %344 %346 %348 %350 %352 %354 %356 %358 %360 %362 %364 %366 %368 %370 %372 %374 %376 %378 %380 %382 %384 %386 %388 %390 %392 %394 %396 %398 %400 %402 %404 %406 %408 %410 %412 %414 %416 %418 %420 %422 %424 %426 %428 %430 %432 %434 %436 %438 %440 %442 %444 %446 %448 %450 %452 %454 %456 %458 %460 %462 %464 %466 %468 %470 %472 %474 %476 %478 %480 %482 %484 %486 %488 %490 %492 %494 %496 %498 %500 %502 %504 %506 %508 %510 %512 %514 %516 %518 %520 %522 %524 %526 %528 %530 %532 %534 %536 %538 %540 %542
%546 = OpLoad %8 %10
%548 = OpExtInst %8 %1 SClamp %546 %32 %547
OpStore %550 %545
%551 = OpAccessChain %9 %550 %548
%552 = OpLoad %8 %551
%553 = OpAccessChain %29 %28 %13 %32
%554 = OpLoad %8 %553
%555 = OpIEqual %21 %552 %554
OpSelectionMerge %557 None
OpBranchConditional %555 %556 %557
%556 = OpLabel
OpStore %561 %564
OpBranch %557
%557 = OpLabel
%565 = OpLoad %8 %10
%566 = OpIAdd %8 %565 %32
OpStore %10 %566
OpBranch %17
%17 = OpLabel
%567 = OpLoad %8 %12
%568 = OpIAdd %8 %567 %32
OpStore %12 %568
OpBranch %14
%16 = OpLabel
OpReturn
OpFunctionEnd
END
# uniforms for variant
# _GLF_uniform_int_values
BUFFER variant__GLF_uniform_int_values DATA_TYPE int32[] STD140 DATA
1 2 0
END
BUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM
PIPELINE graphics variant_pipeline
ATTACH variant_vertex_shader
ATTACH variant_fragment_shader
FRAMEBUFFER_SIZE 32 32
BIND BUFFER variant_framebuffer AS color LOCATION 0
BIND BUFFER variant__GLF_uniform_int_values AS uniform DESCRIPTOR_SET 0 BINDING 0
END
CLEAR_COLOR variant_pipeline 0 0 0 255
CLEAR variant_pipeline
RUN variant_pipeline DRAW_RECT POS 0 0 SIZE 32 32
EXPECT variant_framebuffer IDX 0 0 SIZE 32 32 EQ_RGBA 255 0 0 255