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 GraphicsFuzz. 19e5c31af7Sopenharmony_ci 20e5c31af7Sopenharmony_ci# Short description: A fragment shader with always false if with discard loop 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ci# The test passes because both shaders render the same image. 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci# Optimized using spirv-opt with the following arguments: 25e5c31af7Sopenharmony_ci# '-O' 26e5c31af7Sopenharmony_ci# spirv-opt commit hash: 230f363e6da32791f640b02205e0645cc67c3f1d 27e5c31af7Sopenharmony_ci 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci 30e5c31af7Sopenharmony_ciSHADER vertex reference_vertex_shader PASSTHROUGH 31e5c31af7Sopenharmony_ci 32e5c31af7Sopenharmony_ci# reference_fragment_shader is derived from the following GLSL: 33e5c31af7Sopenharmony_ci# #version 320 es 34e5c31af7Sopenharmony_ci# precision highp float; 35e5c31af7Sopenharmony_ci# 36e5c31af7Sopenharmony_ci# precision highp int; 37e5c31af7Sopenharmony_ci# 38e5c31af7Sopenharmony_ci# layout(location = 0) out vec4 _GLF_color; 39e5c31af7Sopenharmony_ci# 40e5c31af7Sopenharmony_ci# struct BST 41e5c31af7Sopenharmony_ci# { 42e5c31af7Sopenharmony_ci# int data; 43e5c31af7Sopenharmony_ci# int leftIndex; 44e5c31af7Sopenharmony_ci# int rightIndex; 45e5c31af7Sopenharmony_ci# }; 46e5c31af7Sopenharmony_ci# 47e5c31af7Sopenharmony_ci# BST tree[10]; 48e5c31af7Sopenharmony_ci# 49e5c31af7Sopenharmony_ci# void makeTreeNode(inout BST tree, int data) 50e5c31af7Sopenharmony_ci# { 51e5c31af7Sopenharmony_ci# tree.data = data; 52e5c31af7Sopenharmony_ci# tree.leftIndex = -1; 53e5c31af7Sopenharmony_ci# tree.rightIndex = -1; 54e5c31af7Sopenharmony_ci# } 55e5c31af7Sopenharmony_ci# void insert(int treeIndex, int data) 56e5c31af7Sopenharmony_ci# { 57e5c31af7Sopenharmony_ci# int baseIndex = 0; 58e5c31af7Sopenharmony_ci# while (baseIndex <= treeIndex) 59e5c31af7Sopenharmony_ci# { 60e5c31af7Sopenharmony_ci# if (data <= tree[baseIndex].data) 61e5c31af7Sopenharmony_ci# { 62e5c31af7Sopenharmony_ci# if (tree[baseIndex].leftIndex == -1) 63e5c31af7Sopenharmony_ci# { 64e5c31af7Sopenharmony_ci# tree[baseIndex].leftIndex = treeIndex; 65e5c31af7Sopenharmony_ci# makeTreeNode(tree[treeIndex], data); 66e5c31af7Sopenharmony_ci# return; 67e5c31af7Sopenharmony_ci# } 68e5c31af7Sopenharmony_ci# else 69e5c31af7Sopenharmony_ci# { 70e5c31af7Sopenharmony_ci# baseIndex = tree[baseIndex].leftIndex; 71e5c31af7Sopenharmony_ci# continue; 72e5c31af7Sopenharmony_ci# } 73e5c31af7Sopenharmony_ci# } 74e5c31af7Sopenharmony_ci# else 75e5c31af7Sopenharmony_ci# { 76e5c31af7Sopenharmony_ci# if (tree[baseIndex].rightIndex == -1) 77e5c31af7Sopenharmony_ci# { 78e5c31af7Sopenharmony_ci# tree[baseIndex].rightIndex = treeIndex; 79e5c31af7Sopenharmony_ci# makeTreeNode(tree[treeIndex], data); 80e5c31af7Sopenharmony_ci# return; 81e5c31af7Sopenharmony_ci# } 82e5c31af7Sopenharmony_ci# else 83e5c31af7Sopenharmony_ci# { 84e5c31af7Sopenharmony_ci# baseIndex = tree[baseIndex].rightIndex; 85e5c31af7Sopenharmony_ci# continue; 86e5c31af7Sopenharmony_ci# } 87e5c31af7Sopenharmony_ci# } 88e5c31af7Sopenharmony_ci# } 89e5c31af7Sopenharmony_ci# } 90e5c31af7Sopenharmony_ci# int search(int target) 91e5c31af7Sopenharmony_ci# { 92e5c31af7Sopenharmony_ci# BST currentNode; 93e5c31af7Sopenharmony_ci# int index = 0; 94e5c31af7Sopenharmony_ci# while (index != -1) 95e5c31af7Sopenharmony_ci# { 96e5c31af7Sopenharmony_ci# currentNode = tree[index]; 97e5c31af7Sopenharmony_ci# if (currentNode.data == target) 98e5c31af7Sopenharmony_ci# { 99e5c31af7Sopenharmony_ci# return target; 100e5c31af7Sopenharmony_ci# } 101e5c31af7Sopenharmony_ci# index = target > currentNode.data ? currentNode.rightIndex : currentNode.leftIndex; 102e5c31af7Sopenharmony_ci# } 103e5c31af7Sopenharmony_ci# return -1; 104e5c31af7Sopenharmony_ci# } 105e5c31af7Sopenharmony_ci# void main() 106e5c31af7Sopenharmony_ci# { 107e5c31af7Sopenharmony_ci# int treeIndex = 0; 108e5c31af7Sopenharmony_ci# makeTreeNode(tree[0], 9); 109e5c31af7Sopenharmony_ci# treeIndex++; 110e5c31af7Sopenharmony_ci# insert(treeIndex, 5); 111e5c31af7Sopenharmony_ci# treeIndex++; 112e5c31af7Sopenharmony_ci# insert(treeIndex, 12); 113e5c31af7Sopenharmony_ci# treeIndex++; 114e5c31af7Sopenharmony_ci# insert(treeIndex, 15); 115e5c31af7Sopenharmony_ci# treeIndex++; 116e5c31af7Sopenharmony_ci# insert(treeIndex, 7); 117e5c31af7Sopenharmony_ci# treeIndex++; 118e5c31af7Sopenharmony_ci# insert(treeIndex, 8); 119e5c31af7Sopenharmony_ci# treeIndex++; 120e5c31af7Sopenharmony_ci# insert(treeIndex, 2); 121e5c31af7Sopenharmony_ci# treeIndex++; 122e5c31af7Sopenharmony_ci# insert(treeIndex, 6); 123e5c31af7Sopenharmony_ci# treeIndex++; 124e5c31af7Sopenharmony_ci# insert(treeIndex, 17); 125e5c31af7Sopenharmony_ci# treeIndex++; 126e5c31af7Sopenharmony_ci# insert(treeIndex, 13); 127e5c31af7Sopenharmony_ci# int count = 0; 128e5c31af7Sopenharmony_ci# for (int i = 0; i < 20; i++) 129e5c31af7Sopenharmony_ci# { 130e5c31af7Sopenharmony_ci# int result = search(i); 131e5c31af7Sopenharmony_ci# switch (i) 132e5c31af7Sopenharmony_ci# { 133e5c31af7Sopenharmony_ci# case 9: 134e5c31af7Sopenharmony_ci# case 5: 135e5c31af7Sopenharmony_ci# case 12: 136e5c31af7Sopenharmony_ci# case 15: 137e5c31af7Sopenharmony_ci# case 7: 138e5c31af7Sopenharmony_ci# case 8: 139e5c31af7Sopenharmony_ci# case 2: 140e5c31af7Sopenharmony_ci# case 6: 141e5c31af7Sopenharmony_ci# case 17: 142e5c31af7Sopenharmony_ci# case 13: 143e5c31af7Sopenharmony_ci# if (result == i) 144e5c31af7Sopenharmony_ci# { 145e5c31af7Sopenharmony_ci# count++; 146e5c31af7Sopenharmony_ci# } 147e5c31af7Sopenharmony_ci# break; 148e5c31af7Sopenharmony_ci# default: 149e5c31af7Sopenharmony_ci# if (result == -1) 150e5c31af7Sopenharmony_ci# { 151e5c31af7Sopenharmony_ci# count++; 152e5c31af7Sopenharmony_ci# } 153e5c31af7Sopenharmony_ci# break; 154e5c31af7Sopenharmony_ci# } 155e5c31af7Sopenharmony_ci# } 156e5c31af7Sopenharmony_ci# if (count == 20) 157e5c31af7Sopenharmony_ci# { 158e5c31af7Sopenharmony_ci# _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); 159e5c31af7Sopenharmony_ci# } 160e5c31af7Sopenharmony_ci# else 161e5c31af7Sopenharmony_ci# { 162e5c31af7Sopenharmony_ci# _GLF_color = vec4(0.0, 0.0, 1.0, 1.0); 163e5c31af7Sopenharmony_ci# } 164e5c31af7Sopenharmony_ci# } 165e5c31af7Sopenharmony_ciSHADER fragment reference_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 166e5c31af7Sopenharmony_ci; SPIR-V 167e5c31af7Sopenharmony_ci; Version: 1.0 168e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 10 169e5c31af7Sopenharmony_ci; Bound: 1372 170e5c31af7Sopenharmony_ci; Schema: 0 171e5c31af7Sopenharmony_ci OpCapability Shader 172e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 173e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 174e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %254 175e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 176e5c31af7Sopenharmony_ci OpSource ESSL 320 177e5c31af7Sopenharmony_ci OpName %4 "main" 178e5c31af7Sopenharmony_ci OpName %7 "BST" 179e5c31af7Sopenharmony_ci OpMemberName %7 0 "data" 180e5c31af7Sopenharmony_ci OpMemberName %7 1 "leftIndex" 181e5c31af7Sopenharmony_ci OpMemberName %7 2 "rightIndex" 182e5c31af7Sopenharmony_ci OpName %47 "tree" 183e5c31af7Sopenharmony_ci OpName %254 "_GLF_color" 184e5c31af7Sopenharmony_ci OpDecorate %254 Location 0 185e5c31af7Sopenharmony_ci %2 = OpTypeVoid 186e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 187e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 188e5c31af7Sopenharmony_ci %7 = OpTypeStruct %6 %6 %6 189e5c31af7Sopenharmony_ci %8 = OpTypePointer Function %7 190e5c31af7Sopenharmony_ci %9 = OpTypePointer Function %6 191e5c31af7Sopenharmony_ci %24 = OpConstant %6 0 192e5c31af7Sopenharmony_ci %27 = OpConstant %6 1 193e5c31af7Sopenharmony_ci %28 = OpConstant %6 -1 194e5c31af7Sopenharmony_ci %30 = OpConstant %6 2 195e5c31af7Sopenharmony_ci %40 = OpTypeBool 196e5c31af7Sopenharmony_ci %43 = OpTypeInt 32 0 197e5c31af7Sopenharmony_ci %44 = OpConstant %43 10 198e5c31af7Sopenharmony_ci %45 = OpTypeArray %7 %44 199e5c31af7Sopenharmony_ci %141 = OpConstant %6 9 200e5c31af7Sopenharmony_ci %151 = OpConstant %6 5 201e5c31af7Sopenharmony_ci %158 = OpConstant %6 12 202e5c31af7Sopenharmony_ci %165 = OpConstant %6 15 203e5c31af7Sopenharmony_ci %172 = OpConstant %6 7 204e5c31af7Sopenharmony_ci %179 = OpConstant %6 8 205e5c31af7Sopenharmony_ci %192 = OpConstant %6 6 206e5c31af7Sopenharmony_ci %199 = OpConstant %6 17 207e5c31af7Sopenharmony_ci %206 = OpConstant %6 13 208e5c31af7Sopenharmony_ci %219 = OpConstant %6 20 209e5c31af7Sopenharmony_ci %251 = OpTypeFloat 32 210e5c31af7Sopenharmony_ci %252 = OpTypeVector %251 4 211e5c31af7Sopenharmony_ci %253 = OpTypePointer Output %252 212e5c31af7Sopenharmony_ci %254 = OpVariable %253 Output 213e5c31af7Sopenharmony_ci %255 = OpConstant %251 1 214e5c31af7Sopenharmony_ci %256 = OpConstant %251 0 215e5c31af7Sopenharmony_ci %257 = OpConstantComposite %252 %255 %256 %256 %255 216e5c31af7Sopenharmony_ci %259 = OpConstantComposite %252 %256 %256 %255 %255 217e5c31af7Sopenharmony_ci %262 = OpConstant %43 0 218e5c31af7Sopenharmony_ci %263 = OpConstantFalse %40 219e5c31af7Sopenharmony_ci %266 = OpConstantTrue %40 220e5c31af7Sopenharmony_ci %1015 = OpTypePointer Function %45 221e5c31af7Sopenharmony_ci %1318 = OpUndef %6 222e5c31af7Sopenharmony_ci %1359 = OpConstantComposite %7 %141 %28 %28 223e5c31af7Sopenharmony_ci %1360 = OpConstantComposite %7 %151 %28 %28 224e5c31af7Sopenharmony_ci %1361 = OpConstantComposite %7 %158 %28 %28 225e5c31af7Sopenharmony_ci %1362 = OpConstant %6 3 226e5c31af7Sopenharmony_ci %1363 = OpConstantComposite %7 %165 %28 %28 227e5c31af7Sopenharmony_ci %1364 = OpConstant %6 4 228e5c31af7Sopenharmony_ci %1365 = OpConstantComposite %7 %172 %28 %28 229e5c31af7Sopenharmony_ci %1366 = OpConstantComposite %7 %179 %28 %28 230e5c31af7Sopenharmony_ci %1367 = OpConstantComposite %7 %30 %28 %28 231e5c31af7Sopenharmony_ci %1368 = OpConstantComposite %7 %192 %28 %28 232e5c31af7Sopenharmony_ci %1369 = OpConstantComposite %7 %199 %28 %28 233e5c31af7Sopenharmony_ci %1370 = OpConstantComposite %7 %206 %28 %28 234e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 235e5c31af7Sopenharmony_ci %5 = OpLabel 236e5c31af7Sopenharmony_ci %47 = OpVariable %1015 Function 237e5c31af7Sopenharmony_ci %148 = OpAccessChain %8 %47 %24 238e5c31af7Sopenharmony_ci OpStore %148 %1359 239e5c31af7Sopenharmony_ci OpSelectionMerge %347 None 240e5c31af7Sopenharmony_ci OpSwitch %262 %288 241e5c31af7Sopenharmony_ci %288 = OpLabel 242e5c31af7Sopenharmony_ci OpBranch %289 243e5c31af7Sopenharmony_ci %289 = OpLabel 244e5c31af7Sopenharmony_ci %1212 = OpPhi %6 %24 %288 %1342 %343 245e5c31af7Sopenharmony_ci %293 = OpSLessThanEqual %40 %1212 %27 246e5c31af7Sopenharmony_ci OpLoopMerge %344 %343 None 247e5c31af7Sopenharmony_ci OpBranchConditional %293 %294 %344 248e5c31af7Sopenharmony_ci %294 = OpLabel 249e5c31af7Sopenharmony_ci %297 = OpAccessChain %9 %47 %1212 %24 250e5c31af7Sopenharmony_ci %298 = OpLoad %6 %297 251e5c31af7Sopenharmony_ci %299 = OpSLessThanEqual %40 %151 %298 252e5c31af7Sopenharmony_ci OpSelectionMerge %342 None 253e5c31af7Sopenharmony_ci OpBranchConditional %299 %300 %321 254e5c31af7Sopenharmony_ci %321 = OpLabel 255e5c31af7Sopenharmony_ci %323 = OpAccessChain %9 %47 %1212 %30 256e5c31af7Sopenharmony_ci %324 = OpLoad %6 %323 257e5c31af7Sopenharmony_ci %325 = OpIEqual %40 %324 %28 258e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 259e5c31af7Sopenharmony_ci OpBranchConditional %325 %326 %337 260e5c31af7Sopenharmony_ci %337 = OpLabel 261e5c31af7Sopenharmony_ci %340 = OpLoad %6 %323 262e5c31af7Sopenharmony_ci OpBranch %343 263e5c31af7Sopenharmony_ci %326 = OpLabel 264e5c31af7Sopenharmony_ci OpStore %323 %27 265e5c31af7Sopenharmony_ci %336 = OpAccessChain %8 %47 %27 266e5c31af7Sopenharmony_ci OpStore %336 %1360 267e5c31af7Sopenharmony_ci OpBranch %344 268e5c31af7Sopenharmony_ci %341 = OpLabel 269e5c31af7Sopenharmony_ci OpUnreachable 270e5c31af7Sopenharmony_ci %300 = OpLabel 271e5c31af7Sopenharmony_ci %302 = OpAccessChain %9 %47 %1212 %27 272e5c31af7Sopenharmony_ci %303 = OpLoad %6 %302 273e5c31af7Sopenharmony_ci %304 = OpIEqual %40 %303 %28 274e5c31af7Sopenharmony_ci OpSelectionMerge %320 None 275e5c31af7Sopenharmony_ci OpBranchConditional %304 %305 %316 276e5c31af7Sopenharmony_ci %316 = OpLabel 277e5c31af7Sopenharmony_ci %319 = OpLoad %6 %302 278e5c31af7Sopenharmony_ci OpBranch %343 279e5c31af7Sopenharmony_ci %305 = OpLabel 280e5c31af7Sopenharmony_ci OpStore %302 %27 281e5c31af7Sopenharmony_ci %315 = OpAccessChain %8 %47 %27 282e5c31af7Sopenharmony_ci OpStore %315 %1360 283e5c31af7Sopenharmony_ci OpBranch %344 284e5c31af7Sopenharmony_ci %320 = OpLabel 285e5c31af7Sopenharmony_ci OpUnreachable 286e5c31af7Sopenharmony_ci %342 = OpLabel 287e5c31af7Sopenharmony_ci OpUnreachable 288e5c31af7Sopenharmony_ci %343 = OpLabel 289e5c31af7Sopenharmony_ci %1342 = OpPhi %6 %319 %316 %340 %337 290e5c31af7Sopenharmony_ci OpBranch %289 291e5c31af7Sopenharmony_ci %344 = OpLabel 292e5c31af7Sopenharmony_ci %1213 = OpPhi %40 %263 %289 %266 %305 %266 %326 293e5c31af7Sopenharmony_ci OpSelectionMerge %346 None 294e5c31af7Sopenharmony_ci OpBranchConditional %1213 %347 %346 295e5c31af7Sopenharmony_ci %346 = OpLabel 296e5c31af7Sopenharmony_ci OpBranch %347 297e5c31af7Sopenharmony_ci %347 = OpLabel 298e5c31af7Sopenharmony_ci OpSelectionMerge %424 None 299e5c31af7Sopenharmony_ci OpSwitch %262 %365 300e5c31af7Sopenharmony_ci %365 = OpLabel 301e5c31af7Sopenharmony_ci OpBranch %366 302e5c31af7Sopenharmony_ci %366 = OpLabel 303e5c31af7Sopenharmony_ci %1220 = OpPhi %6 %24 %365 %1344 %420 304e5c31af7Sopenharmony_ci %370 = OpSLessThanEqual %40 %1220 %30 305e5c31af7Sopenharmony_ci OpLoopMerge %421 %420 None 306e5c31af7Sopenharmony_ci OpBranchConditional %370 %371 %421 307e5c31af7Sopenharmony_ci %371 = OpLabel 308e5c31af7Sopenharmony_ci %374 = OpAccessChain %9 %47 %1220 %24 309e5c31af7Sopenharmony_ci %375 = OpLoad %6 %374 310e5c31af7Sopenharmony_ci %376 = OpSLessThanEqual %40 %158 %375 311e5c31af7Sopenharmony_ci OpSelectionMerge %419 None 312e5c31af7Sopenharmony_ci OpBranchConditional %376 %377 %398 313e5c31af7Sopenharmony_ci %398 = OpLabel 314e5c31af7Sopenharmony_ci %400 = OpAccessChain %9 %47 %1220 %30 315e5c31af7Sopenharmony_ci %401 = OpLoad %6 %400 316e5c31af7Sopenharmony_ci %402 = OpIEqual %40 %401 %28 317e5c31af7Sopenharmony_ci OpSelectionMerge %418 None 318e5c31af7Sopenharmony_ci OpBranchConditional %402 %403 %414 319e5c31af7Sopenharmony_ci %414 = OpLabel 320e5c31af7Sopenharmony_ci %417 = OpLoad %6 %400 321e5c31af7Sopenharmony_ci OpBranch %420 322e5c31af7Sopenharmony_ci %403 = OpLabel 323e5c31af7Sopenharmony_ci OpStore %400 %30 324e5c31af7Sopenharmony_ci %413 = OpAccessChain %8 %47 %30 325e5c31af7Sopenharmony_ci OpStore %413 %1361 326e5c31af7Sopenharmony_ci OpBranch %421 327e5c31af7Sopenharmony_ci %418 = OpLabel 328e5c31af7Sopenharmony_ci OpUnreachable 329e5c31af7Sopenharmony_ci %377 = OpLabel 330e5c31af7Sopenharmony_ci %379 = OpAccessChain %9 %47 %1220 %27 331e5c31af7Sopenharmony_ci %380 = OpLoad %6 %379 332e5c31af7Sopenharmony_ci %381 = OpIEqual %40 %380 %28 333e5c31af7Sopenharmony_ci OpSelectionMerge %397 None 334e5c31af7Sopenharmony_ci OpBranchConditional %381 %382 %393 335e5c31af7Sopenharmony_ci %393 = OpLabel 336e5c31af7Sopenharmony_ci %396 = OpLoad %6 %379 337e5c31af7Sopenharmony_ci OpBranch %420 338e5c31af7Sopenharmony_ci %382 = OpLabel 339e5c31af7Sopenharmony_ci OpStore %379 %30 340e5c31af7Sopenharmony_ci %392 = OpAccessChain %8 %47 %30 341e5c31af7Sopenharmony_ci OpStore %392 %1361 342e5c31af7Sopenharmony_ci OpBranch %421 343e5c31af7Sopenharmony_ci %397 = OpLabel 344e5c31af7Sopenharmony_ci OpUnreachable 345e5c31af7Sopenharmony_ci %419 = OpLabel 346e5c31af7Sopenharmony_ci OpUnreachable 347e5c31af7Sopenharmony_ci %420 = OpLabel 348e5c31af7Sopenharmony_ci %1344 = OpPhi %6 %396 %393 %417 %414 349e5c31af7Sopenharmony_ci OpBranch %366 350e5c31af7Sopenharmony_ci %421 = OpLabel 351e5c31af7Sopenharmony_ci %1221 = OpPhi %40 %263 %366 %266 %382 %266 %403 352e5c31af7Sopenharmony_ci OpSelectionMerge %423 None 353e5c31af7Sopenharmony_ci OpBranchConditional %1221 %424 %423 354e5c31af7Sopenharmony_ci %423 = OpLabel 355e5c31af7Sopenharmony_ci OpBranch %424 356e5c31af7Sopenharmony_ci %424 = OpLabel 357e5c31af7Sopenharmony_ci OpSelectionMerge %501 None 358e5c31af7Sopenharmony_ci OpSwitch %262 %442 359e5c31af7Sopenharmony_ci %442 = OpLabel 360e5c31af7Sopenharmony_ci OpBranch %443 361e5c31af7Sopenharmony_ci %443 = OpLabel 362e5c31af7Sopenharmony_ci %1228 = OpPhi %6 %24 %442 %1345 %497 363e5c31af7Sopenharmony_ci %447 = OpSLessThanEqual %40 %1228 %1362 364e5c31af7Sopenharmony_ci OpLoopMerge %498 %497 None 365e5c31af7Sopenharmony_ci OpBranchConditional %447 %448 %498 366e5c31af7Sopenharmony_ci %448 = OpLabel 367e5c31af7Sopenharmony_ci %451 = OpAccessChain %9 %47 %1228 %24 368e5c31af7Sopenharmony_ci %452 = OpLoad %6 %451 369e5c31af7Sopenharmony_ci %453 = OpSLessThanEqual %40 %165 %452 370e5c31af7Sopenharmony_ci OpSelectionMerge %496 None 371e5c31af7Sopenharmony_ci OpBranchConditional %453 %454 %475 372e5c31af7Sopenharmony_ci %475 = OpLabel 373e5c31af7Sopenharmony_ci %477 = OpAccessChain %9 %47 %1228 %30 374e5c31af7Sopenharmony_ci %478 = OpLoad %6 %477 375e5c31af7Sopenharmony_ci %479 = OpIEqual %40 %478 %28 376e5c31af7Sopenharmony_ci OpSelectionMerge %495 None 377e5c31af7Sopenharmony_ci OpBranchConditional %479 %480 %491 378e5c31af7Sopenharmony_ci %491 = OpLabel 379e5c31af7Sopenharmony_ci %494 = OpLoad %6 %477 380e5c31af7Sopenharmony_ci OpBranch %497 381e5c31af7Sopenharmony_ci %480 = OpLabel 382e5c31af7Sopenharmony_ci OpStore %477 %1362 383e5c31af7Sopenharmony_ci %490 = OpAccessChain %8 %47 %1362 384e5c31af7Sopenharmony_ci OpStore %490 %1363 385e5c31af7Sopenharmony_ci OpBranch %498 386e5c31af7Sopenharmony_ci %495 = OpLabel 387e5c31af7Sopenharmony_ci OpUnreachable 388e5c31af7Sopenharmony_ci %454 = OpLabel 389e5c31af7Sopenharmony_ci %456 = OpAccessChain %9 %47 %1228 %27 390e5c31af7Sopenharmony_ci %457 = OpLoad %6 %456 391e5c31af7Sopenharmony_ci %458 = OpIEqual %40 %457 %28 392e5c31af7Sopenharmony_ci OpSelectionMerge %474 None 393e5c31af7Sopenharmony_ci OpBranchConditional %458 %459 %470 394e5c31af7Sopenharmony_ci %470 = OpLabel 395e5c31af7Sopenharmony_ci %473 = OpLoad %6 %456 396e5c31af7Sopenharmony_ci OpBranch %497 397e5c31af7Sopenharmony_ci %459 = OpLabel 398e5c31af7Sopenharmony_ci OpStore %456 %1362 399e5c31af7Sopenharmony_ci %469 = OpAccessChain %8 %47 %1362 400e5c31af7Sopenharmony_ci OpStore %469 %1363 401e5c31af7Sopenharmony_ci OpBranch %498 402e5c31af7Sopenharmony_ci %474 = OpLabel 403e5c31af7Sopenharmony_ci OpUnreachable 404e5c31af7Sopenharmony_ci %496 = OpLabel 405e5c31af7Sopenharmony_ci OpUnreachable 406e5c31af7Sopenharmony_ci %497 = OpLabel 407e5c31af7Sopenharmony_ci %1345 = OpPhi %6 %473 %470 %494 %491 408e5c31af7Sopenharmony_ci OpBranch %443 409e5c31af7Sopenharmony_ci %498 = OpLabel 410e5c31af7Sopenharmony_ci %1229 = OpPhi %40 %263 %443 %266 %459 %266 %480 411e5c31af7Sopenharmony_ci OpSelectionMerge %500 None 412e5c31af7Sopenharmony_ci OpBranchConditional %1229 %501 %500 413e5c31af7Sopenharmony_ci %500 = OpLabel 414e5c31af7Sopenharmony_ci OpBranch %501 415e5c31af7Sopenharmony_ci %501 = OpLabel 416e5c31af7Sopenharmony_ci OpSelectionMerge %578 None 417e5c31af7Sopenharmony_ci OpSwitch %262 %519 418e5c31af7Sopenharmony_ci %519 = OpLabel 419e5c31af7Sopenharmony_ci OpBranch %520 420e5c31af7Sopenharmony_ci %520 = OpLabel 421e5c31af7Sopenharmony_ci %1236 = OpPhi %6 %24 %519 %1346 %574 422e5c31af7Sopenharmony_ci %524 = OpSLessThanEqual %40 %1236 %1364 423e5c31af7Sopenharmony_ci OpLoopMerge %575 %574 None 424e5c31af7Sopenharmony_ci OpBranchConditional %524 %525 %575 425e5c31af7Sopenharmony_ci %525 = OpLabel 426e5c31af7Sopenharmony_ci %528 = OpAccessChain %9 %47 %1236 %24 427e5c31af7Sopenharmony_ci %529 = OpLoad %6 %528 428e5c31af7Sopenharmony_ci %530 = OpSLessThanEqual %40 %172 %529 429e5c31af7Sopenharmony_ci OpSelectionMerge %573 None 430e5c31af7Sopenharmony_ci OpBranchConditional %530 %531 %552 431e5c31af7Sopenharmony_ci %552 = OpLabel 432e5c31af7Sopenharmony_ci %554 = OpAccessChain %9 %47 %1236 %30 433e5c31af7Sopenharmony_ci %555 = OpLoad %6 %554 434e5c31af7Sopenharmony_ci %556 = OpIEqual %40 %555 %28 435e5c31af7Sopenharmony_ci OpSelectionMerge %572 None 436e5c31af7Sopenharmony_ci OpBranchConditional %556 %557 %568 437e5c31af7Sopenharmony_ci %568 = OpLabel 438e5c31af7Sopenharmony_ci %571 = OpLoad %6 %554 439e5c31af7Sopenharmony_ci OpBranch %574 440e5c31af7Sopenharmony_ci %557 = OpLabel 441e5c31af7Sopenharmony_ci OpStore %554 %1364 442e5c31af7Sopenharmony_ci %567 = OpAccessChain %8 %47 %1364 443e5c31af7Sopenharmony_ci OpStore %567 %1365 444e5c31af7Sopenharmony_ci OpBranch %575 445e5c31af7Sopenharmony_ci %572 = OpLabel 446e5c31af7Sopenharmony_ci OpUnreachable 447e5c31af7Sopenharmony_ci %531 = OpLabel 448e5c31af7Sopenharmony_ci %533 = OpAccessChain %9 %47 %1236 %27 449e5c31af7Sopenharmony_ci %534 = OpLoad %6 %533 450e5c31af7Sopenharmony_ci %535 = OpIEqual %40 %534 %28 451e5c31af7Sopenharmony_ci OpSelectionMerge %551 None 452e5c31af7Sopenharmony_ci OpBranchConditional %535 %536 %547 453e5c31af7Sopenharmony_ci %547 = OpLabel 454e5c31af7Sopenharmony_ci %550 = OpLoad %6 %533 455e5c31af7Sopenharmony_ci OpBranch %574 456e5c31af7Sopenharmony_ci %536 = OpLabel 457e5c31af7Sopenharmony_ci OpStore %533 %1364 458e5c31af7Sopenharmony_ci %546 = OpAccessChain %8 %47 %1364 459e5c31af7Sopenharmony_ci OpStore %546 %1365 460e5c31af7Sopenharmony_ci OpBranch %575 461e5c31af7Sopenharmony_ci %551 = OpLabel 462e5c31af7Sopenharmony_ci OpUnreachable 463e5c31af7Sopenharmony_ci %573 = OpLabel 464e5c31af7Sopenharmony_ci OpUnreachable 465e5c31af7Sopenharmony_ci %574 = OpLabel 466e5c31af7Sopenharmony_ci %1346 = OpPhi %6 %550 %547 %571 %568 467e5c31af7Sopenharmony_ci OpBranch %520 468e5c31af7Sopenharmony_ci %575 = OpLabel 469e5c31af7Sopenharmony_ci %1237 = OpPhi %40 %263 %520 %266 %536 %266 %557 470e5c31af7Sopenharmony_ci OpSelectionMerge %577 None 471e5c31af7Sopenharmony_ci OpBranchConditional %1237 %578 %577 472e5c31af7Sopenharmony_ci %577 = OpLabel 473e5c31af7Sopenharmony_ci OpBranch %578 474e5c31af7Sopenharmony_ci %578 = OpLabel 475e5c31af7Sopenharmony_ci OpSelectionMerge %655 None 476e5c31af7Sopenharmony_ci OpSwitch %262 %596 477e5c31af7Sopenharmony_ci %596 = OpLabel 478e5c31af7Sopenharmony_ci OpBranch %597 479e5c31af7Sopenharmony_ci %597 = OpLabel 480e5c31af7Sopenharmony_ci %1244 = OpPhi %6 %24 %596 %1347 %651 481e5c31af7Sopenharmony_ci %601 = OpSLessThanEqual %40 %1244 %151 482e5c31af7Sopenharmony_ci OpLoopMerge %652 %651 None 483e5c31af7Sopenharmony_ci OpBranchConditional %601 %602 %652 484e5c31af7Sopenharmony_ci %602 = OpLabel 485e5c31af7Sopenharmony_ci %605 = OpAccessChain %9 %47 %1244 %24 486e5c31af7Sopenharmony_ci %606 = OpLoad %6 %605 487e5c31af7Sopenharmony_ci %607 = OpSLessThanEqual %40 %179 %606 488e5c31af7Sopenharmony_ci OpSelectionMerge %650 None 489e5c31af7Sopenharmony_ci OpBranchConditional %607 %608 %629 490e5c31af7Sopenharmony_ci %629 = OpLabel 491e5c31af7Sopenharmony_ci %631 = OpAccessChain %9 %47 %1244 %30 492e5c31af7Sopenharmony_ci %632 = OpLoad %6 %631 493e5c31af7Sopenharmony_ci %633 = OpIEqual %40 %632 %28 494e5c31af7Sopenharmony_ci OpSelectionMerge %649 None 495e5c31af7Sopenharmony_ci OpBranchConditional %633 %634 %645 496e5c31af7Sopenharmony_ci %645 = OpLabel 497e5c31af7Sopenharmony_ci %648 = OpLoad %6 %631 498e5c31af7Sopenharmony_ci OpBranch %651 499e5c31af7Sopenharmony_ci %634 = OpLabel 500e5c31af7Sopenharmony_ci OpStore %631 %151 501e5c31af7Sopenharmony_ci %644 = OpAccessChain %8 %47 %151 502e5c31af7Sopenharmony_ci OpStore %644 %1366 503e5c31af7Sopenharmony_ci OpBranch %652 504e5c31af7Sopenharmony_ci %649 = OpLabel 505e5c31af7Sopenharmony_ci OpUnreachable 506e5c31af7Sopenharmony_ci %608 = OpLabel 507e5c31af7Sopenharmony_ci %610 = OpAccessChain %9 %47 %1244 %27 508e5c31af7Sopenharmony_ci %611 = OpLoad %6 %610 509e5c31af7Sopenharmony_ci %612 = OpIEqual %40 %611 %28 510e5c31af7Sopenharmony_ci OpSelectionMerge %628 None 511e5c31af7Sopenharmony_ci OpBranchConditional %612 %613 %624 512e5c31af7Sopenharmony_ci %624 = OpLabel 513e5c31af7Sopenharmony_ci %627 = OpLoad %6 %610 514e5c31af7Sopenharmony_ci OpBranch %651 515e5c31af7Sopenharmony_ci %613 = OpLabel 516e5c31af7Sopenharmony_ci OpStore %610 %151 517e5c31af7Sopenharmony_ci %623 = OpAccessChain %8 %47 %151 518e5c31af7Sopenharmony_ci OpStore %623 %1366 519e5c31af7Sopenharmony_ci OpBranch %652 520e5c31af7Sopenharmony_ci %628 = OpLabel 521e5c31af7Sopenharmony_ci OpUnreachable 522e5c31af7Sopenharmony_ci %650 = OpLabel 523e5c31af7Sopenharmony_ci OpUnreachable 524e5c31af7Sopenharmony_ci %651 = OpLabel 525e5c31af7Sopenharmony_ci %1347 = OpPhi %6 %627 %624 %648 %645 526e5c31af7Sopenharmony_ci OpBranch %597 527e5c31af7Sopenharmony_ci %652 = OpLabel 528e5c31af7Sopenharmony_ci %1245 = OpPhi %40 %263 %597 %266 %613 %266 %634 529e5c31af7Sopenharmony_ci OpSelectionMerge %654 None 530e5c31af7Sopenharmony_ci OpBranchConditional %1245 %655 %654 531e5c31af7Sopenharmony_ci %654 = OpLabel 532e5c31af7Sopenharmony_ci OpBranch %655 533e5c31af7Sopenharmony_ci %655 = OpLabel 534e5c31af7Sopenharmony_ci OpSelectionMerge %732 None 535e5c31af7Sopenharmony_ci OpSwitch %262 %673 536e5c31af7Sopenharmony_ci %673 = OpLabel 537e5c31af7Sopenharmony_ci OpBranch %674 538e5c31af7Sopenharmony_ci %674 = OpLabel 539e5c31af7Sopenharmony_ci %1252 = OpPhi %6 %24 %673 %1348 %728 540e5c31af7Sopenharmony_ci %678 = OpSLessThanEqual %40 %1252 %192 541e5c31af7Sopenharmony_ci OpLoopMerge %729 %728 None 542e5c31af7Sopenharmony_ci OpBranchConditional %678 %679 %729 543e5c31af7Sopenharmony_ci %679 = OpLabel 544e5c31af7Sopenharmony_ci %682 = OpAccessChain %9 %47 %1252 %24 545e5c31af7Sopenharmony_ci %683 = OpLoad %6 %682 546e5c31af7Sopenharmony_ci %684 = OpSLessThanEqual %40 %30 %683 547e5c31af7Sopenharmony_ci OpSelectionMerge %727 None 548e5c31af7Sopenharmony_ci OpBranchConditional %684 %685 %706 549e5c31af7Sopenharmony_ci %706 = OpLabel 550e5c31af7Sopenharmony_ci %708 = OpAccessChain %9 %47 %1252 %30 551e5c31af7Sopenharmony_ci %709 = OpLoad %6 %708 552e5c31af7Sopenharmony_ci %710 = OpIEqual %40 %709 %28 553e5c31af7Sopenharmony_ci OpSelectionMerge %726 None 554e5c31af7Sopenharmony_ci OpBranchConditional %710 %711 %722 555e5c31af7Sopenharmony_ci %722 = OpLabel 556e5c31af7Sopenharmony_ci %725 = OpLoad %6 %708 557e5c31af7Sopenharmony_ci OpBranch %728 558e5c31af7Sopenharmony_ci %711 = OpLabel 559e5c31af7Sopenharmony_ci OpStore %708 %192 560e5c31af7Sopenharmony_ci %721 = OpAccessChain %8 %47 %192 561e5c31af7Sopenharmony_ci OpStore %721 %1367 562e5c31af7Sopenharmony_ci OpBranch %729 563e5c31af7Sopenharmony_ci %726 = OpLabel 564e5c31af7Sopenharmony_ci OpUnreachable 565e5c31af7Sopenharmony_ci %685 = OpLabel 566e5c31af7Sopenharmony_ci %687 = OpAccessChain %9 %47 %1252 %27 567e5c31af7Sopenharmony_ci %688 = OpLoad %6 %687 568e5c31af7Sopenharmony_ci %689 = OpIEqual %40 %688 %28 569e5c31af7Sopenharmony_ci OpSelectionMerge %705 None 570e5c31af7Sopenharmony_ci OpBranchConditional %689 %690 %701 571e5c31af7Sopenharmony_ci %701 = OpLabel 572e5c31af7Sopenharmony_ci %704 = OpLoad %6 %687 573e5c31af7Sopenharmony_ci OpBranch %728 574e5c31af7Sopenharmony_ci %690 = OpLabel 575e5c31af7Sopenharmony_ci OpStore %687 %192 576e5c31af7Sopenharmony_ci %700 = OpAccessChain %8 %47 %192 577e5c31af7Sopenharmony_ci OpStore %700 %1367 578e5c31af7Sopenharmony_ci OpBranch %729 579e5c31af7Sopenharmony_ci %705 = OpLabel 580e5c31af7Sopenharmony_ci OpUnreachable 581e5c31af7Sopenharmony_ci %727 = OpLabel 582e5c31af7Sopenharmony_ci OpUnreachable 583e5c31af7Sopenharmony_ci %728 = OpLabel 584e5c31af7Sopenharmony_ci %1348 = OpPhi %6 %704 %701 %725 %722 585e5c31af7Sopenharmony_ci OpBranch %674 586e5c31af7Sopenharmony_ci %729 = OpLabel 587e5c31af7Sopenharmony_ci %1253 = OpPhi %40 %263 %674 %266 %690 %266 %711 588e5c31af7Sopenharmony_ci OpSelectionMerge %731 None 589e5c31af7Sopenharmony_ci OpBranchConditional %1253 %732 %731 590e5c31af7Sopenharmony_ci %731 = OpLabel 591e5c31af7Sopenharmony_ci OpBranch %732 592e5c31af7Sopenharmony_ci %732 = OpLabel 593e5c31af7Sopenharmony_ci OpSelectionMerge %809 None 594e5c31af7Sopenharmony_ci OpSwitch %262 %750 595e5c31af7Sopenharmony_ci %750 = OpLabel 596e5c31af7Sopenharmony_ci OpBranch %751 597e5c31af7Sopenharmony_ci %751 = OpLabel 598e5c31af7Sopenharmony_ci %1260 = OpPhi %6 %24 %750 %1349 %805 599e5c31af7Sopenharmony_ci %755 = OpSLessThanEqual %40 %1260 %172 600e5c31af7Sopenharmony_ci OpLoopMerge %806 %805 None 601e5c31af7Sopenharmony_ci OpBranchConditional %755 %756 %806 602e5c31af7Sopenharmony_ci %756 = OpLabel 603e5c31af7Sopenharmony_ci %759 = OpAccessChain %9 %47 %1260 %24 604e5c31af7Sopenharmony_ci %760 = OpLoad %6 %759 605e5c31af7Sopenharmony_ci %761 = OpSLessThanEqual %40 %192 %760 606e5c31af7Sopenharmony_ci OpSelectionMerge %804 None 607e5c31af7Sopenharmony_ci OpBranchConditional %761 %762 %783 608e5c31af7Sopenharmony_ci %783 = OpLabel 609e5c31af7Sopenharmony_ci %785 = OpAccessChain %9 %47 %1260 %30 610e5c31af7Sopenharmony_ci %786 = OpLoad %6 %785 611e5c31af7Sopenharmony_ci %787 = OpIEqual %40 %786 %28 612e5c31af7Sopenharmony_ci OpSelectionMerge %803 None 613e5c31af7Sopenharmony_ci OpBranchConditional %787 %788 %799 614e5c31af7Sopenharmony_ci %799 = OpLabel 615e5c31af7Sopenharmony_ci %802 = OpLoad %6 %785 616e5c31af7Sopenharmony_ci OpBranch %805 617e5c31af7Sopenharmony_ci %788 = OpLabel 618e5c31af7Sopenharmony_ci OpStore %785 %172 619e5c31af7Sopenharmony_ci %798 = OpAccessChain %8 %47 %172 620e5c31af7Sopenharmony_ci OpStore %798 %1368 621e5c31af7Sopenharmony_ci OpBranch %806 622e5c31af7Sopenharmony_ci %803 = OpLabel 623e5c31af7Sopenharmony_ci OpUnreachable 624e5c31af7Sopenharmony_ci %762 = OpLabel 625e5c31af7Sopenharmony_ci %764 = OpAccessChain %9 %47 %1260 %27 626e5c31af7Sopenharmony_ci %765 = OpLoad %6 %764 627e5c31af7Sopenharmony_ci %766 = OpIEqual %40 %765 %28 628e5c31af7Sopenharmony_ci OpSelectionMerge %782 None 629e5c31af7Sopenharmony_ci OpBranchConditional %766 %767 %778 630e5c31af7Sopenharmony_ci %778 = OpLabel 631e5c31af7Sopenharmony_ci %781 = OpLoad %6 %764 632e5c31af7Sopenharmony_ci OpBranch %805 633e5c31af7Sopenharmony_ci %767 = OpLabel 634e5c31af7Sopenharmony_ci OpStore %764 %172 635e5c31af7Sopenharmony_ci %777 = OpAccessChain %8 %47 %172 636e5c31af7Sopenharmony_ci OpStore %777 %1368 637e5c31af7Sopenharmony_ci OpBranch %806 638e5c31af7Sopenharmony_ci %782 = OpLabel 639e5c31af7Sopenharmony_ci OpUnreachable 640e5c31af7Sopenharmony_ci %804 = OpLabel 641e5c31af7Sopenharmony_ci OpUnreachable 642e5c31af7Sopenharmony_ci %805 = OpLabel 643e5c31af7Sopenharmony_ci %1349 = OpPhi %6 %781 %778 %802 %799 644e5c31af7Sopenharmony_ci OpBranch %751 645e5c31af7Sopenharmony_ci %806 = OpLabel 646e5c31af7Sopenharmony_ci %1261 = OpPhi %40 %263 %751 %266 %767 %266 %788 647e5c31af7Sopenharmony_ci OpSelectionMerge %808 None 648e5c31af7Sopenharmony_ci OpBranchConditional %1261 %809 %808 649e5c31af7Sopenharmony_ci %808 = OpLabel 650e5c31af7Sopenharmony_ci OpBranch %809 651e5c31af7Sopenharmony_ci %809 = OpLabel 652e5c31af7Sopenharmony_ci OpSelectionMerge %886 None 653e5c31af7Sopenharmony_ci OpSwitch %262 %827 654e5c31af7Sopenharmony_ci %827 = OpLabel 655e5c31af7Sopenharmony_ci OpBranch %828 656e5c31af7Sopenharmony_ci %828 = OpLabel 657e5c31af7Sopenharmony_ci %1268 = OpPhi %6 %24 %827 %1350 %882 658e5c31af7Sopenharmony_ci %832 = OpSLessThanEqual %40 %1268 %179 659e5c31af7Sopenharmony_ci OpLoopMerge %883 %882 None 660e5c31af7Sopenharmony_ci OpBranchConditional %832 %833 %883 661e5c31af7Sopenharmony_ci %833 = OpLabel 662e5c31af7Sopenharmony_ci %836 = OpAccessChain %9 %47 %1268 %24 663e5c31af7Sopenharmony_ci %837 = OpLoad %6 %836 664e5c31af7Sopenharmony_ci %838 = OpSLessThanEqual %40 %199 %837 665e5c31af7Sopenharmony_ci OpSelectionMerge %881 None 666e5c31af7Sopenharmony_ci OpBranchConditional %838 %839 %860 667e5c31af7Sopenharmony_ci %860 = OpLabel 668e5c31af7Sopenharmony_ci %862 = OpAccessChain %9 %47 %1268 %30 669e5c31af7Sopenharmony_ci %863 = OpLoad %6 %862 670e5c31af7Sopenharmony_ci %864 = OpIEqual %40 %863 %28 671e5c31af7Sopenharmony_ci OpSelectionMerge %880 None 672e5c31af7Sopenharmony_ci OpBranchConditional %864 %865 %876 673e5c31af7Sopenharmony_ci %876 = OpLabel 674e5c31af7Sopenharmony_ci %879 = OpLoad %6 %862 675e5c31af7Sopenharmony_ci OpBranch %882 676e5c31af7Sopenharmony_ci %865 = OpLabel 677e5c31af7Sopenharmony_ci OpStore %862 %179 678e5c31af7Sopenharmony_ci %875 = OpAccessChain %8 %47 %179 679e5c31af7Sopenharmony_ci OpStore %875 %1369 680e5c31af7Sopenharmony_ci OpBranch %883 681e5c31af7Sopenharmony_ci %880 = OpLabel 682e5c31af7Sopenharmony_ci OpUnreachable 683e5c31af7Sopenharmony_ci %839 = OpLabel 684e5c31af7Sopenharmony_ci %841 = OpAccessChain %9 %47 %1268 %27 685e5c31af7Sopenharmony_ci %842 = OpLoad %6 %841 686e5c31af7Sopenharmony_ci %843 = OpIEqual %40 %842 %28 687e5c31af7Sopenharmony_ci OpSelectionMerge %859 None 688e5c31af7Sopenharmony_ci OpBranchConditional %843 %844 %855 689e5c31af7Sopenharmony_ci %855 = OpLabel 690e5c31af7Sopenharmony_ci %858 = OpLoad %6 %841 691e5c31af7Sopenharmony_ci OpBranch %882 692e5c31af7Sopenharmony_ci %844 = OpLabel 693e5c31af7Sopenharmony_ci OpStore %841 %179 694e5c31af7Sopenharmony_ci %854 = OpAccessChain %8 %47 %179 695e5c31af7Sopenharmony_ci OpStore %854 %1369 696e5c31af7Sopenharmony_ci OpBranch %883 697e5c31af7Sopenharmony_ci %859 = OpLabel 698e5c31af7Sopenharmony_ci OpUnreachable 699e5c31af7Sopenharmony_ci %881 = OpLabel 700e5c31af7Sopenharmony_ci OpUnreachable 701e5c31af7Sopenharmony_ci %882 = OpLabel 702e5c31af7Sopenharmony_ci %1350 = OpPhi %6 %858 %855 %879 %876 703e5c31af7Sopenharmony_ci OpBranch %828 704e5c31af7Sopenharmony_ci %883 = OpLabel 705e5c31af7Sopenharmony_ci %1269 = OpPhi %40 %263 %828 %266 %844 %266 %865 706e5c31af7Sopenharmony_ci OpSelectionMerge %885 None 707e5c31af7Sopenharmony_ci OpBranchConditional %1269 %886 %885 708e5c31af7Sopenharmony_ci %885 = OpLabel 709e5c31af7Sopenharmony_ci OpBranch %886 710e5c31af7Sopenharmony_ci %886 = OpLabel 711e5c31af7Sopenharmony_ci OpSelectionMerge %963 None 712e5c31af7Sopenharmony_ci OpSwitch %262 %904 713e5c31af7Sopenharmony_ci %904 = OpLabel 714e5c31af7Sopenharmony_ci OpBranch %905 715e5c31af7Sopenharmony_ci %905 = OpLabel 716e5c31af7Sopenharmony_ci %1276 = OpPhi %6 %24 %904 %1351 %959 717e5c31af7Sopenharmony_ci %909 = OpSLessThanEqual %40 %1276 %141 718e5c31af7Sopenharmony_ci OpLoopMerge %960 %959 None 719e5c31af7Sopenharmony_ci OpBranchConditional %909 %910 %960 720e5c31af7Sopenharmony_ci %910 = OpLabel 721e5c31af7Sopenharmony_ci %913 = OpAccessChain %9 %47 %1276 %24 722e5c31af7Sopenharmony_ci %914 = OpLoad %6 %913 723e5c31af7Sopenharmony_ci %915 = OpSLessThanEqual %40 %206 %914 724e5c31af7Sopenharmony_ci OpSelectionMerge %958 None 725e5c31af7Sopenharmony_ci OpBranchConditional %915 %916 %937 726e5c31af7Sopenharmony_ci %937 = OpLabel 727e5c31af7Sopenharmony_ci %939 = OpAccessChain %9 %47 %1276 %30 728e5c31af7Sopenharmony_ci %940 = OpLoad %6 %939 729e5c31af7Sopenharmony_ci %941 = OpIEqual %40 %940 %28 730e5c31af7Sopenharmony_ci OpSelectionMerge %957 None 731e5c31af7Sopenharmony_ci OpBranchConditional %941 %942 %953 732e5c31af7Sopenharmony_ci %953 = OpLabel 733e5c31af7Sopenharmony_ci %956 = OpLoad %6 %939 734e5c31af7Sopenharmony_ci OpBranch %959 735e5c31af7Sopenharmony_ci %942 = OpLabel 736e5c31af7Sopenharmony_ci OpStore %939 %141 737e5c31af7Sopenharmony_ci %952 = OpAccessChain %8 %47 %141 738e5c31af7Sopenharmony_ci OpStore %952 %1370 739e5c31af7Sopenharmony_ci OpBranch %960 740e5c31af7Sopenharmony_ci %957 = OpLabel 741e5c31af7Sopenharmony_ci OpUnreachable 742e5c31af7Sopenharmony_ci %916 = OpLabel 743e5c31af7Sopenharmony_ci %918 = OpAccessChain %9 %47 %1276 %27 744e5c31af7Sopenharmony_ci %919 = OpLoad %6 %918 745e5c31af7Sopenharmony_ci %920 = OpIEqual %40 %919 %28 746e5c31af7Sopenharmony_ci OpSelectionMerge %936 None 747e5c31af7Sopenharmony_ci OpBranchConditional %920 %921 %932 748e5c31af7Sopenharmony_ci %932 = OpLabel 749e5c31af7Sopenharmony_ci %935 = OpLoad %6 %918 750e5c31af7Sopenharmony_ci OpBranch %959 751e5c31af7Sopenharmony_ci %921 = OpLabel 752e5c31af7Sopenharmony_ci OpStore %918 %141 753e5c31af7Sopenharmony_ci %931 = OpAccessChain %8 %47 %141 754e5c31af7Sopenharmony_ci OpStore %931 %1370 755e5c31af7Sopenharmony_ci OpBranch %960 756e5c31af7Sopenharmony_ci %936 = OpLabel 757e5c31af7Sopenharmony_ci OpUnreachable 758e5c31af7Sopenharmony_ci %958 = OpLabel 759e5c31af7Sopenharmony_ci OpUnreachable 760e5c31af7Sopenharmony_ci %959 = OpLabel 761e5c31af7Sopenharmony_ci %1351 = OpPhi %6 %935 %932 %956 %953 762e5c31af7Sopenharmony_ci OpBranch %905 763e5c31af7Sopenharmony_ci %960 = OpLabel 764e5c31af7Sopenharmony_ci %1277 = OpPhi %40 %263 %905 %266 %921 %266 %942 765e5c31af7Sopenharmony_ci OpSelectionMerge %962 None 766e5c31af7Sopenharmony_ci OpBranchConditional %1277 %963 %962 767e5c31af7Sopenharmony_ci %962 = OpLabel 768e5c31af7Sopenharmony_ci OpBranch %963 769e5c31af7Sopenharmony_ci %963 = OpLabel 770e5c31af7Sopenharmony_ci OpBranch %213 771e5c31af7Sopenharmony_ci %213 = OpLabel 772e5c31af7Sopenharmony_ci %1290 = OpPhi %6 %1318 %963 %1287 %216 773e5c31af7Sopenharmony_ci %1281 = OpPhi %6 %24 %963 %1352 %216 774e5c31af7Sopenharmony_ci %1280 = OpPhi %6 %24 %963 %246 %216 775e5c31af7Sopenharmony_ci %220 = OpSLessThan %40 %1280 %219 776e5c31af7Sopenharmony_ci OpLoopMerge %215 %216 None 777e5c31af7Sopenharmony_ci OpBranchConditional %220 %214 %215 778e5c31af7Sopenharmony_ci %214 = OpLabel 779e5c31af7Sopenharmony_ci OpSelectionMerge %1013 None 780e5c31af7Sopenharmony_ci OpSwitch %262 %981 781e5c31af7Sopenharmony_ci %981 = OpLabel 782e5c31af7Sopenharmony_ci OpBranch %982 783e5c31af7Sopenharmony_ci %982 = OpLabel 784e5c31af7Sopenharmony_ci %1282 = OpPhi %6 %24 %981 %1371 %1009 785e5c31af7Sopenharmony_ci %985 = OpINotEqual %40 %1282 %28 786e5c31af7Sopenharmony_ci OpLoopMerge %1010 %1009 None 787e5c31af7Sopenharmony_ci OpBranchConditional %985 %986 %1010 788e5c31af7Sopenharmony_ci %986 = OpLabel 789e5c31af7Sopenharmony_ci %988 = OpAccessChain %8 %47 %1282 790e5c31af7Sopenharmony_ci %989 = OpLoad %7 %988 791e5c31af7Sopenharmony_ci %1019 = OpCompositeExtract %6 %989 0 792e5c31af7Sopenharmony_ci %1020 = OpCompositeExtract %6 %989 1 793e5c31af7Sopenharmony_ci %1021 = OpCompositeExtract %6 %989 2 794e5c31af7Sopenharmony_ci %993 = OpIEqual %40 %1019 %1280 795e5c31af7Sopenharmony_ci OpSelectionMerge %996 None 796e5c31af7Sopenharmony_ci OpBranchConditional %993 %994 %996 797e5c31af7Sopenharmony_ci %994 = OpLabel 798e5c31af7Sopenharmony_ci OpBranch %1010 799e5c31af7Sopenharmony_ci %996 = OpLabel 800e5c31af7Sopenharmony_ci %1000 = OpSGreaterThan %40 %1280 %1019 801e5c31af7Sopenharmony_ci %1371 = OpSelect %6 %1000 %1021 %1020 802e5c31af7Sopenharmony_ci OpBranch %1009 803e5c31af7Sopenharmony_ci %1009 = OpLabel 804e5c31af7Sopenharmony_ci OpBranch %982 805e5c31af7Sopenharmony_ci %1010 = OpLabel 806e5c31af7Sopenharmony_ci %1288 = OpPhi %6 %1290 %982 %1280 %994 807e5c31af7Sopenharmony_ci %1284 = OpPhi %40 %263 %982 %266 %994 808e5c31af7Sopenharmony_ci OpSelectionMerge %1012 None 809e5c31af7Sopenharmony_ci OpBranchConditional %1284 %1013 %1012 810e5c31af7Sopenharmony_ci %1012 = OpLabel 811e5c31af7Sopenharmony_ci OpBranch %1013 812e5c31af7Sopenharmony_ci %1013 = OpLabel 813e5c31af7Sopenharmony_ci %1287 = OpPhi %6 %1288 %1010 %28 %1012 814e5c31af7Sopenharmony_ci OpSelectionMerge %228 None 815e5c31af7Sopenharmony_ci OpSwitch %1280 %227 9 %226 5 %226 12 %226 15 %226 7 %226 8 %226 2 %226 6 %226 17 %226 13 %226 816e5c31af7Sopenharmony_ci %226 = OpLabel 817e5c31af7Sopenharmony_ci %231 = OpIEqual %40 %1287 %1280 818e5c31af7Sopenharmony_ci OpSelectionMerge %233 None 819e5c31af7Sopenharmony_ci OpBranchConditional %231 %232 %233 820e5c31af7Sopenharmony_ci %232 = OpLabel 821e5c31af7Sopenharmony_ci %235 = OpIAdd %6 %1281 %27 822e5c31af7Sopenharmony_ci OpBranch %233 823e5c31af7Sopenharmony_ci %233 = OpLabel 824e5c31af7Sopenharmony_ci %1354 = OpPhi %6 %1281 %226 %235 %232 825e5c31af7Sopenharmony_ci OpBranch %228 826e5c31af7Sopenharmony_ci %227 = OpLabel 827e5c31af7Sopenharmony_ci %238 = OpIEqual %40 %1287 %28 828e5c31af7Sopenharmony_ci OpSelectionMerge %240 None 829e5c31af7Sopenharmony_ci OpBranchConditional %238 %239 %240 830e5c31af7Sopenharmony_ci %239 = OpLabel 831e5c31af7Sopenharmony_ci %242 = OpIAdd %6 %1281 %27 832e5c31af7Sopenharmony_ci OpBranch %240 833e5c31af7Sopenharmony_ci %240 = OpLabel 834e5c31af7Sopenharmony_ci %1353 = OpPhi %6 %1281 %227 %242 %239 835e5c31af7Sopenharmony_ci OpBranch %228 836e5c31af7Sopenharmony_ci %228 = OpLabel 837e5c31af7Sopenharmony_ci %1352 = OpPhi %6 %1353 %240 %1354 %233 838e5c31af7Sopenharmony_ci OpBranch %216 839e5c31af7Sopenharmony_ci %216 = OpLabel 840e5c31af7Sopenharmony_ci %246 = OpIAdd %6 %1280 %27 841e5c31af7Sopenharmony_ci OpBranch %213 842e5c31af7Sopenharmony_ci %215 = OpLabel 843e5c31af7Sopenharmony_ci %248 = OpIEqual %40 %1281 %219 844e5c31af7Sopenharmony_ci OpSelectionMerge %250 None 845e5c31af7Sopenharmony_ci OpBranchConditional %248 %249 %258 846e5c31af7Sopenharmony_ci %258 = OpLabel 847e5c31af7Sopenharmony_ci OpStore %254 %259 848e5c31af7Sopenharmony_ci OpBranch %250 849e5c31af7Sopenharmony_ci %249 = OpLabel 850e5c31af7Sopenharmony_ci OpStore %254 %257 851e5c31af7Sopenharmony_ci OpBranch %250 852e5c31af7Sopenharmony_ci %250 = OpLabel 853e5c31af7Sopenharmony_ci OpReturn 854e5c31af7Sopenharmony_ci OpFunctionEnd 855e5c31af7Sopenharmony_ciEND 856e5c31af7Sopenharmony_ci 857e5c31af7Sopenharmony_ci 858e5c31af7Sopenharmony_ciBUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM 859e5c31af7Sopenharmony_ci 860e5c31af7Sopenharmony_ciPIPELINE graphics reference_pipeline 861e5c31af7Sopenharmony_ci ATTACH reference_vertex_shader 862e5c31af7Sopenharmony_ci ATTACH reference_fragment_shader 863e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 864e5c31af7Sopenharmony_ci BIND BUFFER reference_framebuffer AS color LOCATION 0 865e5c31af7Sopenharmony_ciEND 866e5c31af7Sopenharmony_ciCLEAR_COLOR reference_pipeline 0 0 0 255 867e5c31af7Sopenharmony_ci 868e5c31af7Sopenharmony_ciCLEAR reference_pipeline 869e5c31af7Sopenharmony_ciRUN reference_pipeline DRAW_RECT POS 0 0 SIZE 256 256 870e5c31af7Sopenharmony_ci 871e5c31af7Sopenharmony_ci 872e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 873e5c31af7Sopenharmony_ci 874e5c31af7Sopenharmony_ci# variant_fragment_shader is derived from the following GLSL: 875e5c31af7Sopenharmony_ci# #version 320 es 876e5c31af7Sopenharmony_ci# precision highp float; 877e5c31af7Sopenharmony_ci# 878e5c31af7Sopenharmony_ci# precision highp int; 879e5c31af7Sopenharmony_ci# 880e5c31af7Sopenharmony_ci# layout(set = 0, binding = 0) uniform buf0 881e5c31af7Sopenharmony_ci# { 882e5c31af7Sopenharmony_ci# vec2 injectionSwitch; 883e5c31af7Sopenharmony_ci# }; 884e5c31af7Sopenharmony_ci# layout(location = 0) out vec4 _GLF_color; 885e5c31af7Sopenharmony_ci# 886e5c31af7Sopenharmony_ci# struct BST 887e5c31af7Sopenharmony_ci# { 888e5c31af7Sopenharmony_ci# int data; 889e5c31af7Sopenharmony_ci# int leftIndex; 890e5c31af7Sopenharmony_ci# int rightIndex; 891e5c31af7Sopenharmony_ci# }; 892e5c31af7Sopenharmony_ci# 893e5c31af7Sopenharmony_ci# BST tree[10]; 894e5c31af7Sopenharmony_ci# 895e5c31af7Sopenharmony_ci# void makeTreeNode(inout BST tree, int data) 896e5c31af7Sopenharmony_ci# { 897e5c31af7Sopenharmony_ci# tree.data = data; 898e5c31af7Sopenharmony_ci# tree.leftIndex = -1; 899e5c31af7Sopenharmony_ci# tree.rightIndex = -1; 900e5c31af7Sopenharmony_ci# } 901e5c31af7Sopenharmony_ci# void insert(int treeIndex, int data) 902e5c31af7Sopenharmony_ci# { 903e5c31af7Sopenharmony_ci# int baseIndex = 0; 904e5c31af7Sopenharmony_ci# while (baseIndex <= treeIndex) 905e5c31af7Sopenharmony_ci# { 906e5c31af7Sopenharmony_ci# if (data <= tree[baseIndex].data) 907e5c31af7Sopenharmony_ci# { 908e5c31af7Sopenharmony_ci# if (tree[baseIndex].leftIndex == -1) 909e5c31af7Sopenharmony_ci# { 910e5c31af7Sopenharmony_ci# // Always false. 911e5c31af7Sopenharmony_ci# if ((injectionSwitch.y < injectionSwitch.x)) 912e5c31af7Sopenharmony_ci# { 913e5c31af7Sopenharmony_ci# do 914e5c31af7Sopenharmony_ci# { 915e5c31af7Sopenharmony_ci# // This is never reached. 916e5c31af7Sopenharmony_ci# discard; 917e5c31af7Sopenharmony_ci# } 918e5c31af7Sopenharmony_ci# // Always false. 919e5c31af7Sopenharmony_ci# while (injectionSwitch.y < injectionSwitch.x); 920e5c31af7Sopenharmony_ci# } 921e5c31af7Sopenharmony_ci# tree[baseIndex].leftIndex = treeIndex; 922e5c31af7Sopenharmony_ci# makeTreeNode(tree[treeIndex], data); 923e5c31af7Sopenharmony_ci# // Iterates once. 924e5c31af7Sopenharmony_ci# for (int int_i = 0; int_i < int((injectionSwitch.y)); int_i++) 925e5c31af7Sopenharmony_ci# { 926e5c31af7Sopenharmony_ci# return; 927e5c31af7Sopenharmony_ci# } 928e5c31af7Sopenharmony_ci# } 929e5c31af7Sopenharmony_ci# else 930e5c31af7Sopenharmony_ci# { 931e5c31af7Sopenharmony_ci# baseIndex = tree[baseIndex].leftIndex; 932e5c31af7Sopenharmony_ci# continue; 933e5c31af7Sopenharmony_ci# } 934e5c31af7Sopenharmony_ci# } 935e5c31af7Sopenharmony_ci# else 936e5c31af7Sopenharmony_ci# { 937e5c31af7Sopenharmony_ci# if (tree[baseIndex].rightIndex == -1) 938e5c31af7Sopenharmony_ci# { 939e5c31af7Sopenharmony_ci# tree[baseIndex].rightIndex = treeIndex; 940e5c31af7Sopenharmony_ci# makeTreeNode(tree[treeIndex], data); 941e5c31af7Sopenharmony_ci# return; 942e5c31af7Sopenharmony_ci# } 943e5c31af7Sopenharmony_ci# else 944e5c31af7Sopenharmony_ci# { 945e5c31af7Sopenharmony_ci# baseIndex = tree[baseIndex].rightIndex; 946e5c31af7Sopenharmony_ci# continue; 947e5c31af7Sopenharmony_ci# } 948e5c31af7Sopenharmony_ci# } 949e5c31af7Sopenharmony_ci# } 950e5c31af7Sopenharmony_ci# } 951e5c31af7Sopenharmony_ci# int search(int target) 952e5c31af7Sopenharmony_ci# { 953e5c31af7Sopenharmony_ci# BST currentNode; 954e5c31af7Sopenharmony_ci# int index = 0; 955e5c31af7Sopenharmony_ci# while (index != -1) 956e5c31af7Sopenharmony_ci# { 957e5c31af7Sopenharmony_ci# currentNode = tree[index]; 958e5c31af7Sopenharmony_ci# if (currentNode.data == target) 959e5c31af7Sopenharmony_ci# { 960e5c31af7Sopenharmony_ci# return target; 961e5c31af7Sopenharmony_ci# } 962e5c31af7Sopenharmony_ci# index = target > currentNode.data ? currentNode.rightIndex : currentNode.leftIndex; 963e5c31af7Sopenharmony_ci# } 964e5c31af7Sopenharmony_ci# return -1; 965e5c31af7Sopenharmony_ci# } 966e5c31af7Sopenharmony_ci# void main() 967e5c31af7Sopenharmony_ci# { 968e5c31af7Sopenharmony_ci# int treeIndex = 0; 969e5c31af7Sopenharmony_ci# makeTreeNode(tree[0], 9); 970e5c31af7Sopenharmony_ci# treeIndex++; 971e5c31af7Sopenharmony_ci# insert(treeIndex, 5); 972e5c31af7Sopenharmony_ci# treeIndex++; 973e5c31af7Sopenharmony_ci# // gl_FragCoord.y < 0.0 == false 974e5c31af7Sopenharmony_ci# // Iterates once, 975e5c31af7Sopenharmony_ci# for (int int_i = 0; (gl_FragCoord.y < 0.0) || (int_i != int(injectionSwitch.y)); int_i++) 976e5c31af7Sopenharmony_ci# { 977e5c31af7Sopenharmony_ci# insert(treeIndex, 12); 978e5c31af7Sopenharmony_ci# } 979e5c31af7Sopenharmony_ci# treeIndex++; 980e5c31af7Sopenharmony_ci# insert(treeIndex, 15); 981e5c31af7Sopenharmony_ci# treeIndex++; 982e5c31af7Sopenharmony_ci# insert(treeIndex, 7); 983e5c31af7Sopenharmony_ci# treeIndex++; 984e5c31af7Sopenharmony_ci# insert(treeIndex, 8); 985e5c31af7Sopenharmony_ci# treeIndex++; 986e5c31af7Sopenharmony_ci# insert(treeIndex, 2); 987e5c31af7Sopenharmony_ci# treeIndex++; 988e5c31af7Sopenharmony_ci# insert(treeIndex, 6); 989e5c31af7Sopenharmony_ci# treeIndex++; 990e5c31af7Sopenharmony_ci# insert(treeIndex, 17); 991e5c31af7Sopenharmony_ci# treeIndex++; 992e5c31af7Sopenharmony_ci# insert(treeIndex, 13); 993e5c31af7Sopenharmony_ci# int count = 0; 994e5c31af7Sopenharmony_ci# for (int i = 0; i < 20; i++) 995e5c31af7Sopenharmony_ci# { 996e5c31af7Sopenharmony_ci# int result = search(i); 997e5c31af7Sopenharmony_ci# switch (i) 998e5c31af7Sopenharmony_ci# { 999e5c31af7Sopenharmony_ci# case 9: 1000e5c31af7Sopenharmony_ci# case 5: 1001e5c31af7Sopenharmony_ci# case 12: 1002e5c31af7Sopenharmony_ci# case 15: 1003e5c31af7Sopenharmony_ci# case 7: 1004e5c31af7Sopenharmony_ci# case 8: 1005e5c31af7Sopenharmony_ci# case 2: 1006e5c31af7Sopenharmony_ci# case 6: 1007e5c31af7Sopenharmony_ci# case 17: 1008e5c31af7Sopenharmony_ci# case 13: 1009e5c31af7Sopenharmony_ci# if (result == i) 1010e5c31af7Sopenharmony_ci# { 1011e5c31af7Sopenharmony_ci# count++; 1012e5c31af7Sopenharmony_ci# } 1013e5c31af7Sopenharmony_ci# break; 1014e5c31af7Sopenharmony_ci# default: 1015e5c31af7Sopenharmony_ci# if (result == -1) 1016e5c31af7Sopenharmony_ci# { 1017e5c31af7Sopenharmony_ci# count++; 1018e5c31af7Sopenharmony_ci# } 1019e5c31af7Sopenharmony_ci# break; 1020e5c31af7Sopenharmony_ci# } 1021e5c31af7Sopenharmony_ci# } 1022e5c31af7Sopenharmony_ci# if (count == 20) 1023e5c31af7Sopenharmony_ci# { 1024e5c31af7Sopenharmony_ci# _GLF_color = vec4(1.0, 0.0, 0.0, 1.0); 1025e5c31af7Sopenharmony_ci# } 1026e5c31af7Sopenharmony_ci# else 1027e5c31af7Sopenharmony_ci# { 1028e5c31af7Sopenharmony_ci# _GLF_color = vec4(0.0, 0.0, 1.0, 1.0); 1029e5c31af7Sopenharmony_ci# } 1030e5c31af7Sopenharmony_ci# } 1031e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 1032e5c31af7Sopenharmony_ci; SPIR-V 1033e5c31af7Sopenharmony_ci; Version: 1.0 1034e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 10 1035e5c31af7Sopenharmony_ci; Bound: 1740 1036e5c31af7Sopenharmony_ci; Schema: 0 1037e5c31af7Sopenharmony_ci OpCapability Shader 1038e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 1039e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 1040e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %204 %315 1041e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 1042e5c31af7Sopenharmony_ci OpSource ESSL 320 1043e5c31af7Sopenharmony_ci OpName %4 "main" 1044e5c31af7Sopenharmony_ci OpName %7 "BST" 1045e5c31af7Sopenharmony_ci OpMemberName %7 0 "data" 1046e5c31af7Sopenharmony_ci OpMemberName %7 1 "leftIndex" 1047e5c31af7Sopenharmony_ci OpMemberName %7 2 "rightIndex" 1048e5c31af7Sopenharmony_ci OpName %47 "tree" 1049e5c31af7Sopenharmony_ci OpName %63 "buf0" 1050e5c31af7Sopenharmony_ci OpMemberName %63 0 "injectionSwitch" 1051e5c31af7Sopenharmony_ci OpName %65 "" 1052e5c31af7Sopenharmony_ci OpName %204 "gl_FragCoord" 1053e5c31af7Sopenharmony_ci OpName %315 "_GLF_color" 1054e5c31af7Sopenharmony_ci OpMemberDecorate %63 0 Offset 0 1055e5c31af7Sopenharmony_ci OpDecorate %63 Block 1056e5c31af7Sopenharmony_ci OpDecorate %65 DescriptorSet 0 1057e5c31af7Sopenharmony_ci OpDecorate %65 Binding 0 1058e5c31af7Sopenharmony_ci OpDecorate %204 BuiltIn FragCoord 1059e5c31af7Sopenharmony_ci OpDecorate %315 Location 0 1060e5c31af7Sopenharmony_ci %2 = OpTypeVoid 1061e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 1062e5c31af7Sopenharmony_ci %6 = OpTypeInt 32 1 1063e5c31af7Sopenharmony_ci %7 = OpTypeStruct %6 %6 %6 1064e5c31af7Sopenharmony_ci %8 = OpTypePointer Function %7 1065e5c31af7Sopenharmony_ci %9 = OpTypePointer Function %6 1066e5c31af7Sopenharmony_ci %24 = OpConstant %6 0 1067e5c31af7Sopenharmony_ci %27 = OpConstant %6 1 1068e5c31af7Sopenharmony_ci %28 = OpConstant %6 -1 1069e5c31af7Sopenharmony_ci %30 = OpConstant %6 2 1070e5c31af7Sopenharmony_ci %40 = OpTypeBool 1071e5c31af7Sopenharmony_ci %43 = OpTypeInt 32 0 1072e5c31af7Sopenharmony_ci %44 = OpConstant %43 10 1073e5c31af7Sopenharmony_ci %45 = OpTypeArray %7 %44 1074e5c31af7Sopenharmony_ci %61 = OpTypeFloat 32 1075e5c31af7Sopenharmony_ci %62 = OpTypeVector %61 2 1076e5c31af7Sopenharmony_ci %63 = OpTypeStruct %62 1077e5c31af7Sopenharmony_ci %64 = OpTypePointer Uniform %63 1078e5c31af7Sopenharmony_ci %65 = OpVariable %64 Uniform 1079e5c31af7Sopenharmony_ci %66 = OpConstant %43 1 1080e5c31af7Sopenharmony_ci %67 = OpTypePointer Uniform %61 1081e5c31af7Sopenharmony_ci %70 = OpConstant %43 0 1082e5c31af7Sopenharmony_ci %179 = OpConstant %6 9 1083e5c31af7Sopenharmony_ci %189 = OpConstant %6 5 1084e5c31af7Sopenharmony_ci %202 = OpTypeVector %61 4 1085e5c31af7Sopenharmony_ci %203 = OpTypePointer Input %202 1086e5c31af7Sopenharmony_ci %204 = OpVariable %203 Input 1087e5c31af7Sopenharmony_ci %205 = OpTypePointer Input %61 1088e5c31af7Sopenharmony_ci %208 = OpConstant %61 0 1089e5c31af7Sopenharmony_ci %219 = OpConstant %6 12 1090e5c31af7Sopenharmony_ci %228 = OpConstant %6 15 1091e5c31af7Sopenharmony_ci %235 = OpConstant %6 7 1092e5c31af7Sopenharmony_ci %242 = OpConstant %6 8 1093e5c31af7Sopenharmony_ci %255 = OpConstant %6 6 1094e5c31af7Sopenharmony_ci %262 = OpConstant %6 17 1095e5c31af7Sopenharmony_ci %269 = OpConstant %6 13 1096e5c31af7Sopenharmony_ci %282 = OpConstant %6 20 1097e5c31af7Sopenharmony_ci %314 = OpTypePointer Output %202 1098e5c31af7Sopenharmony_ci %315 = OpVariable %314 Output 1099e5c31af7Sopenharmony_ci %316 = OpConstant %61 1 1100e5c31af7Sopenharmony_ci %317 = OpConstantComposite %202 %316 %208 %208 %316 1101e5c31af7Sopenharmony_ci %319 = OpConstantComposite %202 %208 %208 %316 %316 1102e5c31af7Sopenharmony_ci %322 = OpConstantFalse %40 1103e5c31af7Sopenharmony_ci %325 = OpConstantTrue %40 1104e5c31af7Sopenharmony_ci %1301 = OpTypePointer Function %45 1105e5c31af7Sopenharmony_ci %1620 = OpUndef %6 1106e5c31af7Sopenharmony_ci %1727 = OpConstantComposite %7 %179 %28 %28 1107e5c31af7Sopenharmony_ci %1728 = OpConstantComposite %7 %189 %28 %28 1108e5c31af7Sopenharmony_ci %1729 = OpConstant %6 3 1109e5c31af7Sopenharmony_ci %1730 = OpConstantComposite %7 %219 %28 %28 1110e5c31af7Sopenharmony_ci %1731 = OpConstantComposite %7 %228 %28 %28 1111e5c31af7Sopenharmony_ci %1732 = OpConstant %6 4 1112e5c31af7Sopenharmony_ci %1733 = OpConstantComposite %7 %235 %28 %28 1113e5c31af7Sopenharmony_ci %1734 = OpConstantComposite %7 %242 %28 %28 1114e5c31af7Sopenharmony_ci %1735 = OpConstantComposite %7 %30 %28 %28 1115e5c31af7Sopenharmony_ci %1736 = OpConstantComposite %7 %255 %28 %28 1116e5c31af7Sopenharmony_ci %1737 = OpConstantComposite %7 %262 %28 %28 1117e5c31af7Sopenharmony_ci %1738 = OpConstantComposite %7 %269 %28 %28 1118e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 1119e5c31af7Sopenharmony_ci %5 = OpLabel 1120e5c31af7Sopenharmony_ci %47 = OpVariable %1301 Function 1121e5c31af7Sopenharmony_ci %186 = OpAccessChain %8 %47 %24 1122e5c31af7Sopenharmony_ci OpStore %186 %1727 1123e5c31af7Sopenharmony_ci OpSelectionMerge %432 None 1124e5c31af7Sopenharmony_ci OpSwitch %70 %350 1125e5c31af7Sopenharmony_ci %350 = OpLabel 1126e5c31af7Sopenharmony_ci OpBranch %351 1127e5c31af7Sopenharmony_ci %351 = OpLabel 1128e5c31af7Sopenharmony_ci %1501 = OpPhi %40 %322 %350 %1674 %428 1129e5c31af7Sopenharmony_ci %1498 = OpPhi %6 %24 %350 %1671 %428 1130e5c31af7Sopenharmony_ci %355 = OpSLessThanEqual %40 %1498 %27 1131e5c31af7Sopenharmony_ci OpLoopMerge %429 %428 None 1132e5c31af7Sopenharmony_ci OpBranchConditional %355 %356 %429 1133e5c31af7Sopenharmony_ci %356 = OpLabel 1134e5c31af7Sopenharmony_ci %359 = OpAccessChain %9 %47 %1498 %24 1135e5c31af7Sopenharmony_ci %360 = OpLoad %6 %359 1136e5c31af7Sopenharmony_ci %361 = OpSLessThanEqual %40 %189 %360 1137e5c31af7Sopenharmony_ci OpSelectionMerge %427 None 1138e5c31af7Sopenharmony_ci OpBranchConditional %361 %362 %406 1139e5c31af7Sopenharmony_ci %406 = OpLabel 1140e5c31af7Sopenharmony_ci %408 = OpAccessChain %9 %47 %1498 %30 1141e5c31af7Sopenharmony_ci %409 = OpLoad %6 %408 1142e5c31af7Sopenharmony_ci %410 = OpIEqual %40 %409 %28 1143e5c31af7Sopenharmony_ci OpSelectionMerge %426 None 1144e5c31af7Sopenharmony_ci OpBranchConditional %410 %411 %422 1145e5c31af7Sopenharmony_ci %422 = OpLabel 1146e5c31af7Sopenharmony_ci %425 = OpLoad %6 %408 1147e5c31af7Sopenharmony_ci OpBranch %428 1148e5c31af7Sopenharmony_ci %411 = OpLabel 1149e5c31af7Sopenharmony_ci OpStore %408 %27 1150e5c31af7Sopenharmony_ci %421 = OpAccessChain %8 %47 %27 1151e5c31af7Sopenharmony_ci OpStore %421 %1728 1152e5c31af7Sopenharmony_ci OpBranch %429 1153e5c31af7Sopenharmony_ci %426 = OpLabel 1154e5c31af7Sopenharmony_ci OpUnreachable 1155e5c31af7Sopenharmony_ci %362 = OpLabel 1156e5c31af7Sopenharmony_ci %364 = OpAccessChain %9 %47 %1498 %27 1157e5c31af7Sopenharmony_ci %365 = OpLoad %6 %364 1158e5c31af7Sopenharmony_ci %366 = OpIEqual %40 %365 %28 1159e5c31af7Sopenharmony_ci OpSelectionMerge %405 None 1160e5c31af7Sopenharmony_ci OpBranchConditional %366 %367 %401 1161e5c31af7Sopenharmony_ci %401 = OpLabel 1162e5c31af7Sopenharmony_ci %404 = OpLoad %6 %364 1163e5c31af7Sopenharmony_ci OpBranch %428 1164e5c31af7Sopenharmony_ci %367 = OpLabel 1165e5c31af7Sopenharmony_ci %368 = OpAccessChain %67 %65 %24 %66 1166e5c31af7Sopenharmony_ci %369 = OpLoad %61 %368 1167e5c31af7Sopenharmony_ci %370 = OpAccessChain %67 %65 %24 %70 1168e5c31af7Sopenharmony_ci %371 = OpLoad %61 %370 1169e5c31af7Sopenharmony_ci %372 = OpFOrdLessThan %40 %369 %371 1170e5c31af7Sopenharmony_ci OpSelectionMerge %378 None 1171e5c31af7Sopenharmony_ci OpBranchConditional %372 %373 %378 1172e5c31af7Sopenharmony_ci %373 = OpLabel 1173e5c31af7Sopenharmony_ci OpBranch %374 1174e5c31af7Sopenharmony_ci %374 = OpLabel 1175e5c31af7Sopenharmony_ci OpLoopMerge %377 %376 None 1176e5c31af7Sopenharmony_ci OpBranch %375 1177e5c31af7Sopenharmony_ci %375 = OpLabel 1178e5c31af7Sopenharmony_ci OpKill 1179e5c31af7Sopenharmony_ci %376 = OpLabel 1180e5c31af7Sopenharmony_ci OpBranch %374 1181e5c31af7Sopenharmony_ci %377 = OpLabel 1182e5c31af7Sopenharmony_ci OpUnreachable 1183e5c31af7Sopenharmony_ci %378 = OpLabel 1184e5c31af7Sopenharmony_ci OpStore %364 %27 1185e5c31af7Sopenharmony_ci %388 = OpAccessChain %8 %47 %27 1186e5c31af7Sopenharmony_ci OpStore %388 %1728 1187e5c31af7Sopenharmony_ci OpBranch %389 1188e5c31af7Sopenharmony_ci %389 = OpLabel 1189e5c31af7Sopenharmony_ci %394 = OpConvertFToS %6 %369 1190e5c31af7Sopenharmony_ci %395 = OpSLessThan %40 %24 %394 1191e5c31af7Sopenharmony_ci OpLoopMerge %398 %397 None 1192e5c31af7Sopenharmony_ci OpBranchConditional %395 %396 %398 1193e5c31af7Sopenharmony_ci %396 = OpLabel 1194e5c31af7Sopenharmony_ci OpBranch %398 1195e5c31af7Sopenharmony_ci %397 = OpLabel 1196e5c31af7Sopenharmony_ci OpBranch %389 1197e5c31af7Sopenharmony_ci %398 = OpLabel 1198e5c31af7Sopenharmony_ci %1499 = OpPhi %40 %1501 %389 %325 %396 1199e5c31af7Sopenharmony_ci OpSelectionMerge %400 None 1200e5c31af7Sopenharmony_ci OpBranchConditional %1499 %429 %400 1201e5c31af7Sopenharmony_ci %400 = OpLabel 1202e5c31af7Sopenharmony_ci OpBranch %405 1203e5c31af7Sopenharmony_ci %405 = OpLabel 1204e5c31af7Sopenharmony_ci OpBranch %427 1205e5c31af7Sopenharmony_ci %427 = OpLabel 1206e5c31af7Sopenharmony_ci OpBranch %428 1207e5c31af7Sopenharmony_ci %428 = OpLabel 1208e5c31af7Sopenharmony_ci %1674 = OpPhi %40 %1501 %401 %1501 %422 %1499 %427 1209e5c31af7Sopenharmony_ci %1671 = OpPhi %6 %404 %401 %425 %422 %1498 %427 1210e5c31af7Sopenharmony_ci OpBranch %351 1211e5c31af7Sopenharmony_ci %429 = OpLabel 1212e5c31af7Sopenharmony_ci %1502 = OpPhi %40 %1501 %351 %1499 %398 %325 %411 1213e5c31af7Sopenharmony_ci OpSelectionMerge %431 None 1214e5c31af7Sopenharmony_ci OpBranchConditional %1502 %432 %431 1215e5c31af7Sopenharmony_ci %431 = OpLabel 1216e5c31af7Sopenharmony_ci OpBranch %432 1217e5c31af7Sopenharmony_ci %432 = OpLabel 1218e5c31af7Sopenharmony_ci OpBranch %197 1219e5c31af7Sopenharmony_ci %197 = OpLabel 1220e5c31af7Sopenharmony_ci %1509 = OpPhi %6 %24 %432 %225 %200 1221e5c31af7Sopenharmony_ci OpLoopMerge %199 %200 None 1222e5c31af7Sopenharmony_ci OpBranch %201 1223e5c31af7Sopenharmony_ci %201 = OpLabel 1224e5c31af7Sopenharmony_ci %206 = OpAccessChain %205 %204 %66 1225e5c31af7Sopenharmony_ci %207 = OpLoad %61 %206 1226e5c31af7Sopenharmony_ci %209 = OpFOrdLessThan %40 %207 %208 1227e5c31af7Sopenharmony_ci %210 = OpLogicalNot %40 %209 1228e5c31af7Sopenharmony_ci OpSelectionMerge %212 None 1229e5c31af7Sopenharmony_ci OpBranchConditional %210 %211 %212 1230e5c31af7Sopenharmony_ci %211 = OpLabel 1231e5c31af7Sopenharmony_ci %214 = OpAccessChain %67 %65 %24 %66 1232e5c31af7Sopenharmony_ci %215 = OpLoad %61 %214 1233e5c31af7Sopenharmony_ci %216 = OpConvertFToS %6 %215 1234e5c31af7Sopenharmony_ci %217 = OpINotEqual %40 %1509 %216 1235e5c31af7Sopenharmony_ci OpBranch %212 1236e5c31af7Sopenharmony_ci %212 = OpLabel 1237e5c31af7Sopenharmony_ci %218 = OpPhi %40 %209 %201 %217 %211 1238e5c31af7Sopenharmony_ci OpBranchConditional %218 %198 %199 1239e5c31af7Sopenharmony_ci %198 = OpLabel 1240e5c31af7Sopenharmony_ci OpSelectionMerge %534 None 1241e5c31af7Sopenharmony_ci OpSwitch %70 %452 1242e5c31af7Sopenharmony_ci %452 = OpLabel 1243e5c31af7Sopenharmony_ci OpBranch %453 1244e5c31af7Sopenharmony_ci %453 = OpLabel 1245e5c31af7Sopenharmony_ci %1662 = OpPhi %40 %322 %452 %1726 %530 1246e5c31af7Sopenharmony_ci %1659 = OpPhi %6 %24 %452 %1723 %530 1247e5c31af7Sopenharmony_ci %457 = OpSLessThanEqual %40 %1659 %30 1248e5c31af7Sopenharmony_ci OpLoopMerge %531 %530 None 1249e5c31af7Sopenharmony_ci OpBranchConditional %457 %458 %531 1250e5c31af7Sopenharmony_ci %458 = OpLabel 1251e5c31af7Sopenharmony_ci %461 = OpAccessChain %9 %47 %1659 %24 1252e5c31af7Sopenharmony_ci %462 = OpLoad %6 %461 1253e5c31af7Sopenharmony_ci %463 = OpSLessThanEqual %40 %219 %462 1254e5c31af7Sopenharmony_ci OpSelectionMerge %529 None 1255e5c31af7Sopenharmony_ci OpBranchConditional %463 %464 %508 1256e5c31af7Sopenharmony_ci %508 = OpLabel 1257e5c31af7Sopenharmony_ci %510 = OpAccessChain %9 %47 %1659 %30 1258e5c31af7Sopenharmony_ci %511 = OpLoad %6 %510 1259e5c31af7Sopenharmony_ci %512 = OpIEqual %40 %511 %28 1260e5c31af7Sopenharmony_ci OpSelectionMerge %528 None 1261e5c31af7Sopenharmony_ci OpBranchConditional %512 %513 %524 1262e5c31af7Sopenharmony_ci %524 = OpLabel 1263e5c31af7Sopenharmony_ci %527 = OpLoad %6 %510 1264e5c31af7Sopenharmony_ci OpBranch %530 1265e5c31af7Sopenharmony_ci %513 = OpLabel 1266e5c31af7Sopenharmony_ci OpStore %510 %30 1267e5c31af7Sopenharmony_ci %523 = OpAccessChain %8 %47 %30 1268e5c31af7Sopenharmony_ci OpStore %523 %1730 1269e5c31af7Sopenharmony_ci OpBranch %531 1270e5c31af7Sopenharmony_ci %528 = OpLabel 1271e5c31af7Sopenharmony_ci OpUnreachable 1272e5c31af7Sopenharmony_ci %464 = OpLabel 1273e5c31af7Sopenharmony_ci %466 = OpAccessChain %9 %47 %1659 %27 1274e5c31af7Sopenharmony_ci %467 = OpLoad %6 %466 1275e5c31af7Sopenharmony_ci %468 = OpIEqual %40 %467 %28 1276e5c31af7Sopenharmony_ci OpSelectionMerge %507 None 1277e5c31af7Sopenharmony_ci OpBranchConditional %468 %469 %503 1278e5c31af7Sopenharmony_ci %503 = OpLabel 1279e5c31af7Sopenharmony_ci %506 = OpLoad %6 %466 1280e5c31af7Sopenharmony_ci OpBranch %530 1281e5c31af7Sopenharmony_ci %469 = OpLabel 1282e5c31af7Sopenharmony_ci %470 = OpAccessChain %67 %65 %24 %66 1283e5c31af7Sopenharmony_ci %471 = OpLoad %61 %470 1284e5c31af7Sopenharmony_ci %472 = OpAccessChain %67 %65 %24 %70 1285e5c31af7Sopenharmony_ci %473 = OpLoad %61 %472 1286e5c31af7Sopenharmony_ci %474 = OpFOrdLessThan %40 %471 %473 1287e5c31af7Sopenharmony_ci OpSelectionMerge %480 None 1288e5c31af7Sopenharmony_ci OpBranchConditional %474 %475 %480 1289e5c31af7Sopenharmony_ci %475 = OpLabel 1290e5c31af7Sopenharmony_ci OpBranch %476 1291e5c31af7Sopenharmony_ci %476 = OpLabel 1292e5c31af7Sopenharmony_ci OpLoopMerge %479 %478 None 1293e5c31af7Sopenharmony_ci OpBranch %477 1294e5c31af7Sopenharmony_ci %477 = OpLabel 1295e5c31af7Sopenharmony_ci OpKill 1296e5c31af7Sopenharmony_ci %478 = OpLabel 1297e5c31af7Sopenharmony_ci OpBranch %476 1298e5c31af7Sopenharmony_ci %479 = OpLabel 1299e5c31af7Sopenharmony_ci OpUnreachable 1300e5c31af7Sopenharmony_ci %480 = OpLabel 1301e5c31af7Sopenharmony_ci OpStore %466 %30 1302e5c31af7Sopenharmony_ci %490 = OpAccessChain %8 %47 %30 1303e5c31af7Sopenharmony_ci OpStore %490 %1730 1304e5c31af7Sopenharmony_ci OpBranch %491 1305e5c31af7Sopenharmony_ci %491 = OpLabel 1306e5c31af7Sopenharmony_ci %496 = OpConvertFToS %6 %471 1307e5c31af7Sopenharmony_ci %497 = OpSLessThan %40 %24 %496 1308e5c31af7Sopenharmony_ci OpLoopMerge %500 %499 None 1309e5c31af7Sopenharmony_ci OpBranchConditional %497 %498 %500 1310e5c31af7Sopenharmony_ci %498 = OpLabel 1311e5c31af7Sopenharmony_ci OpBranch %500 1312e5c31af7Sopenharmony_ci %499 = OpLabel 1313e5c31af7Sopenharmony_ci OpBranch %491 1314e5c31af7Sopenharmony_ci %500 = OpLabel 1315e5c31af7Sopenharmony_ci %1660 = OpPhi %40 %1662 %491 %325 %498 1316e5c31af7Sopenharmony_ci OpSelectionMerge %502 None 1317e5c31af7Sopenharmony_ci OpBranchConditional %1660 %531 %502 1318e5c31af7Sopenharmony_ci %502 = OpLabel 1319e5c31af7Sopenharmony_ci OpBranch %507 1320e5c31af7Sopenharmony_ci %507 = OpLabel 1321e5c31af7Sopenharmony_ci OpBranch %529 1322e5c31af7Sopenharmony_ci %529 = OpLabel 1323e5c31af7Sopenharmony_ci OpBranch %530 1324e5c31af7Sopenharmony_ci %530 = OpLabel 1325e5c31af7Sopenharmony_ci %1726 = OpPhi %40 %1662 %503 %1662 %524 %1660 %529 1326e5c31af7Sopenharmony_ci %1723 = OpPhi %6 %506 %503 %527 %524 %1659 %529 1327e5c31af7Sopenharmony_ci OpBranch %453 1328e5c31af7Sopenharmony_ci %531 = OpLabel 1329e5c31af7Sopenharmony_ci %1663 = OpPhi %40 %1662 %453 %1660 %500 %325 %513 1330e5c31af7Sopenharmony_ci OpSelectionMerge %533 None 1331e5c31af7Sopenharmony_ci OpBranchConditional %1663 %534 %533 1332e5c31af7Sopenharmony_ci %533 = OpLabel 1333e5c31af7Sopenharmony_ci OpBranch %534 1334e5c31af7Sopenharmony_ci %534 = OpLabel 1335e5c31af7Sopenharmony_ci OpBranch %200 1336e5c31af7Sopenharmony_ci %200 = OpLabel 1337e5c31af7Sopenharmony_ci %225 = OpIAdd %6 %1509 %27 1338e5c31af7Sopenharmony_ci OpBranch %197 1339e5c31af7Sopenharmony_ci %199 = OpLabel 1340e5c31af7Sopenharmony_ci OpSelectionMerge %636 None 1341e5c31af7Sopenharmony_ci OpSwitch %70 %554 1342e5c31af7Sopenharmony_ci %554 = OpLabel 1343e5c31af7Sopenharmony_ci OpBranch %555 1344e5c31af7Sopenharmony_ci %555 = OpLabel 1345e5c31af7Sopenharmony_ci %1515 = OpPhi %40 %322 %554 %1685 %632 1346e5c31af7Sopenharmony_ci %1512 = OpPhi %6 %24 %554 %1682 %632 1347e5c31af7Sopenharmony_ci %559 = OpSLessThanEqual %40 %1512 %1729 1348e5c31af7Sopenharmony_ci OpLoopMerge %633 %632 None 1349e5c31af7Sopenharmony_ci OpBranchConditional %559 %560 %633 1350e5c31af7Sopenharmony_ci %560 = OpLabel 1351e5c31af7Sopenharmony_ci %563 = OpAccessChain %9 %47 %1512 %24 1352e5c31af7Sopenharmony_ci %564 = OpLoad %6 %563 1353e5c31af7Sopenharmony_ci %565 = OpSLessThanEqual %40 %228 %564 1354e5c31af7Sopenharmony_ci OpSelectionMerge %631 None 1355e5c31af7Sopenharmony_ci OpBranchConditional %565 %566 %610 1356e5c31af7Sopenharmony_ci %610 = OpLabel 1357e5c31af7Sopenharmony_ci %612 = OpAccessChain %9 %47 %1512 %30 1358e5c31af7Sopenharmony_ci %613 = OpLoad %6 %612 1359e5c31af7Sopenharmony_ci %614 = OpIEqual %40 %613 %28 1360e5c31af7Sopenharmony_ci OpSelectionMerge %630 None 1361e5c31af7Sopenharmony_ci OpBranchConditional %614 %615 %626 1362e5c31af7Sopenharmony_ci %626 = OpLabel 1363e5c31af7Sopenharmony_ci %629 = OpLoad %6 %612 1364e5c31af7Sopenharmony_ci OpBranch %632 1365e5c31af7Sopenharmony_ci %615 = OpLabel 1366e5c31af7Sopenharmony_ci OpStore %612 %1729 1367e5c31af7Sopenharmony_ci %625 = OpAccessChain %8 %47 %1729 1368e5c31af7Sopenharmony_ci OpStore %625 %1731 1369e5c31af7Sopenharmony_ci OpBranch %633 1370e5c31af7Sopenharmony_ci %630 = OpLabel 1371e5c31af7Sopenharmony_ci OpUnreachable 1372e5c31af7Sopenharmony_ci %566 = OpLabel 1373e5c31af7Sopenharmony_ci %568 = OpAccessChain %9 %47 %1512 %27 1374e5c31af7Sopenharmony_ci %569 = OpLoad %6 %568 1375e5c31af7Sopenharmony_ci %570 = OpIEqual %40 %569 %28 1376e5c31af7Sopenharmony_ci OpSelectionMerge %609 None 1377e5c31af7Sopenharmony_ci OpBranchConditional %570 %571 %605 1378e5c31af7Sopenharmony_ci %605 = OpLabel 1379e5c31af7Sopenharmony_ci %608 = OpLoad %6 %568 1380e5c31af7Sopenharmony_ci OpBranch %632 1381e5c31af7Sopenharmony_ci %571 = OpLabel 1382e5c31af7Sopenharmony_ci %572 = OpAccessChain %67 %65 %24 %66 1383e5c31af7Sopenharmony_ci %573 = OpLoad %61 %572 1384e5c31af7Sopenharmony_ci %574 = OpAccessChain %67 %65 %24 %70 1385e5c31af7Sopenharmony_ci %575 = OpLoad %61 %574 1386e5c31af7Sopenharmony_ci %576 = OpFOrdLessThan %40 %573 %575 1387e5c31af7Sopenharmony_ci OpSelectionMerge %582 None 1388e5c31af7Sopenharmony_ci OpBranchConditional %576 %577 %582 1389e5c31af7Sopenharmony_ci %577 = OpLabel 1390e5c31af7Sopenharmony_ci OpBranch %578 1391e5c31af7Sopenharmony_ci %578 = OpLabel 1392e5c31af7Sopenharmony_ci OpLoopMerge %581 %580 None 1393e5c31af7Sopenharmony_ci OpBranch %579 1394e5c31af7Sopenharmony_ci %579 = OpLabel 1395e5c31af7Sopenharmony_ci OpKill 1396e5c31af7Sopenharmony_ci %580 = OpLabel 1397e5c31af7Sopenharmony_ci OpBranch %578 1398e5c31af7Sopenharmony_ci %581 = OpLabel 1399e5c31af7Sopenharmony_ci OpUnreachable 1400e5c31af7Sopenharmony_ci %582 = OpLabel 1401e5c31af7Sopenharmony_ci OpStore %568 %1729 1402e5c31af7Sopenharmony_ci %592 = OpAccessChain %8 %47 %1729 1403e5c31af7Sopenharmony_ci OpStore %592 %1731 1404e5c31af7Sopenharmony_ci OpBranch %593 1405e5c31af7Sopenharmony_ci %593 = OpLabel 1406e5c31af7Sopenharmony_ci %598 = OpConvertFToS %6 %573 1407e5c31af7Sopenharmony_ci %599 = OpSLessThan %40 %24 %598 1408e5c31af7Sopenharmony_ci OpLoopMerge %602 %601 None 1409e5c31af7Sopenharmony_ci OpBranchConditional %599 %600 %602 1410e5c31af7Sopenharmony_ci %600 = OpLabel 1411e5c31af7Sopenharmony_ci OpBranch %602 1412e5c31af7Sopenharmony_ci %601 = OpLabel 1413e5c31af7Sopenharmony_ci OpBranch %593 1414e5c31af7Sopenharmony_ci %602 = OpLabel 1415e5c31af7Sopenharmony_ci %1513 = OpPhi %40 %1515 %593 %325 %600 1416e5c31af7Sopenharmony_ci OpSelectionMerge %604 None 1417e5c31af7Sopenharmony_ci OpBranchConditional %1513 %633 %604 1418e5c31af7Sopenharmony_ci %604 = OpLabel 1419e5c31af7Sopenharmony_ci OpBranch %609 1420e5c31af7Sopenharmony_ci %609 = OpLabel 1421e5c31af7Sopenharmony_ci OpBranch %631 1422e5c31af7Sopenharmony_ci %631 = OpLabel 1423e5c31af7Sopenharmony_ci OpBranch %632 1424e5c31af7Sopenharmony_ci %632 = OpLabel 1425e5c31af7Sopenharmony_ci %1685 = OpPhi %40 %1515 %605 %1515 %626 %1513 %631 1426e5c31af7Sopenharmony_ci %1682 = OpPhi %6 %608 %605 %629 %626 %1512 %631 1427e5c31af7Sopenharmony_ci OpBranch %555 1428e5c31af7Sopenharmony_ci %633 = OpLabel 1429e5c31af7Sopenharmony_ci %1516 = OpPhi %40 %1515 %555 %1513 %602 %325 %615 1430e5c31af7Sopenharmony_ci OpSelectionMerge %635 None 1431e5c31af7Sopenharmony_ci OpBranchConditional %1516 %636 %635 1432e5c31af7Sopenharmony_ci %635 = OpLabel 1433e5c31af7Sopenharmony_ci OpBranch %636 1434e5c31af7Sopenharmony_ci %636 = OpLabel 1435e5c31af7Sopenharmony_ci OpSelectionMerge %738 None 1436e5c31af7Sopenharmony_ci OpSwitch %70 %656 1437e5c31af7Sopenharmony_ci %656 = OpLabel 1438e5c31af7Sopenharmony_ci OpBranch %657 1439e5c31af7Sopenharmony_ci %657 = OpLabel 1440e5c31af7Sopenharmony_ci %1526 = OpPhi %40 %322 %656 %1689 %734 1441e5c31af7Sopenharmony_ci %1523 = OpPhi %6 %24 %656 %1686 %734 1442e5c31af7Sopenharmony_ci %661 = OpSLessThanEqual %40 %1523 %1732 1443e5c31af7Sopenharmony_ci OpLoopMerge %735 %734 None 1444e5c31af7Sopenharmony_ci OpBranchConditional %661 %662 %735 1445e5c31af7Sopenharmony_ci %662 = OpLabel 1446e5c31af7Sopenharmony_ci %665 = OpAccessChain %9 %47 %1523 %24 1447e5c31af7Sopenharmony_ci %666 = OpLoad %6 %665 1448e5c31af7Sopenharmony_ci %667 = OpSLessThanEqual %40 %235 %666 1449e5c31af7Sopenharmony_ci OpSelectionMerge %733 None 1450e5c31af7Sopenharmony_ci OpBranchConditional %667 %668 %712 1451e5c31af7Sopenharmony_ci %712 = OpLabel 1452e5c31af7Sopenharmony_ci %714 = OpAccessChain %9 %47 %1523 %30 1453e5c31af7Sopenharmony_ci %715 = OpLoad %6 %714 1454e5c31af7Sopenharmony_ci %716 = OpIEqual %40 %715 %28 1455e5c31af7Sopenharmony_ci OpSelectionMerge %732 None 1456e5c31af7Sopenharmony_ci OpBranchConditional %716 %717 %728 1457e5c31af7Sopenharmony_ci %728 = OpLabel 1458e5c31af7Sopenharmony_ci %731 = OpLoad %6 %714 1459e5c31af7Sopenharmony_ci OpBranch %734 1460e5c31af7Sopenharmony_ci %717 = OpLabel 1461e5c31af7Sopenharmony_ci OpStore %714 %1732 1462e5c31af7Sopenharmony_ci %727 = OpAccessChain %8 %47 %1732 1463e5c31af7Sopenharmony_ci OpStore %727 %1733 1464e5c31af7Sopenharmony_ci OpBranch %735 1465e5c31af7Sopenharmony_ci %732 = OpLabel 1466e5c31af7Sopenharmony_ci OpUnreachable 1467e5c31af7Sopenharmony_ci %668 = OpLabel 1468e5c31af7Sopenharmony_ci %670 = OpAccessChain %9 %47 %1523 %27 1469e5c31af7Sopenharmony_ci %671 = OpLoad %6 %670 1470e5c31af7Sopenharmony_ci %672 = OpIEqual %40 %671 %28 1471e5c31af7Sopenharmony_ci OpSelectionMerge %711 None 1472e5c31af7Sopenharmony_ci OpBranchConditional %672 %673 %707 1473e5c31af7Sopenharmony_ci %707 = OpLabel 1474e5c31af7Sopenharmony_ci %710 = OpLoad %6 %670 1475e5c31af7Sopenharmony_ci OpBranch %734 1476e5c31af7Sopenharmony_ci %673 = OpLabel 1477e5c31af7Sopenharmony_ci %674 = OpAccessChain %67 %65 %24 %66 1478e5c31af7Sopenharmony_ci %675 = OpLoad %61 %674 1479e5c31af7Sopenharmony_ci %676 = OpAccessChain %67 %65 %24 %70 1480e5c31af7Sopenharmony_ci %677 = OpLoad %61 %676 1481e5c31af7Sopenharmony_ci %678 = OpFOrdLessThan %40 %675 %677 1482e5c31af7Sopenharmony_ci OpSelectionMerge %684 None 1483e5c31af7Sopenharmony_ci OpBranchConditional %678 %679 %684 1484e5c31af7Sopenharmony_ci %679 = OpLabel 1485e5c31af7Sopenharmony_ci OpBranch %680 1486e5c31af7Sopenharmony_ci %680 = OpLabel 1487e5c31af7Sopenharmony_ci OpLoopMerge %683 %682 None 1488e5c31af7Sopenharmony_ci OpBranch %681 1489e5c31af7Sopenharmony_ci %681 = OpLabel 1490e5c31af7Sopenharmony_ci OpKill 1491e5c31af7Sopenharmony_ci %682 = OpLabel 1492e5c31af7Sopenharmony_ci OpBranch %680 1493e5c31af7Sopenharmony_ci %683 = OpLabel 1494e5c31af7Sopenharmony_ci OpUnreachable 1495e5c31af7Sopenharmony_ci %684 = OpLabel 1496e5c31af7Sopenharmony_ci OpStore %670 %1732 1497e5c31af7Sopenharmony_ci %694 = OpAccessChain %8 %47 %1732 1498e5c31af7Sopenharmony_ci OpStore %694 %1733 1499e5c31af7Sopenharmony_ci OpBranch %695 1500e5c31af7Sopenharmony_ci %695 = OpLabel 1501e5c31af7Sopenharmony_ci %700 = OpConvertFToS %6 %675 1502e5c31af7Sopenharmony_ci %701 = OpSLessThan %40 %24 %700 1503e5c31af7Sopenharmony_ci OpLoopMerge %704 %703 None 1504e5c31af7Sopenharmony_ci OpBranchConditional %701 %702 %704 1505e5c31af7Sopenharmony_ci %702 = OpLabel 1506e5c31af7Sopenharmony_ci OpBranch %704 1507e5c31af7Sopenharmony_ci %703 = OpLabel 1508e5c31af7Sopenharmony_ci OpBranch %695 1509e5c31af7Sopenharmony_ci %704 = OpLabel 1510e5c31af7Sopenharmony_ci %1524 = OpPhi %40 %1526 %695 %325 %702 1511e5c31af7Sopenharmony_ci OpSelectionMerge %706 None 1512e5c31af7Sopenharmony_ci OpBranchConditional %1524 %735 %706 1513e5c31af7Sopenharmony_ci %706 = OpLabel 1514e5c31af7Sopenharmony_ci OpBranch %711 1515e5c31af7Sopenharmony_ci %711 = OpLabel 1516e5c31af7Sopenharmony_ci OpBranch %733 1517e5c31af7Sopenharmony_ci %733 = OpLabel 1518e5c31af7Sopenharmony_ci OpBranch %734 1519e5c31af7Sopenharmony_ci %734 = OpLabel 1520e5c31af7Sopenharmony_ci %1689 = OpPhi %40 %1526 %707 %1526 %728 %1524 %733 1521e5c31af7Sopenharmony_ci %1686 = OpPhi %6 %710 %707 %731 %728 %1523 %733 1522e5c31af7Sopenharmony_ci OpBranch %657 1523e5c31af7Sopenharmony_ci %735 = OpLabel 1524e5c31af7Sopenharmony_ci %1527 = OpPhi %40 %1526 %657 %1524 %704 %325 %717 1525e5c31af7Sopenharmony_ci OpSelectionMerge %737 None 1526e5c31af7Sopenharmony_ci OpBranchConditional %1527 %738 %737 1527e5c31af7Sopenharmony_ci %737 = OpLabel 1528e5c31af7Sopenharmony_ci OpBranch %738 1529e5c31af7Sopenharmony_ci %738 = OpLabel 1530e5c31af7Sopenharmony_ci OpSelectionMerge %840 None 1531e5c31af7Sopenharmony_ci OpSwitch %70 %758 1532e5c31af7Sopenharmony_ci %758 = OpLabel 1533e5c31af7Sopenharmony_ci OpBranch %759 1534e5c31af7Sopenharmony_ci %759 = OpLabel 1535e5c31af7Sopenharmony_ci %1537 = OpPhi %40 %322 %758 %1693 %836 1536e5c31af7Sopenharmony_ci %1534 = OpPhi %6 %24 %758 %1690 %836 1537e5c31af7Sopenharmony_ci %763 = OpSLessThanEqual %40 %1534 %189 1538e5c31af7Sopenharmony_ci OpLoopMerge %837 %836 None 1539e5c31af7Sopenharmony_ci OpBranchConditional %763 %764 %837 1540e5c31af7Sopenharmony_ci %764 = OpLabel 1541e5c31af7Sopenharmony_ci %767 = OpAccessChain %9 %47 %1534 %24 1542e5c31af7Sopenharmony_ci %768 = OpLoad %6 %767 1543e5c31af7Sopenharmony_ci %769 = OpSLessThanEqual %40 %242 %768 1544e5c31af7Sopenharmony_ci OpSelectionMerge %835 None 1545e5c31af7Sopenharmony_ci OpBranchConditional %769 %770 %814 1546e5c31af7Sopenharmony_ci %814 = OpLabel 1547e5c31af7Sopenharmony_ci %816 = OpAccessChain %9 %47 %1534 %30 1548e5c31af7Sopenharmony_ci %817 = OpLoad %6 %816 1549e5c31af7Sopenharmony_ci %818 = OpIEqual %40 %817 %28 1550e5c31af7Sopenharmony_ci OpSelectionMerge %834 None 1551e5c31af7Sopenharmony_ci OpBranchConditional %818 %819 %830 1552e5c31af7Sopenharmony_ci %830 = OpLabel 1553e5c31af7Sopenharmony_ci %833 = OpLoad %6 %816 1554e5c31af7Sopenharmony_ci OpBranch %836 1555e5c31af7Sopenharmony_ci %819 = OpLabel 1556e5c31af7Sopenharmony_ci OpStore %816 %189 1557e5c31af7Sopenharmony_ci %829 = OpAccessChain %8 %47 %189 1558e5c31af7Sopenharmony_ci OpStore %829 %1734 1559e5c31af7Sopenharmony_ci OpBranch %837 1560e5c31af7Sopenharmony_ci %834 = OpLabel 1561e5c31af7Sopenharmony_ci OpUnreachable 1562e5c31af7Sopenharmony_ci %770 = OpLabel 1563e5c31af7Sopenharmony_ci %772 = OpAccessChain %9 %47 %1534 %27 1564e5c31af7Sopenharmony_ci %773 = OpLoad %6 %772 1565e5c31af7Sopenharmony_ci %774 = OpIEqual %40 %773 %28 1566e5c31af7Sopenharmony_ci OpSelectionMerge %813 None 1567e5c31af7Sopenharmony_ci OpBranchConditional %774 %775 %809 1568e5c31af7Sopenharmony_ci %809 = OpLabel 1569e5c31af7Sopenharmony_ci %812 = OpLoad %6 %772 1570e5c31af7Sopenharmony_ci OpBranch %836 1571e5c31af7Sopenharmony_ci %775 = OpLabel 1572e5c31af7Sopenharmony_ci %776 = OpAccessChain %67 %65 %24 %66 1573e5c31af7Sopenharmony_ci %777 = OpLoad %61 %776 1574e5c31af7Sopenharmony_ci %778 = OpAccessChain %67 %65 %24 %70 1575e5c31af7Sopenharmony_ci %779 = OpLoad %61 %778 1576e5c31af7Sopenharmony_ci %780 = OpFOrdLessThan %40 %777 %779 1577e5c31af7Sopenharmony_ci OpSelectionMerge %786 None 1578e5c31af7Sopenharmony_ci OpBranchConditional %780 %781 %786 1579e5c31af7Sopenharmony_ci %781 = OpLabel 1580e5c31af7Sopenharmony_ci OpBranch %782 1581e5c31af7Sopenharmony_ci %782 = OpLabel 1582e5c31af7Sopenharmony_ci OpLoopMerge %785 %784 None 1583e5c31af7Sopenharmony_ci OpBranch %783 1584e5c31af7Sopenharmony_ci %783 = OpLabel 1585e5c31af7Sopenharmony_ci OpKill 1586e5c31af7Sopenharmony_ci %784 = OpLabel 1587e5c31af7Sopenharmony_ci OpBranch %782 1588e5c31af7Sopenharmony_ci %785 = OpLabel 1589e5c31af7Sopenharmony_ci OpUnreachable 1590e5c31af7Sopenharmony_ci %786 = OpLabel 1591e5c31af7Sopenharmony_ci OpStore %772 %189 1592e5c31af7Sopenharmony_ci %796 = OpAccessChain %8 %47 %189 1593e5c31af7Sopenharmony_ci OpStore %796 %1734 1594e5c31af7Sopenharmony_ci OpBranch %797 1595e5c31af7Sopenharmony_ci %797 = OpLabel 1596e5c31af7Sopenharmony_ci %802 = OpConvertFToS %6 %777 1597e5c31af7Sopenharmony_ci %803 = OpSLessThan %40 %24 %802 1598e5c31af7Sopenharmony_ci OpLoopMerge %806 %805 None 1599e5c31af7Sopenharmony_ci OpBranchConditional %803 %804 %806 1600e5c31af7Sopenharmony_ci %804 = OpLabel 1601e5c31af7Sopenharmony_ci OpBranch %806 1602e5c31af7Sopenharmony_ci %805 = OpLabel 1603e5c31af7Sopenharmony_ci OpBranch %797 1604e5c31af7Sopenharmony_ci %806 = OpLabel 1605e5c31af7Sopenharmony_ci %1535 = OpPhi %40 %1537 %797 %325 %804 1606e5c31af7Sopenharmony_ci OpSelectionMerge %808 None 1607e5c31af7Sopenharmony_ci OpBranchConditional %1535 %837 %808 1608e5c31af7Sopenharmony_ci %808 = OpLabel 1609e5c31af7Sopenharmony_ci OpBranch %813 1610e5c31af7Sopenharmony_ci %813 = OpLabel 1611e5c31af7Sopenharmony_ci OpBranch %835 1612e5c31af7Sopenharmony_ci %835 = OpLabel 1613e5c31af7Sopenharmony_ci OpBranch %836 1614e5c31af7Sopenharmony_ci %836 = OpLabel 1615e5c31af7Sopenharmony_ci %1693 = OpPhi %40 %1537 %809 %1537 %830 %1535 %835 1616e5c31af7Sopenharmony_ci %1690 = OpPhi %6 %812 %809 %833 %830 %1534 %835 1617e5c31af7Sopenharmony_ci OpBranch %759 1618e5c31af7Sopenharmony_ci %837 = OpLabel 1619e5c31af7Sopenharmony_ci %1538 = OpPhi %40 %1537 %759 %1535 %806 %325 %819 1620e5c31af7Sopenharmony_ci OpSelectionMerge %839 None 1621e5c31af7Sopenharmony_ci OpBranchConditional %1538 %840 %839 1622e5c31af7Sopenharmony_ci %839 = OpLabel 1623e5c31af7Sopenharmony_ci OpBranch %840 1624e5c31af7Sopenharmony_ci %840 = OpLabel 1625e5c31af7Sopenharmony_ci OpSelectionMerge %942 None 1626e5c31af7Sopenharmony_ci OpSwitch %70 %860 1627e5c31af7Sopenharmony_ci %860 = OpLabel 1628e5c31af7Sopenharmony_ci OpBranch %861 1629e5c31af7Sopenharmony_ci %861 = OpLabel 1630e5c31af7Sopenharmony_ci %1548 = OpPhi %40 %322 %860 %1697 %938 1631e5c31af7Sopenharmony_ci %1545 = OpPhi %6 %24 %860 %1694 %938 1632e5c31af7Sopenharmony_ci %865 = OpSLessThanEqual %40 %1545 %255 1633e5c31af7Sopenharmony_ci OpLoopMerge %939 %938 None 1634e5c31af7Sopenharmony_ci OpBranchConditional %865 %866 %939 1635e5c31af7Sopenharmony_ci %866 = OpLabel 1636e5c31af7Sopenharmony_ci %869 = OpAccessChain %9 %47 %1545 %24 1637e5c31af7Sopenharmony_ci %870 = OpLoad %6 %869 1638e5c31af7Sopenharmony_ci %871 = OpSLessThanEqual %40 %30 %870 1639e5c31af7Sopenharmony_ci OpSelectionMerge %937 None 1640e5c31af7Sopenharmony_ci OpBranchConditional %871 %872 %916 1641e5c31af7Sopenharmony_ci %916 = OpLabel 1642e5c31af7Sopenharmony_ci %918 = OpAccessChain %9 %47 %1545 %30 1643e5c31af7Sopenharmony_ci %919 = OpLoad %6 %918 1644e5c31af7Sopenharmony_ci %920 = OpIEqual %40 %919 %28 1645e5c31af7Sopenharmony_ci OpSelectionMerge %936 None 1646e5c31af7Sopenharmony_ci OpBranchConditional %920 %921 %932 1647e5c31af7Sopenharmony_ci %932 = OpLabel 1648e5c31af7Sopenharmony_ci %935 = OpLoad %6 %918 1649e5c31af7Sopenharmony_ci OpBranch %938 1650e5c31af7Sopenharmony_ci %921 = OpLabel 1651e5c31af7Sopenharmony_ci OpStore %918 %255 1652e5c31af7Sopenharmony_ci %931 = OpAccessChain %8 %47 %255 1653e5c31af7Sopenharmony_ci OpStore %931 %1735 1654e5c31af7Sopenharmony_ci OpBranch %939 1655e5c31af7Sopenharmony_ci %936 = OpLabel 1656e5c31af7Sopenharmony_ci OpUnreachable 1657e5c31af7Sopenharmony_ci %872 = OpLabel 1658e5c31af7Sopenharmony_ci %874 = OpAccessChain %9 %47 %1545 %27 1659e5c31af7Sopenharmony_ci %875 = OpLoad %6 %874 1660e5c31af7Sopenharmony_ci %876 = OpIEqual %40 %875 %28 1661e5c31af7Sopenharmony_ci OpSelectionMerge %915 None 1662e5c31af7Sopenharmony_ci OpBranchConditional %876 %877 %911 1663e5c31af7Sopenharmony_ci %911 = OpLabel 1664e5c31af7Sopenharmony_ci %914 = OpLoad %6 %874 1665e5c31af7Sopenharmony_ci OpBranch %938 1666e5c31af7Sopenharmony_ci %877 = OpLabel 1667e5c31af7Sopenharmony_ci %878 = OpAccessChain %67 %65 %24 %66 1668e5c31af7Sopenharmony_ci %879 = OpLoad %61 %878 1669e5c31af7Sopenharmony_ci %880 = OpAccessChain %67 %65 %24 %70 1670e5c31af7Sopenharmony_ci %881 = OpLoad %61 %880 1671e5c31af7Sopenharmony_ci %882 = OpFOrdLessThan %40 %879 %881 1672e5c31af7Sopenharmony_ci OpSelectionMerge %888 None 1673e5c31af7Sopenharmony_ci OpBranchConditional %882 %883 %888 1674e5c31af7Sopenharmony_ci %883 = OpLabel 1675e5c31af7Sopenharmony_ci OpBranch %884 1676e5c31af7Sopenharmony_ci %884 = OpLabel 1677e5c31af7Sopenharmony_ci OpLoopMerge %887 %886 None 1678e5c31af7Sopenharmony_ci OpBranch %885 1679e5c31af7Sopenharmony_ci %885 = OpLabel 1680e5c31af7Sopenharmony_ci OpKill 1681e5c31af7Sopenharmony_ci %886 = OpLabel 1682e5c31af7Sopenharmony_ci OpBranch %884 1683e5c31af7Sopenharmony_ci %887 = OpLabel 1684e5c31af7Sopenharmony_ci OpUnreachable 1685e5c31af7Sopenharmony_ci %888 = OpLabel 1686e5c31af7Sopenharmony_ci OpStore %874 %255 1687e5c31af7Sopenharmony_ci %898 = OpAccessChain %8 %47 %255 1688e5c31af7Sopenharmony_ci OpStore %898 %1735 1689e5c31af7Sopenharmony_ci OpBranch %899 1690e5c31af7Sopenharmony_ci %899 = OpLabel 1691e5c31af7Sopenharmony_ci %904 = OpConvertFToS %6 %879 1692e5c31af7Sopenharmony_ci %905 = OpSLessThan %40 %24 %904 1693e5c31af7Sopenharmony_ci OpLoopMerge %908 %907 None 1694e5c31af7Sopenharmony_ci OpBranchConditional %905 %906 %908 1695e5c31af7Sopenharmony_ci %906 = OpLabel 1696e5c31af7Sopenharmony_ci OpBranch %908 1697e5c31af7Sopenharmony_ci %907 = OpLabel 1698e5c31af7Sopenharmony_ci OpBranch %899 1699e5c31af7Sopenharmony_ci %908 = OpLabel 1700e5c31af7Sopenharmony_ci %1546 = OpPhi %40 %1548 %899 %325 %906 1701e5c31af7Sopenharmony_ci OpSelectionMerge %910 None 1702e5c31af7Sopenharmony_ci OpBranchConditional %1546 %939 %910 1703e5c31af7Sopenharmony_ci %910 = OpLabel 1704e5c31af7Sopenharmony_ci OpBranch %915 1705e5c31af7Sopenharmony_ci %915 = OpLabel 1706e5c31af7Sopenharmony_ci OpBranch %937 1707e5c31af7Sopenharmony_ci %937 = OpLabel 1708e5c31af7Sopenharmony_ci OpBranch %938 1709e5c31af7Sopenharmony_ci %938 = OpLabel 1710e5c31af7Sopenharmony_ci %1697 = OpPhi %40 %1548 %911 %1548 %932 %1546 %937 1711e5c31af7Sopenharmony_ci %1694 = OpPhi %6 %914 %911 %935 %932 %1545 %937 1712e5c31af7Sopenharmony_ci OpBranch %861 1713e5c31af7Sopenharmony_ci %939 = OpLabel 1714e5c31af7Sopenharmony_ci %1549 = OpPhi %40 %1548 %861 %1546 %908 %325 %921 1715e5c31af7Sopenharmony_ci OpSelectionMerge %941 None 1716e5c31af7Sopenharmony_ci OpBranchConditional %1549 %942 %941 1717e5c31af7Sopenharmony_ci %941 = OpLabel 1718e5c31af7Sopenharmony_ci OpBranch %942 1719e5c31af7Sopenharmony_ci %942 = OpLabel 1720e5c31af7Sopenharmony_ci OpSelectionMerge %1044 None 1721e5c31af7Sopenharmony_ci OpSwitch %70 %962 1722e5c31af7Sopenharmony_ci %962 = OpLabel 1723e5c31af7Sopenharmony_ci OpBranch %963 1724e5c31af7Sopenharmony_ci %963 = OpLabel 1725e5c31af7Sopenharmony_ci %1559 = OpPhi %40 %322 %962 %1701 %1040 1726e5c31af7Sopenharmony_ci %1556 = OpPhi %6 %24 %962 %1698 %1040 1727e5c31af7Sopenharmony_ci %967 = OpSLessThanEqual %40 %1556 %235 1728e5c31af7Sopenharmony_ci OpLoopMerge %1041 %1040 None 1729e5c31af7Sopenharmony_ci OpBranchConditional %967 %968 %1041 1730e5c31af7Sopenharmony_ci %968 = OpLabel 1731e5c31af7Sopenharmony_ci %971 = OpAccessChain %9 %47 %1556 %24 1732e5c31af7Sopenharmony_ci %972 = OpLoad %6 %971 1733e5c31af7Sopenharmony_ci %973 = OpSLessThanEqual %40 %255 %972 1734e5c31af7Sopenharmony_ci OpSelectionMerge %1039 None 1735e5c31af7Sopenharmony_ci OpBranchConditional %973 %974 %1018 1736e5c31af7Sopenharmony_ci %1018 = OpLabel 1737e5c31af7Sopenharmony_ci %1020 = OpAccessChain %9 %47 %1556 %30 1738e5c31af7Sopenharmony_ci %1021 = OpLoad %6 %1020 1739e5c31af7Sopenharmony_ci %1022 = OpIEqual %40 %1021 %28 1740e5c31af7Sopenharmony_ci OpSelectionMerge %1038 None 1741e5c31af7Sopenharmony_ci OpBranchConditional %1022 %1023 %1034 1742e5c31af7Sopenharmony_ci %1034 = OpLabel 1743e5c31af7Sopenharmony_ci %1037 = OpLoad %6 %1020 1744e5c31af7Sopenharmony_ci OpBranch %1040 1745e5c31af7Sopenharmony_ci %1023 = OpLabel 1746e5c31af7Sopenharmony_ci OpStore %1020 %235 1747e5c31af7Sopenharmony_ci %1033 = OpAccessChain %8 %47 %235 1748e5c31af7Sopenharmony_ci OpStore %1033 %1736 1749e5c31af7Sopenharmony_ci OpBranch %1041 1750e5c31af7Sopenharmony_ci %1038 = OpLabel 1751e5c31af7Sopenharmony_ci OpUnreachable 1752e5c31af7Sopenharmony_ci %974 = OpLabel 1753e5c31af7Sopenharmony_ci %976 = OpAccessChain %9 %47 %1556 %27 1754e5c31af7Sopenharmony_ci %977 = OpLoad %6 %976 1755e5c31af7Sopenharmony_ci %978 = OpIEqual %40 %977 %28 1756e5c31af7Sopenharmony_ci OpSelectionMerge %1017 None 1757e5c31af7Sopenharmony_ci OpBranchConditional %978 %979 %1013 1758e5c31af7Sopenharmony_ci %1013 = OpLabel 1759e5c31af7Sopenharmony_ci %1016 = OpLoad %6 %976 1760e5c31af7Sopenharmony_ci OpBranch %1040 1761e5c31af7Sopenharmony_ci %979 = OpLabel 1762e5c31af7Sopenharmony_ci %980 = OpAccessChain %67 %65 %24 %66 1763e5c31af7Sopenharmony_ci %981 = OpLoad %61 %980 1764e5c31af7Sopenharmony_ci %982 = OpAccessChain %67 %65 %24 %70 1765e5c31af7Sopenharmony_ci %983 = OpLoad %61 %982 1766e5c31af7Sopenharmony_ci %984 = OpFOrdLessThan %40 %981 %983 1767e5c31af7Sopenharmony_ci OpSelectionMerge %990 None 1768e5c31af7Sopenharmony_ci OpBranchConditional %984 %985 %990 1769e5c31af7Sopenharmony_ci %985 = OpLabel 1770e5c31af7Sopenharmony_ci OpBranch %986 1771e5c31af7Sopenharmony_ci %986 = OpLabel 1772e5c31af7Sopenharmony_ci OpLoopMerge %989 %988 None 1773e5c31af7Sopenharmony_ci OpBranch %987 1774e5c31af7Sopenharmony_ci %987 = OpLabel 1775e5c31af7Sopenharmony_ci OpKill 1776e5c31af7Sopenharmony_ci %988 = OpLabel 1777e5c31af7Sopenharmony_ci OpBranch %986 1778e5c31af7Sopenharmony_ci %989 = OpLabel 1779e5c31af7Sopenharmony_ci OpUnreachable 1780e5c31af7Sopenharmony_ci %990 = OpLabel 1781e5c31af7Sopenharmony_ci OpStore %976 %235 1782e5c31af7Sopenharmony_ci %1000 = OpAccessChain %8 %47 %235 1783e5c31af7Sopenharmony_ci OpStore %1000 %1736 1784e5c31af7Sopenharmony_ci OpBranch %1001 1785e5c31af7Sopenharmony_ci %1001 = OpLabel 1786e5c31af7Sopenharmony_ci %1006 = OpConvertFToS %6 %981 1787e5c31af7Sopenharmony_ci %1007 = OpSLessThan %40 %24 %1006 1788e5c31af7Sopenharmony_ci OpLoopMerge %1010 %1009 None 1789e5c31af7Sopenharmony_ci OpBranchConditional %1007 %1008 %1010 1790e5c31af7Sopenharmony_ci %1008 = OpLabel 1791e5c31af7Sopenharmony_ci OpBranch %1010 1792e5c31af7Sopenharmony_ci %1009 = OpLabel 1793e5c31af7Sopenharmony_ci OpBranch %1001 1794e5c31af7Sopenharmony_ci %1010 = OpLabel 1795e5c31af7Sopenharmony_ci %1557 = OpPhi %40 %1559 %1001 %325 %1008 1796e5c31af7Sopenharmony_ci OpSelectionMerge %1012 None 1797e5c31af7Sopenharmony_ci OpBranchConditional %1557 %1041 %1012 1798e5c31af7Sopenharmony_ci %1012 = OpLabel 1799e5c31af7Sopenharmony_ci OpBranch %1017 1800e5c31af7Sopenharmony_ci %1017 = OpLabel 1801e5c31af7Sopenharmony_ci OpBranch %1039 1802e5c31af7Sopenharmony_ci %1039 = OpLabel 1803e5c31af7Sopenharmony_ci OpBranch %1040 1804e5c31af7Sopenharmony_ci %1040 = OpLabel 1805e5c31af7Sopenharmony_ci %1701 = OpPhi %40 %1559 %1013 %1559 %1034 %1557 %1039 1806e5c31af7Sopenharmony_ci %1698 = OpPhi %6 %1016 %1013 %1037 %1034 %1556 %1039 1807e5c31af7Sopenharmony_ci OpBranch %963 1808e5c31af7Sopenharmony_ci %1041 = OpLabel 1809e5c31af7Sopenharmony_ci %1560 = OpPhi %40 %1559 %963 %1557 %1010 %325 %1023 1810e5c31af7Sopenharmony_ci OpSelectionMerge %1043 None 1811e5c31af7Sopenharmony_ci OpBranchConditional %1560 %1044 %1043 1812e5c31af7Sopenharmony_ci %1043 = OpLabel 1813e5c31af7Sopenharmony_ci OpBranch %1044 1814e5c31af7Sopenharmony_ci %1044 = OpLabel 1815e5c31af7Sopenharmony_ci OpSelectionMerge %1146 None 1816e5c31af7Sopenharmony_ci OpSwitch %70 %1064 1817e5c31af7Sopenharmony_ci %1064 = OpLabel 1818e5c31af7Sopenharmony_ci OpBranch %1065 1819e5c31af7Sopenharmony_ci %1065 = OpLabel 1820e5c31af7Sopenharmony_ci %1570 = OpPhi %40 %322 %1064 %1705 %1142 1821e5c31af7Sopenharmony_ci %1567 = OpPhi %6 %24 %1064 %1702 %1142 1822e5c31af7Sopenharmony_ci %1069 = OpSLessThanEqual %40 %1567 %242 1823e5c31af7Sopenharmony_ci OpLoopMerge %1143 %1142 None 1824e5c31af7Sopenharmony_ci OpBranchConditional %1069 %1070 %1143 1825e5c31af7Sopenharmony_ci %1070 = OpLabel 1826e5c31af7Sopenharmony_ci %1073 = OpAccessChain %9 %47 %1567 %24 1827e5c31af7Sopenharmony_ci %1074 = OpLoad %6 %1073 1828e5c31af7Sopenharmony_ci %1075 = OpSLessThanEqual %40 %262 %1074 1829e5c31af7Sopenharmony_ci OpSelectionMerge %1141 None 1830e5c31af7Sopenharmony_ci OpBranchConditional %1075 %1076 %1120 1831e5c31af7Sopenharmony_ci %1120 = OpLabel 1832e5c31af7Sopenharmony_ci %1122 = OpAccessChain %9 %47 %1567 %30 1833e5c31af7Sopenharmony_ci %1123 = OpLoad %6 %1122 1834e5c31af7Sopenharmony_ci %1124 = OpIEqual %40 %1123 %28 1835e5c31af7Sopenharmony_ci OpSelectionMerge %1140 None 1836e5c31af7Sopenharmony_ci OpBranchConditional %1124 %1125 %1136 1837e5c31af7Sopenharmony_ci %1136 = OpLabel 1838e5c31af7Sopenharmony_ci %1139 = OpLoad %6 %1122 1839e5c31af7Sopenharmony_ci OpBranch %1142 1840e5c31af7Sopenharmony_ci %1125 = OpLabel 1841e5c31af7Sopenharmony_ci OpStore %1122 %242 1842e5c31af7Sopenharmony_ci %1135 = OpAccessChain %8 %47 %242 1843e5c31af7Sopenharmony_ci OpStore %1135 %1737 1844e5c31af7Sopenharmony_ci OpBranch %1143 1845e5c31af7Sopenharmony_ci %1140 = OpLabel 1846e5c31af7Sopenharmony_ci OpUnreachable 1847e5c31af7Sopenharmony_ci %1076 = OpLabel 1848e5c31af7Sopenharmony_ci %1078 = OpAccessChain %9 %47 %1567 %27 1849e5c31af7Sopenharmony_ci %1079 = OpLoad %6 %1078 1850e5c31af7Sopenharmony_ci %1080 = OpIEqual %40 %1079 %28 1851e5c31af7Sopenharmony_ci OpSelectionMerge %1119 None 1852e5c31af7Sopenharmony_ci OpBranchConditional %1080 %1081 %1115 1853e5c31af7Sopenharmony_ci %1115 = OpLabel 1854e5c31af7Sopenharmony_ci %1118 = OpLoad %6 %1078 1855e5c31af7Sopenharmony_ci OpBranch %1142 1856e5c31af7Sopenharmony_ci %1081 = OpLabel 1857e5c31af7Sopenharmony_ci %1082 = OpAccessChain %67 %65 %24 %66 1858e5c31af7Sopenharmony_ci %1083 = OpLoad %61 %1082 1859e5c31af7Sopenharmony_ci %1084 = OpAccessChain %67 %65 %24 %70 1860e5c31af7Sopenharmony_ci %1085 = OpLoad %61 %1084 1861e5c31af7Sopenharmony_ci %1086 = OpFOrdLessThan %40 %1083 %1085 1862e5c31af7Sopenharmony_ci OpSelectionMerge %1092 None 1863e5c31af7Sopenharmony_ci OpBranchConditional %1086 %1087 %1092 1864e5c31af7Sopenharmony_ci %1087 = OpLabel 1865e5c31af7Sopenharmony_ci OpBranch %1088 1866e5c31af7Sopenharmony_ci %1088 = OpLabel 1867e5c31af7Sopenharmony_ci OpLoopMerge %1091 %1090 None 1868e5c31af7Sopenharmony_ci OpBranch %1089 1869e5c31af7Sopenharmony_ci %1089 = OpLabel 1870e5c31af7Sopenharmony_ci OpKill 1871e5c31af7Sopenharmony_ci %1090 = OpLabel 1872e5c31af7Sopenharmony_ci OpBranch %1088 1873e5c31af7Sopenharmony_ci %1091 = OpLabel 1874e5c31af7Sopenharmony_ci OpUnreachable 1875e5c31af7Sopenharmony_ci %1092 = OpLabel 1876e5c31af7Sopenharmony_ci OpStore %1078 %242 1877e5c31af7Sopenharmony_ci %1102 = OpAccessChain %8 %47 %242 1878e5c31af7Sopenharmony_ci OpStore %1102 %1737 1879e5c31af7Sopenharmony_ci OpBranch %1103 1880e5c31af7Sopenharmony_ci %1103 = OpLabel 1881e5c31af7Sopenharmony_ci %1108 = OpConvertFToS %6 %1083 1882e5c31af7Sopenharmony_ci %1109 = OpSLessThan %40 %24 %1108 1883e5c31af7Sopenharmony_ci OpLoopMerge %1112 %1111 None 1884e5c31af7Sopenharmony_ci OpBranchConditional %1109 %1110 %1112 1885e5c31af7Sopenharmony_ci %1110 = OpLabel 1886e5c31af7Sopenharmony_ci OpBranch %1112 1887e5c31af7Sopenharmony_ci %1111 = OpLabel 1888e5c31af7Sopenharmony_ci OpBranch %1103 1889e5c31af7Sopenharmony_ci %1112 = OpLabel 1890e5c31af7Sopenharmony_ci %1568 = OpPhi %40 %1570 %1103 %325 %1110 1891e5c31af7Sopenharmony_ci OpSelectionMerge %1114 None 1892e5c31af7Sopenharmony_ci OpBranchConditional %1568 %1143 %1114 1893e5c31af7Sopenharmony_ci %1114 = OpLabel 1894e5c31af7Sopenharmony_ci OpBranch %1119 1895e5c31af7Sopenharmony_ci %1119 = OpLabel 1896e5c31af7Sopenharmony_ci OpBranch %1141 1897e5c31af7Sopenharmony_ci %1141 = OpLabel 1898e5c31af7Sopenharmony_ci OpBranch %1142 1899e5c31af7Sopenharmony_ci %1142 = OpLabel 1900e5c31af7Sopenharmony_ci %1705 = OpPhi %40 %1570 %1115 %1570 %1136 %1568 %1141 1901e5c31af7Sopenharmony_ci %1702 = OpPhi %6 %1118 %1115 %1139 %1136 %1567 %1141 1902e5c31af7Sopenharmony_ci OpBranch %1065 1903e5c31af7Sopenharmony_ci %1143 = OpLabel 1904e5c31af7Sopenharmony_ci %1571 = OpPhi %40 %1570 %1065 %1568 %1112 %325 %1125 1905e5c31af7Sopenharmony_ci OpSelectionMerge %1145 None 1906e5c31af7Sopenharmony_ci OpBranchConditional %1571 %1146 %1145 1907e5c31af7Sopenharmony_ci %1145 = OpLabel 1908e5c31af7Sopenharmony_ci OpBranch %1146 1909e5c31af7Sopenharmony_ci %1146 = OpLabel 1910e5c31af7Sopenharmony_ci OpSelectionMerge %1248 None 1911e5c31af7Sopenharmony_ci OpSwitch %70 %1166 1912e5c31af7Sopenharmony_ci %1166 = OpLabel 1913e5c31af7Sopenharmony_ci OpBranch %1167 1914e5c31af7Sopenharmony_ci %1167 = OpLabel 1915e5c31af7Sopenharmony_ci %1581 = OpPhi %40 %322 %1166 %1709 %1244 1916e5c31af7Sopenharmony_ci %1578 = OpPhi %6 %24 %1166 %1706 %1244 1917e5c31af7Sopenharmony_ci %1171 = OpSLessThanEqual %40 %1578 %179 1918e5c31af7Sopenharmony_ci OpLoopMerge %1245 %1244 None 1919e5c31af7Sopenharmony_ci OpBranchConditional %1171 %1172 %1245 1920e5c31af7Sopenharmony_ci %1172 = OpLabel 1921e5c31af7Sopenharmony_ci %1175 = OpAccessChain %9 %47 %1578 %24 1922e5c31af7Sopenharmony_ci %1176 = OpLoad %6 %1175 1923e5c31af7Sopenharmony_ci %1177 = OpSLessThanEqual %40 %269 %1176 1924e5c31af7Sopenharmony_ci OpSelectionMerge %1243 None 1925e5c31af7Sopenharmony_ci OpBranchConditional %1177 %1178 %1222 1926e5c31af7Sopenharmony_ci %1222 = OpLabel 1927e5c31af7Sopenharmony_ci %1224 = OpAccessChain %9 %47 %1578 %30 1928e5c31af7Sopenharmony_ci %1225 = OpLoad %6 %1224 1929e5c31af7Sopenharmony_ci %1226 = OpIEqual %40 %1225 %28 1930e5c31af7Sopenharmony_ci OpSelectionMerge %1242 None 1931e5c31af7Sopenharmony_ci OpBranchConditional %1226 %1227 %1238 1932e5c31af7Sopenharmony_ci %1238 = OpLabel 1933e5c31af7Sopenharmony_ci %1241 = OpLoad %6 %1224 1934e5c31af7Sopenharmony_ci OpBranch %1244 1935e5c31af7Sopenharmony_ci %1227 = OpLabel 1936e5c31af7Sopenharmony_ci OpStore %1224 %179 1937e5c31af7Sopenharmony_ci %1237 = OpAccessChain %8 %47 %179 1938e5c31af7Sopenharmony_ci OpStore %1237 %1738 1939e5c31af7Sopenharmony_ci OpBranch %1245 1940e5c31af7Sopenharmony_ci %1242 = OpLabel 1941e5c31af7Sopenharmony_ci OpUnreachable 1942e5c31af7Sopenharmony_ci %1178 = OpLabel 1943e5c31af7Sopenharmony_ci %1180 = OpAccessChain %9 %47 %1578 %27 1944e5c31af7Sopenharmony_ci %1181 = OpLoad %6 %1180 1945e5c31af7Sopenharmony_ci %1182 = OpIEqual %40 %1181 %28 1946e5c31af7Sopenharmony_ci OpSelectionMerge %1221 None 1947e5c31af7Sopenharmony_ci OpBranchConditional %1182 %1183 %1217 1948e5c31af7Sopenharmony_ci %1217 = OpLabel 1949e5c31af7Sopenharmony_ci %1220 = OpLoad %6 %1180 1950e5c31af7Sopenharmony_ci OpBranch %1244 1951e5c31af7Sopenharmony_ci %1183 = OpLabel 1952e5c31af7Sopenharmony_ci %1184 = OpAccessChain %67 %65 %24 %66 1953e5c31af7Sopenharmony_ci %1185 = OpLoad %61 %1184 1954e5c31af7Sopenharmony_ci %1186 = OpAccessChain %67 %65 %24 %70 1955e5c31af7Sopenharmony_ci %1187 = OpLoad %61 %1186 1956e5c31af7Sopenharmony_ci %1188 = OpFOrdLessThan %40 %1185 %1187 1957e5c31af7Sopenharmony_ci OpSelectionMerge %1194 None 1958e5c31af7Sopenharmony_ci OpBranchConditional %1188 %1189 %1194 1959e5c31af7Sopenharmony_ci %1189 = OpLabel 1960e5c31af7Sopenharmony_ci OpBranch %1190 1961e5c31af7Sopenharmony_ci %1190 = OpLabel 1962e5c31af7Sopenharmony_ci OpLoopMerge %1193 %1192 None 1963e5c31af7Sopenharmony_ci OpBranch %1191 1964e5c31af7Sopenharmony_ci %1191 = OpLabel 1965e5c31af7Sopenharmony_ci OpKill 1966e5c31af7Sopenharmony_ci %1192 = OpLabel 1967e5c31af7Sopenharmony_ci OpBranch %1190 1968e5c31af7Sopenharmony_ci %1193 = OpLabel 1969e5c31af7Sopenharmony_ci OpUnreachable 1970e5c31af7Sopenharmony_ci %1194 = OpLabel 1971e5c31af7Sopenharmony_ci OpStore %1180 %179 1972e5c31af7Sopenharmony_ci %1204 = OpAccessChain %8 %47 %179 1973e5c31af7Sopenharmony_ci OpStore %1204 %1738 1974e5c31af7Sopenharmony_ci OpBranch %1205 1975e5c31af7Sopenharmony_ci %1205 = OpLabel 1976e5c31af7Sopenharmony_ci %1210 = OpConvertFToS %6 %1185 1977e5c31af7Sopenharmony_ci %1211 = OpSLessThan %40 %24 %1210 1978e5c31af7Sopenharmony_ci OpLoopMerge %1214 %1213 None 1979e5c31af7Sopenharmony_ci OpBranchConditional %1211 %1212 %1214 1980e5c31af7Sopenharmony_ci %1212 = OpLabel 1981e5c31af7Sopenharmony_ci OpBranch %1214 1982e5c31af7Sopenharmony_ci %1213 = OpLabel 1983e5c31af7Sopenharmony_ci OpBranch %1205 1984e5c31af7Sopenharmony_ci %1214 = OpLabel 1985e5c31af7Sopenharmony_ci %1579 = OpPhi %40 %1581 %1205 %325 %1212 1986e5c31af7Sopenharmony_ci OpSelectionMerge %1216 None 1987e5c31af7Sopenharmony_ci OpBranchConditional %1579 %1245 %1216 1988e5c31af7Sopenharmony_ci %1216 = OpLabel 1989e5c31af7Sopenharmony_ci OpBranch %1221 1990e5c31af7Sopenharmony_ci %1221 = OpLabel 1991e5c31af7Sopenharmony_ci OpBranch %1243 1992e5c31af7Sopenharmony_ci %1243 = OpLabel 1993e5c31af7Sopenharmony_ci OpBranch %1244 1994e5c31af7Sopenharmony_ci %1244 = OpLabel 1995e5c31af7Sopenharmony_ci %1709 = OpPhi %40 %1581 %1217 %1581 %1238 %1579 %1243 1996e5c31af7Sopenharmony_ci %1706 = OpPhi %6 %1220 %1217 %1241 %1238 %1578 %1243 1997e5c31af7Sopenharmony_ci OpBranch %1167 1998e5c31af7Sopenharmony_ci %1245 = OpLabel 1999e5c31af7Sopenharmony_ci %1582 = OpPhi %40 %1581 %1167 %1579 %1214 %325 %1227 2000e5c31af7Sopenharmony_ci OpSelectionMerge %1247 None 2001e5c31af7Sopenharmony_ci OpBranchConditional %1582 %1248 %1247 2002e5c31af7Sopenharmony_ci %1247 = OpLabel 2003e5c31af7Sopenharmony_ci OpBranch %1248 2004e5c31af7Sopenharmony_ci %1248 = OpLabel 2005e5c31af7Sopenharmony_ci OpBranch %276 2006e5c31af7Sopenharmony_ci %276 = OpLabel 2007e5c31af7Sopenharmony_ci %1593 = OpPhi %6 %1620 %1248 %1590 %279 2008e5c31af7Sopenharmony_ci %1584 = OpPhi %6 %24 %1248 %1710 %279 2009e5c31af7Sopenharmony_ci %1583 = OpPhi %6 %24 %1248 %309 %279 2010e5c31af7Sopenharmony_ci %283 = OpSLessThan %40 %1583 %282 2011e5c31af7Sopenharmony_ci OpLoopMerge %278 %279 None 2012e5c31af7Sopenharmony_ci OpBranchConditional %283 %277 %278 2013e5c31af7Sopenharmony_ci %277 = OpLabel 2014e5c31af7Sopenharmony_ci OpSelectionMerge %1299 None 2015e5c31af7Sopenharmony_ci OpSwitch %70 %1267 2016e5c31af7Sopenharmony_ci %1267 = OpLabel 2017e5c31af7Sopenharmony_ci OpBranch %1268 2018e5c31af7Sopenharmony_ci %1268 = OpLabel 2019e5c31af7Sopenharmony_ci %1585 = OpPhi %6 %24 %1267 %1739 %1295 2020e5c31af7Sopenharmony_ci %1271 = OpINotEqual %40 %1585 %28 2021e5c31af7Sopenharmony_ci OpLoopMerge %1296 %1295 None 2022e5c31af7Sopenharmony_ci OpBranchConditional %1271 %1272 %1296 2023e5c31af7Sopenharmony_ci %1272 = OpLabel 2024e5c31af7Sopenharmony_ci %1274 = OpAccessChain %8 %47 %1585 2025e5c31af7Sopenharmony_ci %1275 = OpLoad %7 %1274 2026e5c31af7Sopenharmony_ci %1305 = OpCompositeExtract %6 %1275 0 2027e5c31af7Sopenharmony_ci %1306 = OpCompositeExtract %6 %1275 1 2028e5c31af7Sopenharmony_ci %1307 = OpCompositeExtract %6 %1275 2 2029e5c31af7Sopenharmony_ci %1279 = OpIEqual %40 %1305 %1583 2030e5c31af7Sopenharmony_ci OpSelectionMerge %1282 None 2031e5c31af7Sopenharmony_ci OpBranchConditional %1279 %1280 %1282 2032e5c31af7Sopenharmony_ci %1280 = OpLabel 2033e5c31af7Sopenharmony_ci OpBranch %1296 2034e5c31af7Sopenharmony_ci %1282 = OpLabel 2035e5c31af7Sopenharmony_ci %1286 = OpSGreaterThan %40 %1583 %1305 2036e5c31af7Sopenharmony_ci %1739 = OpSelect %6 %1286 %1307 %1306 2037e5c31af7Sopenharmony_ci OpBranch %1295 2038e5c31af7Sopenharmony_ci %1295 = OpLabel 2039e5c31af7Sopenharmony_ci OpBranch %1268 2040e5c31af7Sopenharmony_ci %1296 = OpLabel 2041e5c31af7Sopenharmony_ci %1591 = OpPhi %6 %1593 %1268 %1583 %1280 2042e5c31af7Sopenharmony_ci %1587 = OpPhi %40 %322 %1268 %325 %1280 2043e5c31af7Sopenharmony_ci OpSelectionMerge %1298 None 2044e5c31af7Sopenharmony_ci OpBranchConditional %1587 %1299 %1298 2045e5c31af7Sopenharmony_ci %1298 = OpLabel 2046e5c31af7Sopenharmony_ci OpBranch %1299 2047e5c31af7Sopenharmony_ci %1299 = OpLabel 2048e5c31af7Sopenharmony_ci %1590 = OpPhi %6 %1591 %1296 %28 %1298 2049e5c31af7Sopenharmony_ci OpSelectionMerge %291 None 2050e5c31af7Sopenharmony_ci OpSwitch %1583 %290 9 %289 5 %289 12 %289 15 %289 7 %289 8 %289 2 %289 6 %289 17 %289 13 %289 2051e5c31af7Sopenharmony_ci %289 = OpLabel 2052e5c31af7Sopenharmony_ci %294 = OpIEqual %40 %1590 %1583 2053e5c31af7Sopenharmony_ci OpSelectionMerge %296 None 2054e5c31af7Sopenharmony_ci OpBranchConditional %294 %295 %296 2055e5c31af7Sopenharmony_ci %295 = OpLabel 2056e5c31af7Sopenharmony_ci %298 = OpIAdd %6 %1584 %27 2057e5c31af7Sopenharmony_ci OpBranch %296 2058e5c31af7Sopenharmony_ci %296 = OpLabel 2059e5c31af7Sopenharmony_ci %1712 = OpPhi %6 %1584 %289 %298 %295 2060e5c31af7Sopenharmony_ci OpBranch %291 2061e5c31af7Sopenharmony_ci %290 = OpLabel 2062e5c31af7Sopenharmony_ci %301 = OpIEqual %40 %1590 %28 2063e5c31af7Sopenharmony_ci OpSelectionMerge %303 None 2064e5c31af7Sopenharmony_ci OpBranchConditional %301 %302 %303 2065e5c31af7Sopenharmony_ci %302 = OpLabel 2066e5c31af7Sopenharmony_ci %305 = OpIAdd %6 %1584 %27 2067e5c31af7Sopenharmony_ci OpBranch %303 2068e5c31af7Sopenharmony_ci %303 = OpLabel 2069e5c31af7Sopenharmony_ci %1711 = OpPhi %6 %1584 %290 %305 %302 2070e5c31af7Sopenharmony_ci OpBranch %291 2071e5c31af7Sopenharmony_ci %291 = OpLabel 2072e5c31af7Sopenharmony_ci %1710 = OpPhi %6 %1711 %303 %1712 %296 2073e5c31af7Sopenharmony_ci OpBranch %279 2074e5c31af7Sopenharmony_ci %279 = OpLabel 2075e5c31af7Sopenharmony_ci %309 = OpIAdd %6 %1583 %27 2076e5c31af7Sopenharmony_ci OpBranch %276 2077e5c31af7Sopenharmony_ci %278 = OpLabel 2078e5c31af7Sopenharmony_ci %311 = OpIEqual %40 %1584 %282 2079e5c31af7Sopenharmony_ci OpSelectionMerge %313 None 2080e5c31af7Sopenharmony_ci OpBranchConditional %311 %312 %318 2081e5c31af7Sopenharmony_ci %318 = OpLabel 2082e5c31af7Sopenharmony_ci OpStore %315 %319 2083e5c31af7Sopenharmony_ci OpBranch %313 2084e5c31af7Sopenharmony_ci %312 = OpLabel 2085e5c31af7Sopenharmony_ci OpStore %315 %317 2086e5c31af7Sopenharmony_ci OpBranch %313 2087e5c31af7Sopenharmony_ci %313 = OpLabel 2088e5c31af7Sopenharmony_ci OpReturn 2089e5c31af7Sopenharmony_ci OpFunctionEnd 2090e5c31af7Sopenharmony_ciEND 2091e5c31af7Sopenharmony_ci 2092e5c31af7Sopenharmony_ci# uniforms for variant 2093e5c31af7Sopenharmony_ci 2094e5c31af7Sopenharmony_ci# injectionSwitch 2095e5c31af7Sopenharmony_ciBUFFER variant_injectionSwitch DATA_TYPE vec2<float> DATA 2096e5c31af7Sopenharmony_ci 0.0 1.0 2097e5c31af7Sopenharmony_ciEND 2098e5c31af7Sopenharmony_ci 2099e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 2100e5c31af7Sopenharmony_ci 2101e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 2102e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 2103e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 2104e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 2105e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 2106e5c31af7Sopenharmony_ci BIND BUFFER variant_injectionSwitch AS uniform DESCRIPTOR_SET 0 BINDING 0 2107e5c31af7Sopenharmony_ciEND 2108e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 2109e5c31af7Sopenharmony_ci 2110e5c31af7Sopenharmony_ciCLEAR variant_pipeline 2111e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 2112e5c31af7Sopenharmony_ci 2113e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 2114