1e5c31af7Sopenharmony_ci#!amber 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci# Copyright 2020 Google LLC 4e5c31af7Sopenharmony_ci# 5e5c31af7Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 6e5c31af7Sopenharmony_ci# you may not use this file except in compliance with the License. 7e5c31af7Sopenharmony_ci# You may obtain a copy of the License at 8e5c31af7Sopenharmony_ci# 9e5c31af7Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 10e5c31af7Sopenharmony_ci# 11e5c31af7Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 12e5c31af7Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 13e5c31af7Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14e5c31af7Sopenharmony_ci# See the License for the specific language governing permissions and 15e5c31af7Sopenharmony_ci# limitations under the License. 16e5c31af7Sopenharmony_ci 17e5c31af7Sopenharmony_ci 18e5c31af7Sopenharmony_ci# A test for a bug found by the GraphicsFuzz project. 19e5c31af7Sopenharmony_ci 20e5c31af7Sopenharmony_ci# Short description: Equivalent shaders, one with more complex branching 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ci# The test passes because both shaders render the same image. 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ciSHADER vertex reference_vertex_shader PASSTHROUGH 25e5c31af7Sopenharmony_ci 26e5c31af7Sopenharmony_ciSHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 27e5c31af7Sopenharmony_ci; SPIR-V 28e5c31af7Sopenharmony_ci; Version: 1.0 29e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 30e5c31af7Sopenharmony_ci; Bound: 381 31e5c31af7Sopenharmony_ci; Schema: 0 32e5c31af7Sopenharmony_ci OpCapability Shader 33e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 34e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 35e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %243 %369 36e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 37e5c31af7Sopenharmony_ci OpSource ESSL 320 38e5c31af7Sopenharmony_ci OpName %4 "main" 39e5c31af7Sopenharmony_ci OpName %12 "merge(i1;i1;i1;" 40e5c31af7Sopenharmony_ci OpName %9 "from" 41e5c31af7Sopenharmony_ci OpName %10 "mid" 42e5c31af7Sopenharmony_ci OpName %11 "to" 43e5c31af7Sopenharmony_ci OpName %14 "mergeSort(" 44e5c31af7Sopenharmony_ci OpName %16 "k" 45e5c31af7Sopenharmony_ci OpName %18 "i" 46e5c31af7Sopenharmony_ci OpName %20 "j" 47e5c31af7Sopenharmony_ci OpName %41 "data" 48e5c31af7Sopenharmony_ci OpName %52 "temp" 49e5c31af7Sopenharmony_ci OpName %87 "i" 50e5c31af7Sopenharmony_ci OpName %104 "low" 51e5c31af7Sopenharmony_ci OpName %106 "high" 52e5c31af7Sopenharmony_ci OpName %108 "m" 53e5c31af7Sopenharmony_ci OpName %117 "i" 54e5c31af7Sopenharmony_ci OpName %127 "from" 55e5c31af7Sopenharmony_ci OpName %129 "mid" 56e5c31af7Sopenharmony_ci OpName %134 "to" 57e5c31af7Sopenharmony_ci OpName %143 "param" 58e5c31af7Sopenharmony_ci OpName %145 "param" 59e5c31af7Sopenharmony_ci OpName %147 "param" 60e5c31af7Sopenharmony_ci OpName %156 "i" 61e5c31af7Sopenharmony_ci OpName %159 "buf0" 62e5c31af7Sopenharmony_ci OpMemberName %159 0 "injectionSwitch" 63e5c31af7Sopenharmony_ci OpName %161 "" 64e5c31af7Sopenharmony_ci OpName %225 "j" 65e5c31af7Sopenharmony_ci OpName %243 "gl_FragCoord" 66e5c31af7Sopenharmony_ci OpName %254 "grey" 67e5c31af7Sopenharmony_ci OpName %369 "_GLF_color" 68e5c31af7Sopenharmony_ci OpName %378 "buf1" 69e5c31af7Sopenharmony_ci OpMemberName %378 0 "resolution" 70e5c31af7Sopenharmony_ci OpName %380 "" 71e5c31af7Sopenharmony_ci OpMemberDecorate %159 0 Offset 0 72e5c31af7Sopenharmony_ci OpDecorate %159 Block 73e5c31af7Sopenharmony_ci OpDecorate %161 DescriptorSet 0 74e5c31af7Sopenharmony_ci OpDecorate %161 Binding 0 75e5c31af7Sopenharmony_ci OpDecorate %243 BuiltIn FragCoord 76e5c31af7Sopenharmony_ci OpDecorate %369 Location 0 77e5c31af7Sopenharmony_ci OpMemberDecorate %378 0 Offset 0 78e5c31af7Sopenharmony_ci OpDecorate %378 Block 79e5c31af7Sopenharmony_ci OpDecorate %380 DescriptorSet 0 80e5c31af7Sopenharmony_ci OpDecorate %380 Binding 1 81e5c31af7Sopenharmony_ci %2 = OpTypeVoid 82e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 83e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 84e5c31af7Sopenharmony_ci %7 = OpTypePointer Function %6 85e5c31af7Sopenharmony_ci %8 = OpTypeFunction %2 %7 %7 %7 86e5c31af7Sopenharmony_ci %22 = OpConstant %6 1 87e5c31af7Sopenharmony_ci %31 = OpTypeBool 88e5c31af7Sopenharmony_ci %37 = OpTypeInt 32 0 89e5c31af7Sopenharmony_ci %38 = OpConstant %37 10 90e5c31af7Sopenharmony_ci %39 = OpTypeArray %6 %38 91e5c31af7Sopenharmony_ci %40 = OpTypePointer Private %39 92e5c31af7Sopenharmony_ci %41 = OpVariable %40 Private 93e5c31af7Sopenharmony_ci %43 = OpTypePointer Private %6 94e5c31af7Sopenharmony_ci %52 = OpVariable %40 Private 95e5c31af7Sopenharmony_ci %74 = OpConstant %6 10 96e5c31af7Sopenharmony_ci %105 = OpConstant %6 0 97e5c31af7Sopenharmony_ci %107 = OpConstant %6 9 98e5c31af7Sopenharmony_ci %136 = OpConstant %6 2 99e5c31af7Sopenharmony_ci %157 = OpTypeFloat 32 100e5c31af7Sopenharmony_ci %158 = OpTypeVector %157 2 101e5c31af7Sopenharmony_ci %159 = OpTypeStruct %158 102e5c31af7Sopenharmony_ci %160 = OpTypePointer Uniform %159 103e5c31af7Sopenharmony_ci %161 = OpVariable %160 Uniform 104e5c31af7Sopenharmony_ci %162 = OpConstant %37 0 105e5c31af7Sopenharmony_ci %163 = OpTypePointer Uniform %157 106e5c31af7Sopenharmony_ci %184 = OpConstant %6 4 107e5c31af7Sopenharmony_ci %188 = OpConstant %6 3 108e5c31af7Sopenharmony_ci %201 = OpConstant %6 -1 109e5c31af7Sopenharmony_ci %205 = OpConstant %6 -2 110e5c31af7Sopenharmony_ci %209 = OpConstant %6 -3 111e5c31af7Sopenharmony_ci %213 = OpConstant %6 -4 112e5c31af7Sopenharmony_ci %217 = OpConstant %6 -5 113e5c31af7Sopenharmony_ci %241 = OpTypeVector %157 4 114e5c31af7Sopenharmony_ci %242 = OpTypePointer Input %241 115e5c31af7Sopenharmony_ci %243 = OpVariable %242 Input 116e5c31af7Sopenharmony_ci %244 = OpConstant %37 1 117e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %157 118e5c31af7Sopenharmony_ci %249 = OpConstant %6 30 119e5c31af7Sopenharmony_ci %253 = OpTypePointer Function %157 120e5c31af7Sopenharmony_ci %255 = OpConstant %157 0.5 121e5c31af7Sopenharmony_ci %259 = OpConstant %157 10 122e5c31af7Sopenharmony_ci %266 = OpConstant %6 60 123e5c31af7Sopenharmony_ci %279 = OpConstant %6 90 124e5c31af7Sopenharmony_ci %292 = OpConstant %6 120 125e5c31af7Sopenharmony_ci %305 = OpConstant %6 150 126e5c31af7Sopenharmony_ci %314 = OpConstant %6 180 127e5c31af7Sopenharmony_ci %318 = OpConstant %6 5 128e5c31af7Sopenharmony_ci %328 = OpConstant %6 210 129e5c31af7Sopenharmony_ci %332 = OpConstant %6 6 130e5c31af7Sopenharmony_ci %342 = OpConstant %6 240 131e5c31af7Sopenharmony_ci %346 = OpConstant %6 7 132e5c31af7Sopenharmony_ci %356 = OpConstant %6 270 133e5c31af7Sopenharmony_ci %360 = OpConstant %6 8 134e5c31af7Sopenharmony_ci %368 = OpTypePointer Output %241 135e5c31af7Sopenharmony_ci %369 = OpVariable %368 Output 136e5c31af7Sopenharmony_ci %371 = OpTypeVector %157 3 137e5c31af7Sopenharmony_ci %373 = OpConstant %157 1 138e5c31af7Sopenharmony_ci %378 = OpTypeStruct %158 139e5c31af7Sopenharmony_ci %379 = OpTypePointer Uniform %378 140e5c31af7Sopenharmony_ci %380 = OpVariable %379 Uniform 141e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 142e5c31af7Sopenharmony_ci %5 = OpLabel 143e5c31af7Sopenharmony_ci %156 = OpVariable %7 Function 144e5c31af7Sopenharmony_ci %225 = OpVariable %7 Function 145e5c31af7Sopenharmony_ci %254 = OpVariable %253 Function 146e5c31af7Sopenharmony_ci %164 = OpAccessChain %163 %161 %105 %162 147e5c31af7Sopenharmony_ci %165 = OpLoad %157 %164 148e5c31af7Sopenharmony_ci %166 = OpConvertFToS %6 %165 149e5c31af7Sopenharmony_ci OpStore %156 %166 150e5c31af7Sopenharmony_ci OpBranch %167 151e5c31af7Sopenharmony_ci %167 = OpLabel 152e5c31af7Sopenharmony_ci OpLoopMerge %169 %170 None 153e5c31af7Sopenharmony_ci OpBranch %168 154e5c31af7Sopenharmony_ci %168 = OpLabel 155e5c31af7Sopenharmony_ci %171 = OpLoad %6 %156 156e5c31af7Sopenharmony_ci OpSelectionMerge %182 None 157e5c31af7Sopenharmony_ci OpSwitch %171 %182 0 %172 1 %173 2 %174 3 %175 4 %176 5 %177 6 %178 7 %179 8 %180 9 %181 158e5c31af7Sopenharmony_ci %172 = OpLabel 159e5c31af7Sopenharmony_ci %183 = OpLoad %6 %156 160e5c31af7Sopenharmony_ci %185 = OpAccessChain %43 %41 %183 161e5c31af7Sopenharmony_ci OpStore %185 %184 162e5c31af7Sopenharmony_ci OpBranch %182 163e5c31af7Sopenharmony_ci %173 = OpLabel 164e5c31af7Sopenharmony_ci %187 = OpLoad %6 %156 165e5c31af7Sopenharmony_ci %189 = OpAccessChain %43 %41 %187 166e5c31af7Sopenharmony_ci OpStore %189 %188 167e5c31af7Sopenharmony_ci OpBranch %182 168e5c31af7Sopenharmony_ci %174 = OpLabel 169e5c31af7Sopenharmony_ci %191 = OpLoad %6 %156 170e5c31af7Sopenharmony_ci %192 = OpAccessChain %43 %41 %191 171e5c31af7Sopenharmony_ci OpStore %192 %136 172e5c31af7Sopenharmony_ci OpBranch %182 173e5c31af7Sopenharmony_ci %175 = OpLabel 174e5c31af7Sopenharmony_ci %194 = OpLoad %6 %156 175e5c31af7Sopenharmony_ci %195 = OpAccessChain %43 %41 %194 176e5c31af7Sopenharmony_ci OpStore %195 %22 177e5c31af7Sopenharmony_ci OpBranch %182 178e5c31af7Sopenharmony_ci %176 = OpLabel 179e5c31af7Sopenharmony_ci %197 = OpLoad %6 %156 180e5c31af7Sopenharmony_ci %198 = OpAccessChain %43 %41 %197 181e5c31af7Sopenharmony_ci OpStore %198 %105 182e5c31af7Sopenharmony_ci OpBranch %182 183e5c31af7Sopenharmony_ci %177 = OpLabel 184e5c31af7Sopenharmony_ci %200 = OpLoad %6 %156 185e5c31af7Sopenharmony_ci %202 = OpAccessChain %43 %41 %200 186e5c31af7Sopenharmony_ci OpStore %202 %201 187e5c31af7Sopenharmony_ci OpBranch %182 188e5c31af7Sopenharmony_ci %178 = OpLabel 189e5c31af7Sopenharmony_ci %204 = OpLoad %6 %156 190e5c31af7Sopenharmony_ci %206 = OpAccessChain %43 %41 %204 191e5c31af7Sopenharmony_ci OpStore %206 %205 192e5c31af7Sopenharmony_ci OpBranch %182 193e5c31af7Sopenharmony_ci %179 = OpLabel 194e5c31af7Sopenharmony_ci %208 = OpLoad %6 %156 195e5c31af7Sopenharmony_ci %210 = OpAccessChain %43 %41 %208 196e5c31af7Sopenharmony_ci OpStore %210 %209 197e5c31af7Sopenharmony_ci OpBranch %182 198e5c31af7Sopenharmony_ci %180 = OpLabel 199e5c31af7Sopenharmony_ci %212 = OpLoad %6 %156 200e5c31af7Sopenharmony_ci %214 = OpAccessChain %43 %41 %212 201e5c31af7Sopenharmony_ci OpStore %214 %213 202e5c31af7Sopenharmony_ci OpBranch %182 203e5c31af7Sopenharmony_ci %181 = OpLabel 204e5c31af7Sopenharmony_ci %216 = OpLoad %6 %156 205e5c31af7Sopenharmony_ci %218 = OpAccessChain %43 %41 %216 206e5c31af7Sopenharmony_ci OpStore %218 %217 207e5c31af7Sopenharmony_ci OpBranch %182 208e5c31af7Sopenharmony_ci %182 = OpLabel 209e5c31af7Sopenharmony_ci %221 = OpLoad %6 %156 210e5c31af7Sopenharmony_ci %222 = OpIAdd %6 %221 %22 211e5c31af7Sopenharmony_ci OpStore %156 %222 212e5c31af7Sopenharmony_ci OpBranch %170 213e5c31af7Sopenharmony_ci %170 = OpLabel 214e5c31af7Sopenharmony_ci %223 = OpLoad %6 %156 215e5c31af7Sopenharmony_ci %224 = OpSLessThan %31 %223 %74 216e5c31af7Sopenharmony_ci OpBranchConditional %224 %167 %169 217e5c31af7Sopenharmony_ci %169 = OpLabel 218e5c31af7Sopenharmony_ci OpStore %225 %105 219e5c31af7Sopenharmony_ci OpBranch %226 220e5c31af7Sopenharmony_ci %226 = OpLabel 221e5c31af7Sopenharmony_ci OpLoopMerge %228 %229 None 222e5c31af7Sopenharmony_ci OpBranch %230 223e5c31af7Sopenharmony_ci %230 = OpLabel 224e5c31af7Sopenharmony_ci %231 = OpLoad %6 %225 225e5c31af7Sopenharmony_ci %232 = OpSLessThan %31 %231 %74 226e5c31af7Sopenharmony_ci OpBranchConditional %232 %227 %228 227e5c31af7Sopenharmony_ci %227 = OpLabel 228e5c31af7Sopenharmony_ci %233 = OpLoad %6 %225 229e5c31af7Sopenharmony_ci %234 = OpLoad %6 %225 230e5c31af7Sopenharmony_ci %235 = OpAccessChain %43 %41 %234 231e5c31af7Sopenharmony_ci %236 = OpLoad %6 %235 232e5c31af7Sopenharmony_ci %237 = OpAccessChain %43 %52 %233 233e5c31af7Sopenharmony_ci OpStore %237 %236 234e5c31af7Sopenharmony_ci OpBranch %229 235e5c31af7Sopenharmony_ci %229 = OpLabel 236e5c31af7Sopenharmony_ci %238 = OpLoad %6 %225 237e5c31af7Sopenharmony_ci %239 = OpIAdd %6 %238 %22 238e5c31af7Sopenharmony_ci OpStore %225 %239 239e5c31af7Sopenharmony_ci OpBranch %226 240e5c31af7Sopenharmony_ci %228 = OpLabel 241e5c31af7Sopenharmony_ci %240 = OpFunctionCall %2 %14 242e5c31af7Sopenharmony_ci %246 = OpAccessChain %245 %243 %244 243e5c31af7Sopenharmony_ci %247 = OpLoad %157 %246 244e5c31af7Sopenharmony_ci %248 = OpConvertFToS %6 %247 245e5c31af7Sopenharmony_ci %250 = OpSLessThan %31 %248 %249 246e5c31af7Sopenharmony_ci OpSelectionMerge %252 None 247e5c31af7Sopenharmony_ci OpBranchConditional %250 %251 %262 248e5c31af7Sopenharmony_ci %251 = OpLabel 249e5c31af7Sopenharmony_ci %256 = OpAccessChain %43 %41 %105 250e5c31af7Sopenharmony_ci %257 = OpLoad %6 %256 251e5c31af7Sopenharmony_ci %258 = OpConvertSToF %157 %257 252e5c31af7Sopenharmony_ci %260 = OpFDiv %157 %258 %259 253e5c31af7Sopenharmony_ci %261 = OpFAdd %157 %255 %260 254e5c31af7Sopenharmony_ci OpStore %254 %261 255e5c31af7Sopenharmony_ci OpBranch %252 256e5c31af7Sopenharmony_ci %262 = OpLabel 257e5c31af7Sopenharmony_ci %263 = OpAccessChain %245 %243 %244 258e5c31af7Sopenharmony_ci %264 = OpLoad %157 %263 259e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 260e5c31af7Sopenharmony_ci %267 = OpSLessThan %31 %265 %266 261e5c31af7Sopenharmony_ci OpSelectionMerge %269 None 262e5c31af7Sopenharmony_ci OpBranchConditional %267 %268 %275 263e5c31af7Sopenharmony_ci %268 = OpLabel 264e5c31af7Sopenharmony_ci %270 = OpAccessChain %43 %41 %22 265e5c31af7Sopenharmony_ci %271 = OpLoad %6 %270 266e5c31af7Sopenharmony_ci %272 = OpConvertSToF %157 %271 267e5c31af7Sopenharmony_ci %273 = OpFDiv %157 %272 %259 268e5c31af7Sopenharmony_ci %274 = OpFAdd %157 %255 %273 269e5c31af7Sopenharmony_ci OpStore %254 %274 270e5c31af7Sopenharmony_ci OpBranch %269 271e5c31af7Sopenharmony_ci %275 = OpLabel 272e5c31af7Sopenharmony_ci %276 = OpAccessChain %245 %243 %244 273e5c31af7Sopenharmony_ci %277 = OpLoad %157 %276 274e5c31af7Sopenharmony_ci %278 = OpConvertFToS %6 %277 275e5c31af7Sopenharmony_ci %280 = OpSLessThan %31 %278 %279 276e5c31af7Sopenharmony_ci OpSelectionMerge %282 None 277e5c31af7Sopenharmony_ci OpBranchConditional %280 %281 %288 278e5c31af7Sopenharmony_ci %281 = OpLabel 279e5c31af7Sopenharmony_ci %283 = OpAccessChain %43 %41 %136 280e5c31af7Sopenharmony_ci %284 = OpLoad %6 %283 281e5c31af7Sopenharmony_ci %285 = OpConvertSToF %157 %284 282e5c31af7Sopenharmony_ci %286 = OpFDiv %157 %285 %259 283e5c31af7Sopenharmony_ci %287 = OpFAdd %157 %255 %286 284e5c31af7Sopenharmony_ci OpStore %254 %287 285e5c31af7Sopenharmony_ci OpBranch %282 286e5c31af7Sopenharmony_ci %288 = OpLabel 287e5c31af7Sopenharmony_ci %289 = OpAccessChain %245 %243 %244 288e5c31af7Sopenharmony_ci %290 = OpLoad %157 %289 289e5c31af7Sopenharmony_ci %291 = OpConvertFToS %6 %290 290e5c31af7Sopenharmony_ci %293 = OpSLessThan %31 %291 %292 291e5c31af7Sopenharmony_ci OpSelectionMerge %295 None 292e5c31af7Sopenharmony_ci OpBranchConditional %293 %294 %301 293e5c31af7Sopenharmony_ci %294 = OpLabel 294e5c31af7Sopenharmony_ci %296 = OpAccessChain %43 %41 %188 295e5c31af7Sopenharmony_ci %297 = OpLoad %6 %296 296e5c31af7Sopenharmony_ci %298 = OpConvertSToF %157 %297 297e5c31af7Sopenharmony_ci %299 = OpFDiv %157 %298 %259 298e5c31af7Sopenharmony_ci %300 = OpFAdd %157 %255 %299 299e5c31af7Sopenharmony_ci OpStore %254 %300 300e5c31af7Sopenharmony_ci OpBranch %295 301e5c31af7Sopenharmony_ci %301 = OpLabel 302e5c31af7Sopenharmony_ci %302 = OpAccessChain %245 %243 %244 303e5c31af7Sopenharmony_ci %303 = OpLoad %157 %302 304e5c31af7Sopenharmony_ci %304 = OpConvertFToS %6 %303 305e5c31af7Sopenharmony_ci %306 = OpSLessThan %31 %304 %305 306e5c31af7Sopenharmony_ci OpSelectionMerge %308 None 307e5c31af7Sopenharmony_ci OpBranchConditional %306 %307 %310 308e5c31af7Sopenharmony_ci %307 = OpLabel 309e5c31af7Sopenharmony_ci OpKill 310e5c31af7Sopenharmony_ci %310 = OpLabel 311e5c31af7Sopenharmony_ci %311 = OpAccessChain %245 %243 %244 312e5c31af7Sopenharmony_ci %312 = OpLoad %157 %311 313e5c31af7Sopenharmony_ci %313 = OpConvertFToS %6 %312 314e5c31af7Sopenharmony_ci %315 = OpSLessThan %31 %313 %314 315e5c31af7Sopenharmony_ci OpSelectionMerge %317 None 316e5c31af7Sopenharmony_ci OpBranchConditional %315 %316 %324 317e5c31af7Sopenharmony_ci %316 = OpLabel 318e5c31af7Sopenharmony_ci %319 = OpAccessChain %43 %41 %318 319e5c31af7Sopenharmony_ci %320 = OpLoad %6 %319 320e5c31af7Sopenharmony_ci %321 = OpConvertSToF %157 %320 321e5c31af7Sopenharmony_ci %322 = OpFDiv %157 %321 %259 322e5c31af7Sopenharmony_ci %323 = OpFAdd %157 %255 %322 323e5c31af7Sopenharmony_ci OpStore %254 %323 324e5c31af7Sopenharmony_ci OpBranch %317 325e5c31af7Sopenharmony_ci %324 = OpLabel 326e5c31af7Sopenharmony_ci %325 = OpAccessChain %245 %243 %244 327e5c31af7Sopenharmony_ci %326 = OpLoad %157 %325 328e5c31af7Sopenharmony_ci %327 = OpConvertFToS %6 %326 329e5c31af7Sopenharmony_ci %329 = OpSLessThan %31 %327 %328 330e5c31af7Sopenharmony_ci OpSelectionMerge %331 None 331e5c31af7Sopenharmony_ci OpBranchConditional %329 %330 %338 332e5c31af7Sopenharmony_ci %330 = OpLabel 333e5c31af7Sopenharmony_ci %333 = OpAccessChain %43 %41 %332 334e5c31af7Sopenharmony_ci %334 = OpLoad %6 %333 335e5c31af7Sopenharmony_ci %335 = OpConvertSToF %157 %334 336e5c31af7Sopenharmony_ci %336 = OpFDiv %157 %335 %259 337e5c31af7Sopenharmony_ci %337 = OpFAdd %157 %255 %336 338e5c31af7Sopenharmony_ci OpStore %254 %337 339e5c31af7Sopenharmony_ci OpBranch %331 340e5c31af7Sopenharmony_ci %338 = OpLabel 341e5c31af7Sopenharmony_ci %339 = OpAccessChain %245 %243 %244 342e5c31af7Sopenharmony_ci %340 = OpLoad %157 %339 343e5c31af7Sopenharmony_ci %341 = OpConvertFToS %6 %340 344e5c31af7Sopenharmony_ci %343 = OpSLessThan %31 %341 %342 345e5c31af7Sopenharmony_ci OpSelectionMerge %345 None 346e5c31af7Sopenharmony_ci OpBranchConditional %343 %344 %352 347e5c31af7Sopenharmony_ci %344 = OpLabel 348e5c31af7Sopenharmony_ci %347 = OpAccessChain %43 %41 %346 349e5c31af7Sopenharmony_ci %348 = OpLoad %6 %347 350e5c31af7Sopenharmony_ci %349 = OpConvertSToF %157 %348 351e5c31af7Sopenharmony_ci %350 = OpFDiv %157 %349 %259 352e5c31af7Sopenharmony_ci %351 = OpFAdd %157 %255 %350 353e5c31af7Sopenharmony_ci OpStore %254 %351 354e5c31af7Sopenharmony_ci OpBranch %345 355e5c31af7Sopenharmony_ci %352 = OpLabel 356e5c31af7Sopenharmony_ci %353 = OpAccessChain %245 %243 %244 357e5c31af7Sopenharmony_ci %354 = OpLoad %157 %353 358e5c31af7Sopenharmony_ci %355 = OpConvertFToS %6 %354 359e5c31af7Sopenharmony_ci %357 = OpSLessThan %31 %355 %356 360e5c31af7Sopenharmony_ci OpSelectionMerge %359 None 361e5c31af7Sopenharmony_ci OpBranchConditional %357 %358 %366 362e5c31af7Sopenharmony_ci %358 = OpLabel 363e5c31af7Sopenharmony_ci %361 = OpAccessChain %43 %41 %360 364e5c31af7Sopenharmony_ci %362 = OpLoad %6 %361 365e5c31af7Sopenharmony_ci %363 = OpConvertSToF %157 %362 366e5c31af7Sopenharmony_ci %364 = OpFDiv %157 %363 %259 367e5c31af7Sopenharmony_ci %365 = OpFAdd %157 %255 %364 368e5c31af7Sopenharmony_ci OpStore %254 %365 369e5c31af7Sopenharmony_ci OpBranch %359 370e5c31af7Sopenharmony_ci %366 = OpLabel 371e5c31af7Sopenharmony_ci OpKill 372e5c31af7Sopenharmony_ci %359 = OpLabel 373e5c31af7Sopenharmony_ci OpBranch %345 374e5c31af7Sopenharmony_ci %345 = OpLabel 375e5c31af7Sopenharmony_ci OpBranch %331 376e5c31af7Sopenharmony_ci %331 = OpLabel 377e5c31af7Sopenharmony_ci OpBranch %317 378e5c31af7Sopenharmony_ci %317 = OpLabel 379e5c31af7Sopenharmony_ci OpBranch %308 380e5c31af7Sopenharmony_ci %308 = OpLabel 381e5c31af7Sopenharmony_ci OpBranch %295 382e5c31af7Sopenharmony_ci %295 = OpLabel 383e5c31af7Sopenharmony_ci OpBranch %282 384e5c31af7Sopenharmony_ci %282 = OpLabel 385e5c31af7Sopenharmony_ci OpBranch %269 386e5c31af7Sopenharmony_ci %269 = OpLabel 387e5c31af7Sopenharmony_ci OpBranch %252 388e5c31af7Sopenharmony_ci %252 = OpLabel 389e5c31af7Sopenharmony_ci %370 = OpLoad %157 %254 390e5c31af7Sopenharmony_ci %372 = OpCompositeConstruct %371 %370 %370 %370 391e5c31af7Sopenharmony_ci %374 = OpCompositeExtract %157 %372 0 392e5c31af7Sopenharmony_ci %375 = OpCompositeExtract %157 %372 1 393e5c31af7Sopenharmony_ci %376 = OpCompositeExtract %157 %372 2 394e5c31af7Sopenharmony_ci %377 = OpCompositeConstruct %241 %374 %375 %376 %373 395e5c31af7Sopenharmony_ci OpStore %369 %377 396e5c31af7Sopenharmony_ci OpReturn 397e5c31af7Sopenharmony_ci OpFunctionEnd 398e5c31af7Sopenharmony_ci %12 = OpFunction %2 None %8 399e5c31af7Sopenharmony_ci %9 = OpFunctionParameter %7 400e5c31af7Sopenharmony_ci %10 = OpFunctionParameter %7 401e5c31af7Sopenharmony_ci %11 = OpFunctionParameter %7 402e5c31af7Sopenharmony_ci %13 = OpLabel 403e5c31af7Sopenharmony_ci %16 = OpVariable %7 Function 404e5c31af7Sopenharmony_ci %18 = OpVariable %7 Function 405e5c31af7Sopenharmony_ci %20 = OpVariable %7 Function 406e5c31af7Sopenharmony_ci %87 = OpVariable %7 Function 407e5c31af7Sopenharmony_ci %17 = OpLoad %6 %9 408e5c31af7Sopenharmony_ci OpStore %16 %17 409e5c31af7Sopenharmony_ci %19 = OpLoad %6 %9 410e5c31af7Sopenharmony_ci OpStore %18 %19 411e5c31af7Sopenharmony_ci %21 = OpLoad %6 %10 412e5c31af7Sopenharmony_ci %23 = OpIAdd %6 %21 %22 413e5c31af7Sopenharmony_ci OpStore %20 %23 414e5c31af7Sopenharmony_ci OpBranch %24 415e5c31af7Sopenharmony_ci %24 = OpLabel 416e5c31af7Sopenharmony_ci OpLoopMerge %26 %27 None 417e5c31af7Sopenharmony_ci OpBranch %28 418e5c31af7Sopenharmony_ci %28 = OpLabel 419e5c31af7Sopenharmony_ci %29 = OpLoad %6 %18 420e5c31af7Sopenharmony_ci %30 = OpLoad %6 %10 421e5c31af7Sopenharmony_ci %32 = OpSLessThanEqual %31 %29 %30 422e5c31af7Sopenharmony_ci %33 = OpLoad %6 %20 423e5c31af7Sopenharmony_ci %34 = OpLoad %6 %11 424e5c31af7Sopenharmony_ci %35 = OpSLessThanEqual %31 %33 %34 425e5c31af7Sopenharmony_ci %36 = OpLogicalAnd %31 %32 %35 426e5c31af7Sopenharmony_ci OpBranchConditional %36 %25 %26 427e5c31af7Sopenharmony_ci %25 = OpLabel 428e5c31af7Sopenharmony_ci %42 = OpLoad %6 %18 429e5c31af7Sopenharmony_ci %44 = OpAccessChain %43 %41 %42 430e5c31af7Sopenharmony_ci %45 = OpLoad %6 %44 431e5c31af7Sopenharmony_ci %46 = OpLoad %6 %20 432e5c31af7Sopenharmony_ci %47 = OpAccessChain %43 %41 %46 433e5c31af7Sopenharmony_ci %48 = OpLoad %6 %47 434e5c31af7Sopenharmony_ci %49 = OpSLessThan %31 %45 %48 435e5c31af7Sopenharmony_ci OpSelectionMerge %51 None 436e5c31af7Sopenharmony_ci OpBranchConditional %49 %50 %60 437e5c31af7Sopenharmony_ci %50 = OpLabel 438e5c31af7Sopenharmony_ci %53 = OpLoad %6 %16 439e5c31af7Sopenharmony_ci %54 = OpIAdd %6 %53 %22 440e5c31af7Sopenharmony_ci OpStore %16 %54 441e5c31af7Sopenharmony_ci %55 = OpLoad %6 %18 442e5c31af7Sopenharmony_ci %56 = OpIAdd %6 %55 %22 443e5c31af7Sopenharmony_ci OpStore %18 %56 444e5c31af7Sopenharmony_ci %57 = OpAccessChain %43 %41 %55 445e5c31af7Sopenharmony_ci %58 = OpLoad %6 %57 446e5c31af7Sopenharmony_ci %59 = OpAccessChain %43 %52 %53 447e5c31af7Sopenharmony_ci OpStore %59 %58 448e5c31af7Sopenharmony_ci OpBranch %51 449e5c31af7Sopenharmony_ci %60 = OpLabel 450e5c31af7Sopenharmony_ci %61 = OpLoad %6 %16 451e5c31af7Sopenharmony_ci %62 = OpIAdd %6 %61 %22 452e5c31af7Sopenharmony_ci OpStore %16 %62 453e5c31af7Sopenharmony_ci %63 = OpLoad %6 %20 454e5c31af7Sopenharmony_ci %64 = OpIAdd %6 %63 %22 455e5c31af7Sopenharmony_ci OpStore %20 %64 456e5c31af7Sopenharmony_ci %65 = OpAccessChain %43 %41 %63 457e5c31af7Sopenharmony_ci %66 = OpLoad %6 %65 458e5c31af7Sopenharmony_ci %67 = OpAccessChain %43 %52 %61 459e5c31af7Sopenharmony_ci OpStore %67 %66 460e5c31af7Sopenharmony_ci OpBranch %51 461e5c31af7Sopenharmony_ci %51 = OpLabel 462e5c31af7Sopenharmony_ci OpBranch %27 463e5c31af7Sopenharmony_ci %27 = OpLabel 464e5c31af7Sopenharmony_ci OpBranch %24 465e5c31af7Sopenharmony_ci %26 = OpLabel 466e5c31af7Sopenharmony_ci OpBranch %68 467e5c31af7Sopenharmony_ci %68 = OpLabel 468e5c31af7Sopenharmony_ci OpLoopMerge %70 %71 None 469e5c31af7Sopenharmony_ci OpBranch %72 470e5c31af7Sopenharmony_ci %72 = OpLabel 471e5c31af7Sopenharmony_ci %73 = OpLoad %6 %18 472e5c31af7Sopenharmony_ci %75 = OpSLessThan %31 %73 %74 473e5c31af7Sopenharmony_ci %76 = OpLoad %6 %18 474e5c31af7Sopenharmony_ci %77 = OpLoad %6 %10 475e5c31af7Sopenharmony_ci %78 = OpSLessThanEqual %31 %76 %77 476e5c31af7Sopenharmony_ci %79 = OpLogicalAnd %31 %75 %78 477e5c31af7Sopenharmony_ci OpBranchConditional %79 %69 %70 478e5c31af7Sopenharmony_ci %69 = OpLabel 479e5c31af7Sopenharmony_ci %80 = OpLoad %6 %16 480e5c31af7Sopenharmony_ci %81 = OpIAdd %6 %80 %22 481e5c31af7Sopenharmony_ci OpStore %16 %81 482e5c31af7Sopenharmony_ci %82 = OpLoad %6 %18 483e5c31af7Sopenharmony_ci %83 = OpIAdd %6 %82 %22 484e5c31af7Sopenharmony_ci OpStore %18 %83 485e5c31af7Sopenharmony_ci %84 = OpAccessChain %43 %41 %82 486e5c31af7Sopenharmony_ci %85 = OpLoad %6 %84 487e5c31af7Sopenharmony_ci %86 = OpAccessChain %43 %52 %80 488e5c31af7Sopenharmony_ci OpStore %86 %85 489e5c31af7Sopenharmony_ci OpBranch %71 490e5c31af7Sopenharmony_ci %71 = OpLabel 491e5c31af7Sopenharmony_ci OpBranch %68 492e5c31af7Sopenharmony_ci %70 = OpLabel 493e5c31af7Sopenharmony_ci %88 = OpLoad %6 %9 494e5c31af7Sopenharmony_ci OpStore %87 %88 495e5c31af7Sopenharmony_ci OpBranch %89 496e5c31af7Sopenharmony_ci %89 = OpLabel 497e5c31af7Sopenharmony_ci OpLoopMerge %91 %92 None 498e5c31af7Sopenharmony_ci OpBranch %93 499e5c31af7Sopenharmony_ci %93 = OpLabel 500e5c31af7Sopenharmony_ci %94 = OpLoad %6 %87 501e5c31af7Sopenharmony_ci %95 = OpLoad %6 %11 502e5c31af7Sopenharmony_ci %96 = OpSLessThanEqual %31 %94 %95 503e5c31af7Sopenharmony_ci OpBranchConditional %96 %90 %91 504e5c31af7Sopenharmony_ci %90 = OpLabel 505e5c31af7Sopenharmony_ci %97 = OpLoad %6 %87 506e5c31af7Sopenharmony_ci %98 = OpLoad %6 %87 507e5c31af7Sopenharmony_ci %99 = OpAccessChain %43 %52 %98 508e5c31af7Sopenharmony_ci %100 = OpLoad %6 %99 509e5c31af7Sopenharmony_ci %101 = OpAccessChain %43 %41 %97 510e5c31af7Sopenharmony_ci OpStore %101 %100 511e5c31af7Sopenharmony_ci OpBranch %92 512e5c31af7Sopenharmony_ci %92 = OpLabel 513e5c31af7Sopenharmony_ci %102 = OpLoad %6 %87 514e5c31af7Sopenharmony_ci %103 = OpIAdd %6 %102 %22 515e5c31af7Sopenharmony_ci OpStore %87 %103 516e5c31af7Sopenharmony_ci OpBranch %89 517e5c31af7Sopenharmony_ci %91 = OpLabel 518e5c31af7Sopenharmony_ci OpReturn 519e5c31af7Sopenharmony_ci OpFunctionEnd 520e5c31af7Sopenharmony_ci %14 = OpFunction %2 None %3 521e5c31af7Sopenharmony_ci %15 = OpLabel 522e5c31af7Sopenharmony_ci %104 = OpVariable %7 Function 523e5c31af7Sopenharmony_ci %106 = OpVariable %7 Function 524e5c31af7Sopenharmony_ci %108 = OpVariable %7 Function 525e5c31af7Sopenharmony_ci %117 = OpVariable %7 Function 526e5c31af7Sopenharmony_ci %127 = OpVariable %7 Function 527e5c31af7Sopenharmony_ci %129 = OpVariable %7 Function 528e5c31af7Sopenharmony_ci %134 = OpVariable %7 Function 529e5c31af7Sopenharmony_ci %143 = OpVariable %7 Function 530e5c31af7Sopenharmony_ci %145 = OpVariable %7 Function 531e5c31af7Sopenharmony_ci %147 = OpVariable %7 Function 532e5c31af7Sopenharmony_ci OpStore %104 %105 533e5c31af7Sopenharmony_ci OpStore %106 %107 534e5c31af7Sopenharmony_ci OpStore %108 %22 535e5c31af7Sopenharmony_ci OpBranch %109 536e5c31af7Sopenharmony_ci %109 = OpLabel 537e5c31af7Sopenharmony_ci OpLoopMerge %111 %112 None 538e5c31af7Sopenharmony_ci OpBranch %113 539e5c31af7Sopenharmony_ci %113 = OpLabel 540e5c31af7Sopenharmony_ci %114 = OpLoad %6 %108 541e5c31af7Sopenharmony_ci %115 = OpLoad %6 %106 542e5c31af7Sopenharmony_ci %116 = OpSLessThanEqual %31 %114 %115 543e5c31af7Sopenharmony_ci OpBranchConditional %116 %110 %111 544e5c31af7Sopenharmony_ci %110 = OpLabel 545e5c31af7Sopenharmony_ci %118 = OpLoad %6 %104 546e5c31af7Sopenharmony_ci OpStore %117 %118 547e5c31af7Sopenharmony_ci OpBranch %119 548e5c31af7Sopenharmony_ci %119 = OpLabel 549e5c31af7Sopenharmony_ci OpLoopMerge %121 %122 None 550e5c31af7Sopenharmony_ci OpBranch %123 551e5c31af7Sopenharmony_ci %123 = OpLabel 552e5c31af7Sopenharmony_ci %124 = OpLoad %6 %117 553e5c31af7Sopenharmony_ci %125 = OpLoad %6 %106 554e5c31af7Sopenharmony_ci %126 = OpSLessThan %31 %124 %125 555e5c31af7Sopenharmony_ci OpBranchConditional %126 %120 %121 556e5c31af7Sopenharmony_ci %120 = OpLabel 557e5c31af7Sopenharmony_ci %128 = OpLoad %6 %117 558e5c31af7Sopenharmony_ci OpStore %127 %128 559e5c31af7Sopenharmony_ci %130 = OpLoad %6 %117 560e5c31af7Sopenharmony_ci %131 = OpLoad %6 %108 561e5c31af7Sopenharmony_ci %132 = OpIAdd %6 %130 %131 562e5c31af7Sopenharmony_ci %133 = OpISub %6 %132 %22 563e5c31af7Sopenharmony_ci OpStore %129 %133 564e5c31af7Sopenharmony_ci %135 = OpLoad %6 %117 565e5c31af7Sopenharmony_ci %137 = OpLoad %6 %108 566e5c31af7Sopenharmony_ci %138 = OpIMul %6 %136 %137 567e5c31af7Sopenharmony_ci %139 = OpIAdd %6 %135 %138 568e5c31af7Sopenharmony_ci %140 = OpISub %6 %139 %22 569e5c31af7Sopenharmony_ci %141 = OpLoad %6 %106 570e5c31af7Sopenharmony_ci %142 = OpExtInst %6 %1 SMin %140 %141 571e5c31af7Sopenharmony_ci OpStore %134 %142 572e5c31af7Sopenharmony_ci %144 = OpLoad %6 %127 573e5c31af7Sopenharmony_ci OpStore %143 %144 574e5c31af7Sopenharmony_ci %146 = OpLoad %6 %129 575e5c31af7Sopenharmony_ci OpStore %145 %146 576e5c31af7Sopenharmony_ci %148 = OpLoad %6 %134 577e5c31af7Sopenharmony_ci OpStore %147 %148 578e5c31af7Sopenharmony_ci %149 = OpFunctionCall %2 %12 %143 %145 %147 579e5c31af7Sopenharmony_ci OpBranch %122 580e5c31af7Sopenharmony_ci %122 = OpLabel 581e5c31af7Sopenharmony_ci %150 = OpLoad %6 %108 582e5c31af7Sopenharmony_ci %151 = OpIMul %6 %136 %150 583e5c31af7Sopenharmony_ci %152 = OpLoad %6 %117 584e5c31af7Sopenharmony_ci %153 = OpIAdd %6 %152 %151 585e5c31af7Sopenharmony_ci OpStore %117 %153 586e5c31af7Sopenharmony_ci OpBranch %119 587e5c31af7Sopenharmony_ci %121 = OpLabel 588e5c31af7Sopenharmony_ci OpBranch %112 589e5c31af7Sopenharmony_ci %112 = OpLabel 590e5c31af7Sopenharmony_ci %154 = OpLoad %6 %108 591e5c31af7Sopenharmony_ci %155 = OpIMul %6 %136 %154 592e5c31af7Sopenharmony_ci OpStore %108 %155 593e5c31af7Sopenharmony_ci OpBranch %109 594e5c31af7Sopenharmony_ci %111 = OpLabel 595e5c31af7Sopenharmony_ci OpReturn 596e5c31af7Sopenharmony_ci OpFunctionEnd 597e5c31af7Sopenharmony_ciEND 598e5c31af7Sopenharmony_ci 599e5c31af7Sopenharmony_ci# uniforms for reference 600e5c31af7Sopenharmony_ci 601e5c31af7Sopenharmony_ci# injectionSwitch 602e5c31af7Sopenharmony_ciBUFFER reference_injectionSwitch DATA_TYPE vec2<float> DATA 603e5c31af7Sopenharmony_ci 0.0 1.0 604e5c31af7Sopenharmony_ciEND 605e5c31af7Sopenharmony_ci# resolution 606e5c31af7Sopenharmony_ciBUFFER reference_resolution DATA_TYPE vec2<float> DATA 607e5c31af7Sopenharmony_ci 256.0 256.0 608e5c31af7Sopenharmony_ciEND 609e5c31af7Sopenharmony_ci 610e5c31af7Sopenharmony_ciBUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM 611e5c31af7Sopenharmony_ci 612e5c31af7Sopenharmony_ciPIPELINE graphics reference_pipeline 613e5c31af7Sopenharmony_ci ATTACH reference_vertex_shader 614e5c31af7Sopenharmony_ci ATTACH reference_fragment_shader 615e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 616e5c31af7Sopenharmony_ci BIND BUFFER reference_framebuffer AS color LOCATION 0 617e5c31af7Sopenharmony_ci BIND BUFFER reference_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0 618e5c31af7Sopenharmony_ci BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 1 619e5c31af7Sopenharmony_ciEND 620e5c31af7Sopenharmony_ciCLEAR_COLOR reference_pipeline 0 0 0 255 621e5c31af7Sopenharmony_ci 622e5c31af7Sopenharmony_ciCLEAR reference_pipeline 623e5c31af7Sopenharmony_ciRUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 624e5c31af7Sopenharmony_ci 625e5c31af7Sopenharmony_ci 626e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 627e5c31af7Sopenharmony_ci 628e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 629e5c31af7Sopenharmony_ci; SPIR-V 630e5c31af7Sopenharmony_ci; Version: 1.0 631e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 632e5c31af7Sopenharmony_ci; Bound: 637 633e5c31af7Sopenharmony_ci; Schema: 0 634e5c31af7Sopenharmony_ci OpCapability Shader 635e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 636e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 637e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %243 %369 638e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 639e5c31af7Sopenharmony_ci OpSource ESSL 320 640e5c31af7Sopenharmony_ci OpName %4 "main" 641e5c31af7Sopenharmony_ci OpName %12 "merge(i1;i1;i1;" 642e5c31af7Sopenharmony_ci OpName %9 "from" 643e5c31af7Sopenharmony_ci OpName %10 "mid" 644e5c31af7Sopenharmony_ci OpName %11 "to" 645e5c31af7Sopenharmony_ci OpName %14 "mergeSort(" 646e5c31af7Sopenharmony_ci OpName %16 "k" 647e5c31af7Sopenharmony_ci OpName %18 "i" 648e5c31af7Sopenharmony_ci OpName %20 "j" 649e5c31af7Sopenharmony_ci OpName %41 "data" 650e5c31af7Sopenharmony_ci OpName %52 "temp" 651e5c31af7Sopenharmony_ci OpName %87 "i" 652e5c31af7Sopenharmony_ci OpName %104 "low" 653e5c31af7Sopenharmony_ci OpName %106 "high" 654e5c31af7Sopenharmony_ci OpName %108 "m" 655e5c31af7Sopenharmony_ci OpName %117 "i" 656e5c31af7Sopenharmony_ci OpName %127 "from" 657e5c31af7Sopenharmony_ci OpName %129 "mid" 658e5c31af7Sopenharmony_ci OpName %134 "to" 659e5c31af7Sopenharmony_ci OpName %143 "param" 660e5c31af7Sopenharmony_ci OpName %145 "param" 661e5c31af7Sopenharmony_ci OpName %147 "param" 662e5c31af7Sopenharmony_ci OpName %156 "i" 663e5c31af7Sopenharmony_ci OpName %159 "buf0" 664e5c31af7Sopenharmony_ci OpMemberName %159 0 "injectionSwitch" 665e5c31af7Sopenharmony_ci OpName %161 "" 666e5c31af7Sopenharmony_ci OpName %225 "j" 667e5c31af7Sopenharmony_ci OpName %243 "gl_FragCoord" 668e5c31af7Sopenharmony_ci OpName %254 "grey" 669e5c31af7Sopenharmony_ci OpName %369 "_GLF_color" 670e5c31af7Sopenharmony_ci OpName %378 "buf1" 671e5c31af7Sopenharmony_ci OpMemberName %378 0 "resolution" 672e5c31af7Sopenharmony_ci OpName %380 "" 673e5c31af7Sopenharmony_ci OpMemberDecorate %159 0 Offset 0 674e5c31af7Sopenharmony_ci OpDecorate %159 Block 675e5c31af7Sopenharmony_ci OpDecorate %161 DescriptorSet 0 676e5c31af7Sopenharmony_ci OpDecorate %161 Binding 0 677e5c31af7Sopenharmony_ci OpDecorate %243 BuiltIn FragCoord 678e5c31af7Sopenharmony_ci OpDecorate %369 Location 0 679e5c31af7Sopenharmony_ci OpMemberDecorate %378 0 Offset 0 680e5c31af7Sopenharmony_ci OpDecorate %378 Block 681e5c31af7Sopenharmony_ci OpDecorate %380 DescriptorSet 0 682e5c31af7Sopenharmony_ci OpDecorate %380 Binding 1 683e5c31af7Sopenharmony_ci %2 = OpTypeVoid 684e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 685e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 686e5c31af7Sopenharmony_ci %7 = OpTypePointer Function %6 687e5c31af7Sopenharmony_ci %8 = OpTypeFunction %2 %7 %7 %7 688e5c31af7Sopenharmony_ci %22 = OpConstant %6 1 689e5c31af7Sopenharmony_ci %31 = OpTypeBool 690e5c31af7Sopenharmony_ci %37 = OpTypeInt 32 0 691e5c31af7Sopenharmony_ci %38 = OpConstant %37 10 692e5c31af7Sopenharmony_ci %39 = OpTypeArray %6 %38 693e5c31af7Sopenharmony_ci %40 = OpTypePointer Private %39 694e5c31af7Sopenharmony_ci %41 = OpVariable %40 Private 695e5c31af7Sopenharmony_ci %43 = OpTypePointer Private %6 696e5c31af7Sopenharmony_ci %52 = OpVariable %40 Private 697e5c31af7Sopenharmony_ci %74 = OpConstant %6 10 698e5c31af7Sopenharmony_ci %105 = OpConstant %6 0 699e5c31af7Sopenharmony_ci %107 = OpConstant %6 9 700e5c31af7Sopenharmony_ci %136 = OpConstant %6 2 701e5c31af7Sopenharmony_ci %157 = OpTypeFloat 32 702e5c31af7Sopenharmony_ci %158 = OpTypeVector %157 2 703e5c31af7Sopenharmony_ci %159 = OpTypeStruct %158 704e5c31af7Sopenharmony_ci %160 = OpTypePointer Uniform %159 705e5c31af7Sopenharmony_ci %161 = OpVariable %160 Uniform 706e5c31af7Sopenharmony_ci %162 = OpConstant %37 0 707e5c31af7Sopenharmony_ci %163 = OpTypePointer Uniform %157 708e5c31af7Sopenharmony_ci %184 = OpConstant %6 4 709e5c31af7Sopenharmony_ci %188 = OpConstant %6 3 710e5c31af7Sopenharmony_ci %201 = OpConstant %6 -1 711e5c31af7Sopenharmony_ci %205 = OpConstant %6 -2 712e5c31af7Sopenharmony_ci %209 = OpConstant %6 -3 713e5c31af7Sopenharmony_ci %213 = OpConstant %6 -4 714e5c31af7Sopenharmony_ci %217 = OpConstant %6 -5 715e5c31af7Sopenharmony_ci %241 = OpTypeVector %157 4 716e5c31af7Sopenharmony_ci %242 = OpTypePointer Input %241 717e5c31af7Sopenharmony_ci %243 = OpVariable %242 Input 718e5c31af7Sopenharmony_ci %244 = OpConstant %37 1 719e5c31af7Sopenharmony_ci %245 = OpTypePointer Input %157 720e5c31af7Sopenharmony_ci %249 = OpConstant %6 30 721e5c31af7Sopenharmony_ci %253 = OpTypePointer Function %157 722e5c31af7Sopenharmony_ci %255 = OpConstant %157 0.5 723e5c31af7Sopenharmony_ci %259 = OpConstant %157 10 724e5c31af7Sopenharmony_ci %266 = OpConstant %6 60 725e5c31af7Sopenharmony_ci %279 = OpConstant %6 90 726e5c31af7Sopenharmony_ci %292 = OpConstant %6 120 727e5c31af7Sopenharmony_ci %305 = OpConstant %6 150 728e5c31af7Sopenharmony_ci %314 = OpConstant %6 180 729e5c31af7Sopenharmony_ci %318 = OpConstant %6 5 730e5c31af7Sopenharmony_ci %328 = OpConstant %6 210 731e5c31af7Sopenharmony_ci %332 = OpConstant %6 6 732e5c31af7Sopenharmony_ci %342 = OpConstant %6 240 733e5c31af7Sopenharmony_ci %346 = OpConstant %6 7 734e5c31af7Sopenharmony_ci %356 = OpConstant %6 270 735e5c31af7Sopenharmony_ci %360 = OpConstant %6 8 736e5c31af7Sopenharmony_ci %368 = OpTypePointer Output %241 737e5c31af7Sopenharmony_ci %369 = OpVariable %368 Output 738e5c31af7Sopenharmony_ci %371 = OpTypeVector %157 3 739e5c31af7Sopenharmony_ci %373 = OpConstant %157 1 740e5c31af7Sopenharmony_ci %378 = OpTypeStruct %158 741e5c31af7Sopenharmony_ci %379 = OpTypePointer Uniform %378 742e5c31af7Sopenharmony_ci %380 = OpVariable %379 Uniform 743e5c31af7Sopenharmony_ci %526 = OpConstantTrue %31 744e5c31af7Sopenharmony_ci %595 = OpConstant %157 256 745e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 746e5c31af7Sopenharmony_ci %5 = OpLabel 747e5c31af7Sopenharmony_ci %156 = OpVariable %7 Function 748e5c31af7Sopenharmony_ci %225 = OpVariable %7 Function 749e5c31af7Sopenharmony_ci %254 = OpVariable %253 Function 750e5c31af7Sopenharmony_ci %164 = OpAccessChain %163 %161 %105 %162 751e5c31af7Sopenharmony_ci %165 = OpLoad %157 %164 752e5c31af7Sopenharmony_ci %166 = OpConvertFToS %6 %165 753e5c31af7Sopenharmony_ci OpStore %156 %166 754e5c31af7Sopenharmony_ci OpBranch %167 755e5c31af7Sopenharmony_ci %167 = OpLabel 756e5c31af7Sopenharmony_ci OpLoopMerge %169 %170 None 757e5c31af7Sopenharmony_ci OpBranch %168 758e5c31af7Sopenharmony_ci %168 = OpLabel 759e5c31af7Sopenharmony_ci %171 = OpLoad %6 %156 760e5c31af7Sopenharmony_ci OpSelectionMerge %182 None 761e5c31af7Sopenharmony_ci OpSwitch %171 %182 0 %172 1 %173 2 %174 3 %175 4 %176 5 %177 6 %178 7 %179 8 %180 9 %181 762e5c31af7Sopenharmony_ci %172 = OpLabel 763e5c31af7Sopenharmony_ci %183 = OpLoad %6 %156 764e5c31af7Sopenharmony_ci %185 = OpAccessChain %43 %41 %183 765e5c31af7Sopenharmony_ci OpStore %185 %184 766e5c31af7Sopenharmony_ci OpBranch %182 767e5c31af7Sopenharmony_ci %173 = OpLabel 768e5c31af7Sopenharmony_ci %187 = OpLoad %6 %156 769e5c31af7Sopenharmony_ci %189 = OpAccessChain %43 %41 %187 770e5c31af7Sopenharmony_ci OpStore %189 %188 771e5c31af7Sopenharmony_ci OpBranch %182 772e5c31af7Sopenharmony_ci %174 = OpLabel 773e5c31af7Sopenharmony_ci %191 = OpLoad %6 %156 774e5c31af7Sopenharmony_ci %192 = OpAccessChain %43 %41 %191 775e5c31af7Sopenharmony_ci OpStore %192 %136 776e5c31af7Sopenharmony_ci OpBranch %182 777e5c31af7Sopenharmony_ci %175 = OpLabel 778e5c31af7Sopenharmony_ci %194 = OpLoad %6 %156 779e5c31af7Sopenharmony_ci %195 = OpAccessChain %43 %41 %194 780e5c31af7Sopenharmony_ci OpStore %195 %22 781e5c31af7Sopenharmony_ci OpBranch %182 782e5c31af7Sopenharmony_ci %176 = OpLabel 783e5c31af7Sopenharmony_ci %197 = OpLoad %6 %156 784e5c31af7Sopenharmony_ci %198 = OpAccessChain %43 %41 %197 785e5c31af7Sopenharmony_ci OpStore %198 %105 786e5c31af7Sopenharmony_ci OpBranch %182 787e5c31af7Sopenharmony_ci %177 = OpLabel 788e5c31af7Sopenharmony_ci %200 = OpLoad %6 %156 789e5c31af7Sopenharmony_ci %202 = OpAccessChain %43 %41 %200 790e5c31af7Sopenharmony_ci OpStore %202 %201 791e5c31af7Sopenharmony_ci OpBranch %182 792e5c31af7Sopenharmony_ci %178 = OpLabel 793e5c31af7Sopenharmony_ci %204 = OpLoad %6 %156 794e5c31af7Sopenharmony_ci %206 = OpAccessChain %43 %41 %204 795e5c31af7Sopenharmony_ci OpStore %206 %205 796e5c31af7Sopenharmony_ci OpBranch %182 797e5c31af7Sopenharmony_ci %179 = OpLabel 798e5c31af7Sopenharmony_ci %208 = OpLoad %6 %156 799e5c31af7Sopenharmony_ci %210 = OpAccessChain %43 %41 %208 800e5c31af7Sopenharmony_ci OpStore %210 %209 801e5c31af7Sopenharmony_ci OpBranch %182 802e5c31af7Sopenharmony_ci %180 = OpLabel 803e5c31af7Sopenharmony_ci %212 = OpLoad %6 %156 804e5c31af7Sopenharmony_ci %214 = OpAccessChain %43 %41 %212 805e5c31af7Sopenharmony_ci OpStore %214 %213 806e5c31af7Sopenharmony_ci OpBranch %182 807e5c31af7Sopenharmony_ci %181 = OpLabel 808e5c31af7Sopenharmony_ci %216 = OpLoad %6 %156 809e5c31af7Sopenharmony_ci %218 = OpAccessChain %43 %41 %216 810e5c31af7Sopenharmony_ci OpStore %218 %217 811e5c31af7Sopenharmony_ci OpBranch %182 812e5c31af7Sopenharmony_ci %182 = OpLabel 813e5c31af7Sopenharmony_ci %221 = OpLoad %6 %156 814e5c31af7Sopenharmony_ci %222 = OpIAdd %6 %221 %22 815e5c31af7Sopenharmony_ci OpStore %156 %222 816e5c31af7Sopenharmony_ci OpBranch %170 817e5c31af7Sopenharmony_ci %170 = OpLabel 818e5c31af7Sopenharmony_ci %223 = OpLoad %6 %156 819e5c31af7Sopenharmony_ci %224 = OpSLessThan %31 %223 %74 820e5c31af7Sopenharmony_ci OpBranchConditional %224 %167 %169 821e5c31af7Sopenharmony_ci %169 = OpLabel 822e5c31af7Sopenharmony_ci OpStore %225 %105 823e5c31af7Sopenharmony_ci OpBranch %226 824e5c31af7Sopenharmony_ci %226 = OpLabel 825e5c31af7Sopenharmony_ci OpLoopMerge %228 %229 None 826e5c31af7Sopenharmony_ci OpBranch %230 827e5c31af7Sopenharmony_ci %230 = OpLabel 828e5c31af7Sopenharmony_ci %231 = OpLoad %6 %225 829e5c31af7Sopenharmony_ci %232 = OpSLessThan %31 %231 %74 830e5c31af7Sopenharmony_ci OpBranchConditional %232 %227 %228 831e5c31af7Sopenharmony_ci %227 = OpLabel 832e5c31af7Sopenharmony_ci %233 = OpLoad %6 %225 833e5c31af7Sopenharmony_ci %234 = OpLoad %6 %225 834e5c31af7Sopenharmony_ci %235 = OpAccessChain %43 %41 %234 835e5c31af7Sopenharmony_ci %236 = OpLoad %6 %235 836e5c31af7Sopenharmony_ci %237 = OpAccessChain %43 %52 %233 837e5c31af7Sopenharmony_ci OpStore %237 %236 838e5c31af7Sopenharmony_ci OpBranch %229 839e5c31af7Sopenharmony_ci %229 = OpLabel 840e5c31af7Sopenharmony_ci %238 = OpLoad %6 %225 841e5c31af7Sopenharmony_ci %239 = OpIAdd %6 %238 %22 842e5c31af7Sopenharmony_ci OpStore %225 %239 843e5c31af7Sopenharmony_ci OpBranch %226 844e5c31af7Sopenharmony_ci %228 = OpLabel 845e5c31af7Sopenharmony_ci %240 = OpFunctionCall %2 %14 846e5c31af7Sopenharmony_ci %246 = OpAccessChain %245 %243 %244 847e5c31af7Sopenharmony_ci %247 = OpLoad %157 %246 848e5c31af7Sopenharmony_ci %248 = OpConvertFToS %6 %247 849e5c31af7Sopenharmony_ci %250 = OpSLessThan %31 %248 %249 850e5c31af7Sopenharmony_ci OpSelectionMerge %252 None 851e5c31af7Sopenharmony_ci OpBranchConditional %250 %251 %262 852e5c31af7Sopenharmony_ci %251 = OpLabel 853e5c31af7Sopenharmony_ci %256 = OpAccessChain %43 %41 %105 854e5c31af7Sopenharmony_ci %257 = OpLoad %6 %256 855e5c31af7Sopenharmony_ci %258 = OpConvertSToF %157 %257 856e5c31af7Sopenharmony_ci %260 = OpFDiv %157 %258 %259 857e5c31af7Sopenharmony_ci %261 = OpFAdd %157 %255 %260 858e5c31af7Sopenharmony_ci OpStore %254 %261 859e5c31af7Sopenharmony_ci OpBranch %252 860e5c31af7Sopenharmony_ci %262 = OpLabel 861e5c31af7Sopenharmony_ci %263 = OpAccessChain %245 %243 %244 862e5c31af7Sopenharmony_ci %264 = OpLoad %157 %263 863e5c31af7Sopenharmony_ci %265 = OpConvertFToS %6 %264 864e5c31af7Sopenharmony_ci %267 = OpSLessThan %31 %265 %266 865e5c31af7Sopenharmony_ci OpSelectionMerge %269 None 866e5c31af7Sopenharmony_ci OpBranchConditional %267 %268 %275 867e5c31af7Sopenharmony_ci %268 = OpLabel 868e5c31af7Sopenharmony_ci %270 = OpAccessChain %43 %41 %22 869e5c31af7Sopenharmony_ci %271 = OpLoad %6 %270 870e5c31af7Sopenharmony_ci %272 = OpConvertSToF %157 %271 871e5c31af7Sopenharmony_ci %273 = OpFDiv %157 %272 %259 872e5c31af7Sopenharmony_ci %274 = OpFAdd %157 %255 %273 873e5c31af7Sopenharmony_ci OpStore %254 %274 874e5c31af7Sopenharmony_ci OpBranch %269 875e5c31af7Sopenharmony_ci %275 = OpLabel 876e5c31af7Sopenharmony_ci %276 = OpAccessChain %245 %243 %244 877e5c31af7Sopenharmony_ci %277 = OpLoad %157 %276 878e5c31af7Sopenharmony_ci %278 = OpConvertFToS %6 %277 879e5c31af7Sopenharmony_ci %280 = OpSLessThan %31 %278 %279 880e5c31af7Sopenharmony_ci OpSelectionMerge %282 None 881e5c31af7Sopenharmony_ci OpBranchConditional %280 %281 %288 882e5c31af7Sopenharmony_ci %281 = OpLabel 883e5c31af7Sopenharmony_ci %283 = OpAccessChain %43 %41 %136 884e5c31af7Sopenharmony_ci %284 = OpLoad %6 %283 885e5c31af7Sopenharmony_ci %285 = OpConvertSToF %157 %284 886e5c31af7Sopenharmony_ci %286 = OpFDiv %157 %285 %259 887e5c31af7Sopenharmony_ci %287 = OpFAdd %157 %255 %286 888e5c31af7Sopenharmony_ci OpStore %254 %287 889e5c31af7Sopenharmony_ci OpBranch %282 890e5c31af7Sopenharmony_ci %288 = OpLabel 891e5c31af7Sopenharmony_ci %289 = OpAccessChain %245 %243 %244 892e5c31af7Sopenharmony_ci %290 = OpLoad %157 %289 893e5c31af7Sopenharmony_ci %291 = OpConvertFToS %6 %290 894e5c31af7Sopenharmony_ci %293 = OpSLessThan %31 %291 %292 895e5c31af7Sopenharmony_ci OpSelectionMerge %295 None 896e5c31af7Sopenharmony_ci OpBranchConditional %293 %294 %301 897e5c31af7Sopenharmony_ci %294 = OpLabel 898e5c31af7Sopenharmony_ci %296 = OpAccessChain %43 %41 %188 899e5c31af7Sopenharmony_ci %297 = OpLoad %6 %296 900e5c31af7Sopenharmony_ci %298 = OpConvertSToF %157 %297 901e5c31af7Sopenharmony_ci %299 = OpFDiv %157 %298 %259 902e5c31af7Sopenharmony_ci %300 = OpFAdd %157 %255 %299 903e5c31af7Sopenharmony_ci OpStore %254 %300 904e5c31af7Sopenharmony_ci OpBranch %295 905e5c31af7Sopenharmony_ci %301 = OpLabel 906e5c31af7Sopenharmony_ci %302 = OpAccessChain %245 %243 %244 907e5c31af7Sopenharmony_ci %303 = OpLoad %157 %302 908e5c31af7Sopenharmony_ci %304 = OpConvertFToS %6 %303 909e5c31af7Sopenharmony_ci %306 = OpSLessThan %31 %304 %305 910e5c31af7Sopenharmony_ci OpSelectionMerge %308 None 911e5c31af7Sopenharmony_ci OpBranchConditional %306 %307 %310 912e5c31af7Sopenharmony_ci %307 = OpLabel 913e5c31af7Sopenharmony_ci OpKill 914e5c31af7Sopenharmony_ci %310 = OpLabel 915e5c31af7Sopenharmony_ci %311 = OpAccessChain %245 %243 %244 916e5c31af7Sopenharmony_ci %312 = OpLoad %157 %311 917e5c31af7Sopenharmony_ci %313 = OpConvertFToS %6 %312 918e5c31af7Sopenharmony_ci %315 = OpSLessThan %31 %313 %314 919e5c31af7Sopenharmony_ci OpSelectionMerge %317 None 920e5c31af7Sopenharmony_ci OpBranchConditional %315 %316 %324 921e5c31af7Sopenharmony_ci %316 = OpLabel 922e5c31af7Sopenharmony_ci %319 = OpAccessChain %43 %41 %318 923e5c31af7Sopenharmony_ci %320 = OpLoad %6 %319 924e5c31af7Sopenharmony_ci %321 = OpConvertSToF %157 %320 925e5c31af7Sopenharmony_ci %322 = OpFDiv %157 %321 %259 926e5c31af7Sopenharmony_ci %323 = OpFAdd %157 %255 %322 927e5c31af7Sopenharmony_ci OpStore %254 %323 928e5c31af7Sopenharmony_ci OpBranch %317 929e5c31af7Sopenharmony_ci %324 = OpLabel 930e5c31af7Sopenharmony_ci %325 = OpAccessChain %245 %243 %244 931e5c31af7Sopenharmony_ci %326 = OpLoad %157 %325 932e5c31af7Sopenharmony_ci %327 = OpConvertFToS %6 %326 933e5c31af7Sopenharmony_ci %329 = OpSLessThan %31 %327 %328 934e5c31af7Sopenharmony_ci OpSelectionMerge %331 None 935e5c31af7Sopenharmony_ci OpBranchConditional %329 %330 %338 936e5c31af7Sopenharmony_ci %330 = OpLabel 937e5c31af7Sopenharmony_ci %333 = OpAccessChain %43 %41 %332 938e5c31af7Sopenharmony_ci %334 = OpLoad %6 %333 939e5c31af7Sopenharmony_ci %335 = OpConvertSToF %157 %334 940e5c31af7Sopenharmony_ci %336 = OpFDiv %157 %335 %259 941e5c31af7Sopenharmony_ci %337 = OpFAdd %157 %255 %336 942e5c31af7Sopenharmony_ci OpStore %254 %337 943e5c31af7Sopenharmony_ci OpBranch %331 944e5c31af7Sopenharmony_ci %338 = OpLabel 945e5c31af7Sopenharmony_ci %339 = OpAccessChain %245 %243 %244 946e5c31af7Sopenharmony_ci %340 = OpLoad %157 %339 947e5c31af7Sopenharmony_ci %341 = OpConvertFToS %6 %340 948e5c31af7Sopenharmony_ci %343 = OpSLessThan %31 %341 %342 949e5c31af7Sopenharmony_ci OpSelectionMerge %345 None 950e5c31af7Sopenharmony_ci OpBranchConditional %343 %344 %352 951e5c31af7Sopenharmony_ci %344 = OpLabel 952e5c31af7Sopenharmony_ci %347 = OpAccessChain %43 %41 %346 953e5c31af7Sopenharmony_ci %348 = OpLoad %6 %347 954e5c31af7Sopenharmony_ci %349 = OpConvertSToF %157 %348 955e5c31af7Sopenharmony_ci %350 = OpFDiv %157 %349 %259 956e5c31af7Sopenharmony_ci %351 = OpFAdd %157 %255 %350 957e5c31af7Sopenharmony_ci OpStore %254 %351 958e5c31af7Sopenharmony_ci OpBranch %345 959e5c31af7Sopenharmony_ci %352 = OpLabel 960e5c31af7Sopenharmony_ci %353 = OpAccessChain %245 %243 %244 961e5c31af7Sopenharmony_ci %354 = OpLoad %157 %353 962e5c31af7Sopenharmony_ci %355 = OpConvertFToS %6 %354 963e5c31af7Sopenharmony_ci %357 = OpSLessThan %31 %355 %356 964e5c31af7Sopenharmony_ci OpSelectionMerge %359 None 965e5c31af7Sopenharmony_ci OpBranchConditional %357 %358 %366 966e5c31af7Sopenharmony_ci %358 = OpLabel 967e5c31af7Sopenharmony_ci %361 = OpAccessChain %43 %41 %360 968e5c31af7Sopenharmony_ci %362 = OpLoad %6 %361 969e5c31af7Sopenharmony_ci %363 = OpConvertSToF %157 %362 970e5c31af7Sopenharmony_ci %364 = OpFDiv %157 %363 %259 971e5c31af7Sopenharmony_ci %365 = OpFAdd %157 %255 %364 972e5c31af7Sopenharmony_ci OpStore %254 %365 973e5c31af7Sopenharmony_ci OpBranch %359 974e5c31af7Sopenharmony_ci %366 = OpLabel 975e5c31af7Sopenharmony_ci OpKill 976e5c31af7Sopenharmony_ci %359 = OpLabel 977e5c31af7Sopenharmony_ci OpBranch %345 978e5c31af7Sopenharmony_ci %345 = OpLabel 979e5c31af7Sopenharmony_ci OpBranch %331 980e5c31af7Sopenharmony_ci %331 = OpLabel 981e5c31af7Sopenharmony_ci OpBranch %317 982e5c31af7Sopenharmony_ci %317 = OpLabel 983e5c31af7Sopenharmony_ci OpBranch %308 984e5c31af7Sopenharmony_ci %308 = OpLabel 985e5c31af7Sopenharmony_ci OpBranch %295 986e5c31af7Sopenharmony_ci %295 = OpLabel 987e5c31af7Sopenharmony_ci OpBranch %282 988e5c31af7Sopenharmony_ci %282 = OpLabel 989e5c31af7Sopenharmony_ci OpBranch %269 990e5c31af7Sopenharmony_ci %269 = OpLabel 991e5c31af7Sopenharmony_ci OpBranch %252 992e5c31af7Sopenharmony_ci %252 = OpLabel 993e5c31af7Sopenharmony_ci %370 = OpLoad %157 %254 994e5c31af7Sopenharmony_ci %372 = OpCompositeConstruct %371 %370 %370 %370 995e5c31af7Sopenharmony_ci %374 = OpCompositeExtract %157 %372 0 996e5c31af7Sopenharmony_ci %375 = OpCompositeExtract %157 %372 1 997e5c31af7Sopenharmony_ci %376 = OpCompositeExtract %157 %372 2 998e5c31af7Sopenharmony_ci %377 = OpCompositeConstruct %241 %374 %375 %376 %373 999e5c31af7Sopenharmony_ci OpStore %369 %377 1000e5c31af7Sopenharmony_ci OpReturn 1001e5c31af7Sopenharmony_ci OpFunctionEnd 1002e5c31af7Sopenharmony_ci %12 = OpFunction %2 None %8 1003e5c31af7Sopenharmony_ci %9 = OpFunctionParameter %7 1004e5c31af7Sopenharmony_ci %10 = OpFunctionParameter %7 1005e5c31af7Sopenharmony_ci %11 = OpFunctionParameter %7 1006e5c31af7Sopenharmony_ci %13 = OpLabel 1007e5c31af7Sopenharmony_ci %16 = OpVariable %7 Function 1008e5c31af7Sopenharmony_ci %18 = OpVariable %7 Function 1009e5c31af7Sopenharmony_ci %20 = OpVariable %7 Function 1010e5c31af7Sopenharmony_ci %87 = OpVariable %7 Function 1011e5c31af7Sopenharmony_ci %17 = OpLoad %6 %9 1012e5c31af7Sopenharmony_ci OpStore %16 %17 1013e5c31af7Sopenharmony_ci %19 = OpLoad %6 %9 1014e5c31af7Sopenharmony_ci OpStore %18 %19 1015e5c31af7Sopenharmony_ci %21 = OpLoad %6 %10 1016e5c31af7Sopenharmony_ci %23 = OpIAdd %6 %21 %22 1017e5c31af7Sopenharmony_ci OpStore %20 %23 1018e5c31af7Sopenharmony_ci OpBranch %24 1019e5c31af7Sopenharmony_ci %24 = OpLabel 1020e5c31af7Sopenharmony_ci OpLoopMerge %26 %27 None 1021e5c31af7Sopenharmony_ci OpBranch %28 1022e5c31af7Sopenharmony_ci %28 = OpLabel 1023e5c31af7Sopenharmony_ci %29 = OpLoad %6 %18 1024e5c31af7Sopenharmony_ci %30 = OpLoad %6 %10 1025e5c31af7Sopenharmony_ci %32 = OpSLessThanEqual %31 %29 %30 1026e5c31af7Sopenharmony_ci %33 = OpLoad %6 %20 1027e5c31af7Sopenharmony_ci %34 = OpLoad %6 %11 1028e5c31af7Sopenharmony_ci %35 = OpSLessThanEqual %31 %33 %34 1029e5c31af7Sopenharmony_ci %36 = OpLogicalAnd %31 %32 %35 1030e5c31af7Sopenharmony_ci OpBranchConditional %36 %25 %26 1031e5c31af7Sopenharmony_ci %25 = OpLabel 1032e5c31af7Sopenharmony_ci %42 = OpLoad %6 %18 1033e5c31af7Sopenharmony_ci %44 = OpAccessChain %43 %41 %42 1034e5c31af7Sopenharmony_ci %45 = OpLoad %6 %44 1035e5c31af7Sopenharmony_ci %46 = OpLoad %6 %20 1036e5c31af7Sopenharmony_ci %47 = OpAccessChain %43 %41 %46 1037e5c31af7Sopenharmony_ci %48 = OpLoad %6 %47 1038e5c31af7Sopenharmony_ci %49 = OpSLessThan %31 %45 %48 1039e5c31af7Sopenharmony_ci OpSelectionMerge %51 None 1040e5c31af7Sopenharmony_ci OpBranchConditional %49 %50 %60 1041e5c31af7Sopenharmony_ci %50 = OpLabel 1042e5c31af7Sopenharmony_ci %53 = OpLoad %6 %16 1043e5c31af7Sopenharmony_ci %54 = OpIAdd %6 %53 %22 1044e5c31af7Sopenharmony_ci OpStore %16 %54 1045e5c31af7Sopenharmony_ci %55 = OpLoad %6 %18 1046e5c31af7Sopenharmony_ci %56 = OpIAdd %6 %55 %22 1047e5c31af7Sopenharmony_ci OpStore %18 %56 1048e5c31af7Sopenharmony_ci %57 = OpAccessChain %43 %41 %55 1049e5c31af7Sopenharmony_ci %58 = OpLoad %6 %57 1050e5c31af7Sopenharmony_ci %59 = OpAccessChain %43 %52 %53 1051e5c31af7Sopenharmony_ci OpStore %59 %58 1052e5c31af7Sopenharmony_ci OpBranch %51 1053e5c31af7Sopenharmony_ci %60 = OpLabel 1054e5c31af7Sopenharmony_ci %61 = OpLoad %6 %16 1055e5c31af7Sopenharmony_ci %62 = OpIAdd %6 %61 %22 1056e5c31af7Sopenharmony_ci OpStore %16 %62 1057e5c31af7Sopenharmony_ci %63 = OpLoad %6 %20 1058e5c31af7Sopenharmony_ci %64 = OpIAdd %6 %63 %22 1059e5c31af7Sopenharmony_ci OpStore %20 %64 1060e5c31af7Sopenharmony_ci %65 = OpAccessChain %43 %41 %63 1061e5c31af7Sopenharmony_ci %66 = OpLoad %6 %65 1062e5c31af7Sopenharmony_ci %67 = OpAccessChain %43 %52 %61 1063e5c31af7Sopenharmony_ci OpStore %67 %66 1064e5c31af7Sopenharmony_ci OpBranch %51 1065e5c31af7Sopenharmony_ci %51 = OpLabel 1066e5c31af7Sopenharmony_ci OpBranch %27 1067e5c31af7Sopenharmony_ci %27 = OpLabel 1068e5c31af7Sopenharmony_ci OpBranch %24 1069e5c31af7Sopenharmony_ci %26 = OpLabel 1070e5c31af7Sopenharmony_ci OpBranch %68 1071e5c31af7Sopenharmony_ci %68 = OpLabel 1072e5c31af7Sopenharmony_ci %636 = OpFUnordGreaterThanEqual %31 %595 %373 1073e5c31af7Sopenharmony_ci OpLoopMerge %70 %71 None 1074e5c31af7Sopenharmony_ci OpBranchConditional %636 %72 %71 1075e5c31af7Sopenharmony_ci %72 = OpLabel 1076e5c31af7Sopenharmony_ci %73 = OpLoad %6 %18 1077e5c31af7Sopenharmony_ci %75 = OpSLessThan %31 %73 %74 1078e5c31af7Sopenharmony_ci %76 = OpLoad %6 %18 1079e5c31af7Sopenharmony_ci %77 = OpLoad %6 %10 1080e5c31af7Sopenharmony_ci %78 = OpSLessThanEqual %31 %76 %77 1081e5c31af7Sopenharmony_ci %79 = OpLogicalAnd %31 %75 %78 1082e5c31af7Sopenharmony_ci OpBranchConditional %79 %69 %70 1083e5c31af7Sopenharmony_ci %69 = OpLabel 1084e5c31af7Sopenharmony_ci OpBranch %579 1085e5c31af7Sopenharmony_ci %579 = OpLabel 1086e5c31af7Sopenharmony_ci %80 = OpLoad %6 %16 1087e5c31af7Sopenharmony_ci %81 = OpIAdd %6 %80 %22 1088e5c31af7Sopenharmony_ci OpStore %16 %81 1089e5c31af7Sopenharmony_ci %82 = OpLoad %6 %18 1090e5c31af7Sopenharmony_ci %83 = OpIAdd %6 %82 %22 1091e5c31af7Sopenharmony_ci OpStore %18 %83 1092e5c31af7Sopenharmony_ci %84 = OpAccessChain %43 %41 %82 1093e5c31af7Sopenharmony_ci %85 = OpLoad %6 %84 1094e5c31af7Sopenharmony_ci %86 = OpAccessChain %43 %52 %80 1095e5c31af7Sopenharmony_ci OpStore %86 %85 1096e5c31af7Sopenharmony_ci OpBranchConditional %526 %71 %71 1097e5c31af7Sopenharmony_ci %71 = OpLabel 1098e5c31af7Sopenharmony_ci OpBranch %68 1099e5c31af7Sopenharmony_ci %70 = OpLabel 1100e5c31af7Sopenharmony_ci %88 = OpLoad %6 %9 1101e5c31af7Sopenharmony_ci OpStore %87 %88 1102e5c31af7Sopenharmony_ci OpBranch %89 1103e5c31af7Sopenharmony_ci %89 = OpLabel 1104e5c31af7Sopenharmony_ci OpLoopMerge %91 %92 None 1105e5c31af7Sopenharmony_ci OpBranch %93 1106e5c31af7Sopenharmony_ci %93 = OpLabel 1107e5c31af7Sopenharmony_ci %94 = OpLoad %6 %87 1108e5c31af7Sopenharmony_ci %95 = OpLoad %6 %11 1109e5c31af7Sopenharmony_ci %96 = OpSLessThanEqual %31 %94 %95 1110e5c31af7Sopenharmony_ci OpBranchConditional %96 %90 %91 1111e5c31af7Sopenharmony_ci %90 = OpLabel 1112e5c31af7Sopenharmony_ci %97 = OpLoad %6 %87 1113e5c31af7Sopenharmony_ci %98 = OpLoad %6 %87 1114e5c31af7Sopenharmony_ci %99 = OpAccessChain %43 %52 %98 1115e5c31af7Sopenharmony_ci %100 = OpLoad %6 %99 1116e5c31af7Sopenharmony_ci %101 = OpAccessChain %43 %41 %97 1117e5c31af7Sopenharmony_ci OpStore %101 %100 1118e5c31af7Sopenharmony_ci OpBranch %92 1119e5c31af7Sopenharmony_ci %92 = OpLabel 1120e5c31af7Sopenharmony_ci %102 = OpLoad %6 %87 1121e5c31af7Sopenharmony_ci %103 = OpIAdd %6 %102 %22 1122e5c31af7Sopenharmony_ci OpStore %87 %103 1123e5c31af7Sopenharmony_ci OpBranch %89 1124e5c31af7Sopenharmony_ci %91 = OpLabel 1125e5c31af7Sopenharmony_ci OpReturn 1126e5c31af7Sopenharmony_ci OpFunctionEnd 1127e5c31af7Sopenharmony_ci %14 = OpFunction %2 None %3 1128e5c31af7Sopenharmony_ci %15 = OpLabel 1129e5c31af7Sopenharmony_ci %104 = OpVariable %7 Function 1130e5c31af7Sopenharmony_ci %106 = OpVariable %7 Function 1131e5c31af7Sopenharmony_ci %108 = OpVariable %7 Function 1132e5c31af7Sopenharmony_ci %117 = OpVariable %7 Function 1133e5c31af7Sopenharmony_ci %127 = OpVariable %7 Function 1134e5c31af7Sopenharmony_ci %129 = OpVariable %7 Function 1135e5c31af7Sopenharmony_ci %134 = OpVariable %7 Function 1136e5c31af7Sopenharmony_ci %143 = OpVariable %7 Function 1137e5c31af7Sopenharmony_ci %145 = OpVariable %7 Function 1138e5c31af7Sopenharmony_ci %147 = OpVariable %7 Function 1139e5c31af7Sopenharmony_ci OpStore %104 %105 1140e5c31af7Sopenharmony_ci OpStore %106 %107 1141e5c31af7Sopenharmony_ci OpStore %108 %22 1142e5c31af7Sopenharmony_ci OpBranch %109 1143e5c31af7Sopenharmony_ci %109 = OpLabel 1144e5c31af7Sopenharmony_ci OpLoopMerge %111 %112 None 1145e5c31af7Sopenharmony_ci OpBranch %113 1146e5c31af7Sopenharmony_ci %113 = OpLabel 1147e5c31af7Sopenharmony_ci %114 = OpLoad %6 %108 1148e5c31af7Sopenharmony_ci %115 = OpLoad %6 %106 1149e5c31af7Sopenharmony_ci %116 = OpSLessThanEqual %31 %114 %115 1150e5c31af7Sopenharmony_ci OpBranchConditional %116 %110 %111 1151e5c31af7Sopenharmony_ci %110 = OpLabel 1152e5c31af7Sopenharmony_ci %118 = OpLoad %6 %104 1153e5c31af7Sopenharmony_ci OpStore %117 %118 1154e5c31af7Sopenharmony_ci OpBranch %119 1155e5c31af7Sopenharmony_ci %119 = OpLabel 1156e5c31af7Sopenharmony_ci OpLoopMerge %121 %122 None 1157e5c31af7Sopenharmony_ci OpBranch %123 1158e5c31af7Sopenharmony_ci %123 = OpLabel 1159e5c31af7Sopenharmony_ci %124 = OpLoad %6 %117 1160e5c31af7Sopenharmony_ci %125 = OpLoad %6 %106 1161e5c31af7Sopenharmony_ci %126 = OpSLessThan %31 %124 %125 1162e5c31af7Sopenharmony_ci OpBranchConditional %126 %120 %121 1163e5c31af7Sopenharmony_ci %120 = OpLabel 1164e5c31af7Sopenharmony_ci %128 = OpLoad %6 %117 1165e5c31af7Sopenharmony_ci OpStore %127 %128 1166e5c31af7Sopenharmony_ci %130 = OpLoad %6 %117 1167e5c31af7Sopenharmony_ci %131 = OpLoad %6 %108 1168e5c31af7Sopenharmony_ci %132 = OpIAdd %6 %130 %131 1169e5c31af7Sopenharmony_ci %133 = OpISub %6 %132 %22 1170e5c31af7Sopenharmony_ci OpStore %129 %133 1171e5c31af7Sopenharmony_ci %135 = OpLoad %6 %117 1172e5c31af7Sopenharmony_ci %137 = OpLoad %6 %108 1173e5c31af7Sopenharmony_ci %138 = OpIMul %6 %136 %137 1174e5c31af7Sopenharmony_ci %139 = OpIAdd %6 %135 %138 1175e5c31af7Sopenharmony_ci %140 = OpISub %6 %139 %22 1176e5c31af7Sopenharmony_ci %141 = OpLoad %6 %106 1177e5c31af7Sopenharmony_ci %142 = OpExtInst %6 %1 SMin %140 %141 1178e5c31af7Sopenharmony_ci OpStore %134 %142 1179e5c31af7Sopenharmony_ci %144 = OpLoad %6 %127 1180e5c31af7Sopenharmony_ci OpStore %143 %144 1181e5c31af7Sopenharmony_ci %146 = OpLoad %6 %129 1182e5c31af7Sopenharmony_ci OpStore %145 %146 1183e5c31af7Sopenharmony_ci %148 = OpLoad %6 %134 1184e5c31af7Sopenharmony_ci OpStore %147 %148 1185e5c31af7Sopenharmony_ci %149 = OpFunctionCall %2 %12 %143 %145 %147 1186e5c31af7Sopenharmony_ci OpBranch %122 1187e5c31af7Sopenharmony_ci %122 = OpLabel 1188e5c31af7Sopenharmony_ci %150 = OpLoad %6 %108 1189e5c31af7Sopenharmony_ci %151 = OpIMul %6 %136 %150 1190e5c31af7Sopenharmony_ci %152 = OpLoad %6 %117 1191e5c31af7Sopenharmony_ci %153 = OpIAdd %6 %152 %151 1192e5c31af7Sopenharmony_ci OpStore %117 %153 1193e5c31af7Sopenharmony_ci OpBranch %119 1194e5c31af7Sopenharmony_ci %121 = OpLabel 1195e5c31af7Sopenharmony_ci OpBranch %112 1196e5c31af7Sopenharmony_ci %112 = OpLabel 1197e5c31af7Sopenharmony_ci %154 = OpLoad %6 %108 1198e5c31af7Sopenharmony_ci %155 = OpIMul %6 %136 %154 1199e5c31af7Sopenharmony_ci OpStore %108 %155 1200e5c31af7Sopenharmony_ci OpBranch %109 1201e5c31af7Sopenharmony_ci %111 = OpLabel 1202e5c31af7Sopenharmony_ci OpReturn 1203e5c31af7Sopenharmony_ci OpFunctionEnd 1204e5c31af7Sopenharmony_ciEND 1205e5c31af7Sopenharmony_ci 1206e5c31af7Sopenharmony_ci# uniforms for variant 1207e5c31af7Sopenharmony_ci 1208e5c31af7Sopenharmony_ci# injectionSwitch 1209e5c31af7Sopenharmony_ciBUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA 1210e5c31af7Sopenharmony_ci 0.0 1.0 1211e5c31af7Sopenharmony_ciEND 1212e5c31af7Sopenharmony_ci# resolution 1213e5c31af7Sopenharmony_ciBUFFER variant_resolution DATA_TYPE vec2<float> DATA 1214e5c31af7Sopenharmony_ci 256.0 256.0 1215e5c31af7Sopenharmony_ciEND 1216e5c31af7Sopenharmony_ci 1217e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 1218e5c31af7Sopenharmony_ci 1219e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 1220e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 1221e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 1222e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 1223e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 1224e5c31af7Sopenharmony_ci BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0 1225e5c31af7Sopenharmony_ci BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 1 1226e5c31af7Sopenharmony_ciEND 1227e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 1228e5c31af7Sopenharmony_ci 1229e5c31af7Sopenharmony_ciCLEAR variant_pipeline 1230e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 1231e5c31af7Sopenharmony_ci 1232e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 1233