1e5c31af7Sopenharmony_ci#!amber 2e5c31af7Sopenharmony_ci 3e5c31af7Sopenharmony_ci# Copyright 2021 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 coverage-gap found by the GraphicsFuzz project. 19e5c31af7Sopenharmony_ci 20e5c31af7Sopenharmony_ci# Short description: A fragment shader that covers specific BRW code paths 21e5c31af7Sopenharmony_ci 22e5c31af7Sopenharmony_ci# The test passes because the shader always writes red. 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci# Optimized using spirv-opt with the following arguments: 25e5c31af7Sopenharmony_ci# '-O' 26e5c31af7Sopenharmony_ci# spirv-opt commit hash: a0370efd589be33d5d9a85cfde2f85841b3755af 27e5c31af7Sopenharmony_ci 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci 30e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 31e5c31af7Sopenharmony_ci 32e5c31af7Sopenharmony_ci# variant_fragment_shader is derived from the following GLSL: 33e5c31af7Sopenharmony_ci# #version 320 es 34e5c31af7Sopenharmony_ci# 35e5c31af7Sopenharmony_ci# #define LOOP for (int i = 0; i < 1; i++) 36e5c31af7Sopenharmony_ci# 37e5c31af7Sopenharmony_ci# precision highp float; 38e5c31af7Sopenharmony_ci# precision highp int; 39e5c31af7Sopenharmony_ci# 40e5c31af7Sopenharmony_ci# layout(location = 0) out vec4 _GLF_color; 41e5c31af7Sopenharmony_ci# 42e5c31af7Sopenharmony_ci# layout(push_constant) uniform buf_push 43e5c31af7Sopenharmony_ci# { 44e5c31af7Sopenharmony_ci# float five; 45e5c31af7Sopenharmony_ci# }; 46e5c31af7Sopenharmony_ci# 47e5c31af7Sopenharmony_ci# // Function always returns 1.0. 48e5c31af7Sopenharmony_ci# float func(float x) 49e5c31af7Sopenharmony_ci# { 50e5c31af7Sopenharmony_ci# float a = 1.0; 51e5c31af7Sopenharmony_ci# 52e5c31af7Sopenharmony_ci# LOOP 53e5c31af7Sopenharmony_ci# { 54e5c31af7Sopenharmony_ci# LOOP 55e5c31af7Sopenharmony_ci# { 56e5c31af7Sopenharmony_ci# LOOP 57e5c31af7Sopenharmony_ci# { 58e5c31af7Sopenharmony_ci# LOOP 59e5c31af7Sopenharmony_ci# { 60e5c31af7Sopenharmony_ci# LOOP 61e5c31af7Sopenharmony_ci# { 62e5c31af7Sopenharmony_ci# // Always false. 63e5c31af7Sopenharmony_ci# if (mod(1.0, x) < 0.0) 64e5c31af7Sopenharmony_ci# { 65e5c31af7Sopenharmony_ci# LOOP 66e5c31af7Sopenharmony_ci# { 67e5c31af7Sopenharmony_ci# LOOP 68e5c31af7Sopenharmony_ci# { 69e5c31af7Sopenharmony_ci# LOOP 70e5c31af7Sopenharmony_ci# { 71e5c31af7Sopenharmony_ci# LOOP 72e5c31af7Sopenharmony_ci# { 73e5c31af7Sopenharmony_ci# LOOP 74e5c31af7Sopenharmony_ci# { 75e5c31af7Sopenharmony_ci# LOOP 76e5c31af7Sopenharmony_ci# { 77e5c31af7Sopenharmony_ci# a += 1.0; 78e5c31af7Sopenharmony_ci# } 79e5c31af7Sopenharmony_ci# } 80e5c31af7Sopenharmony_ci# } 81e5c31af7Sopenharmony_ci# } 82e5c31af7Sopenharmony_ci# } 83e5c31af7Sopenharmony_ci# } 84e5c31af7Sopenharmony_ci# } 85e5c31af7Sopenharmony_ci# 86e5c31af7Sopenharmony_ci# // Always true. 87e5c31af7Sopenharmony_ci# if (x > 1.0) 88e5c31af7Sopenharmony_ci# { 89e5c31af7Sopenharmony_ci# return a; 90e5c31af7Sopenharmony_ci# } 91e5c31af7Sopenharmony_ci# } 92e5c31af7Sopenharmony_ci# } 93e5c31af7Sopenharmony_ci# } 94e5c31af7Sopenharmony_ci# } 95e5c31af7Sopenharmony_ci# } 96e5c31af7Sopenharmony_ci# 97e5c31af7Sopenharmony_ci# return 2.0; 98e5c31af7Sopenharmony_ci# } 99e5c31af7Sopenharmony_ci# 100e5c31af7Sopenharmony_ci# void main() 101e5c31af7Sopenharmony_ci# { 102e5c31af7Sopenharmony_ci# float f = 0.0; 103e5c31af7Sopenharmony_ci# 104e5c31af7Sopenharmony_ci# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { 105e5c31af7Sopenharmony_ci# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { 106e5c31af7Sopenharmony_ci# LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP { LOOP 107e5c31af7Sopenharmony_ci# { 108e5c31af7Sopenharmony_ci# f = func(five); 109e5c31af7Sopenharmony_ci# } 110e5c31af7Sopenharmony_ci# } } } } } } } } } } } } } } } } } } } } } } } } } } } 111e5c31af7Sopenharmony_ci# 112e5c31af7Sopenharmony_ci# // Always true. 113e5c31af7Sopenharmony_ci# if (f == 1.0) 114e5c31af7Sopenharmony_ci# _GLF_color = vec4(1, 0, 0, 1); 115e5c31af7Sopenharmony_ci# else 116e5c31af7Sopenharmony_ci# _GLF_color = vec4(0); 117e5c31af7Sopenharmony_ci# } 118e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 119e5c31af7Sopenharmony_ci; SPIR-V 120e5c31af7Sopenharmony_ci; Version: 1.0 121e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 10 122e5c31af7Sopenharmony_ci; Bound: 1659 123e5c31af7Sopenharmony_ci; Schema: 0 124e5c31af7Sopenharmony_ci OpCapability Shader 125e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 126e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 127e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %441 128e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 129e5c31af7Sopenharmony_ci OpSource ESSL 320 130e5c31af7Sopenharmony_ci OpName %4 "main" 131e5c31af7Sopenharmony_ci OpName %371 "buf_push" 132e5c31af7Sopenharmony_ci OpMemberName %371 0 "five" 133e5c31af7Sopenharmony_ci OpName %373 "" 134e5c31af7Sopenharmony_ci OpName %441 "_GLF_color" 135e5c31af7Sopenharmony_ci OpMemberDecorate %371 0 Offset 0 136e5c31af7Sopenharmony_ci OpDecorate %371 Block 137e5c31af7Sopenharmony_ci OpDecorate %441 Location 0 138e5c31af7Sopenharmony_ci %2 = OpTypeVoid 139e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 140e5c31af7Sopenharmony_ci %6 = OpTypeFloat 32 141e5c31af7Sopenharmony_ci %13 = OpConstant %6 1 142e5c31af7Sopenharmony_ci %14 = OpTypeInt 32 1 143e5c31af7Sopenharmony_ci %17 = OpConstant %14 0 144e5c31af7Sopenharmony_ci %24 = OpConstant %14 1 145e5c31af7Sopenharmony_ci %25 = OpTypeBool 146e5c31af7Sopenharmony_ci %61 = OpConstant %6 0 147e5c31af7Sopenharmony_ci %143 = OpConstant %6 2 148e5c31af7Sopenharmony_ci %371 = OpTypeStruct %6 149e5c31af7Sopenharmony_ci %372 = OpTypePointer PushConstant %371 150e5c31af7Sopenharmony_ci %373 = OpVariable %372 PushConstant 151e5c31af7Sopenharmony_ci %375 = OpTypePointer PushConstant %6 152e5c31af7Sopenharmony_ci %439 = OpTypeVector %6 4 153e5c31af7Sopenharmony_ci %440 = OpTypePointer Output %439 154e5c31af7Sopenharmony_ci %441 = OpVariable %440 Output 155e5c31af7Sopenharmony_ci %442 = OpConstantComposite %439 %13 %61 %61 %13 156e5c31af7Sopenharmony_ci %444 = OpConstantComposite %439 %61 %61 %61 %61 157e5c31af7Sopenharmony_ci %449 = OpTypeInt 32 0 158e5c31af7Sopenharmony_ci %450 = OpConstant %449 0 159e5c31af7Sopenharmony_ci %451 = OpConstantFalse %25 160e5c31af7Sopenharmony_ci %454 = OpConstantTrue %25 161e5c31af7Sopenharmony_ci %747 = OpUndef %6 162e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 163e5c31af7Sopenharmony_ci %5 = OpLabel 164e5c31af7Sopenharmony_ci OpBranch %148 165e5c31af7Sopenharmony_ci %148 = OpLabel 166e5c31af7Sopenharmony_ci %606 = OpPhi %6 %61 %5 %786 %151 167e5c31af7Sopenharmony_ci %605 = OpPhi %14 %17 %5 %434 %151 168e5c31af7Sopenharmony_ci %746 = OpPhi %6 %747 %5 %745 %151 169e5c31af7Sopenharmony_ci %154 = OpSLessThan %25 %605 %24 170e5c31af7Sopenharmony_ci OpLoopMerge %150 %151 None 171e5c31af7Sopenharmony_ci OpBranchConditional %154 %149 %150 172e5c31af7Sopenharmony_ci %149 = OpLabel 173e5c31af7Sopenharmony_ci OpBranch %156 174e5c31af7Sopenharmony_ci %156 = OpLabel 175e5c31af7Sopenharmony_ci %607 = OpPhi %14 %17 %149 %432 %159 176e5c31af7Sopenharmony_ci %786 = OpPhi %6 %606 %149 %787 %159 177e5c31af7Sopenharmony_ci %745 = OpPhi %6 %746 %149 %744 %159 178e5c31af7Sopenharmony_ci %162 = OpSLessThan %25 %607 %24 179e5c31af7Sopenharmony_ci OpLoopMerge %158 %159 None 180e5c31af7Sopenharmony_ci OpBranchConditional %162 %157 %158 181e5c31af7Sopenharmony_ci %157 = OpLabel 182e5c31af7Sopenharmony_ci OpBranch %164 183e5c31af7Sopenharmony_ci %164 = OpLabel 184e5c31af7Sopenharmony_ci %609 = OpPhi %14 %17 %157 %430 %167 185e5c31af7Sopenharmony_ci %787 = OpPhi %6 %786 %157 %788 %167 186e5c31af7Sopenharmony_ci %744 = OpPhi %6 %745 %157 %743 %167 187e5c31af7Sopenharmony_ci %170 = OpSLessThan %25 %609 %24 188e5c31af7Sopenharmony_ci OpLoopMerge %166 %167 None 189e5c31af7Sopenharmony_ci OpBranchConditional %170 %165 %166 190e5c31af7Sopenharmony_ci %165 = OpLabel 191e5c31af7Sopenharmony_ci OpBranch %172 192e5c31af7Sopenharmony_ci %172 = OpLabel 193e5c31af7Sopenharmony_ci %611 = OpPhi %14 %17 %165 %428 %175 194e5c31af7Sopenharmony_ci %788 = OpPhi %6 %787 %165 %789 %175 195e5c31af7Sopenharmony_ci %743 = OpPhi %6 %744 %165 %742 %175 196e5c31af7Sopenharmony_ci %178 = OpSLessThan %25 %611 %24 197e5c31af7Sopenharmony_ci OpLoopMerge %174 %175 None 198e5c31af7Sopenharmony_ci OpBranchConditional %178 %173 %174 199e5c31af7Sopenharmony_ci %173 = OpLabel 200e5c31af7Sopenharmony_ci OpBranch %180 201e5c31af7Sopenharmony_ci %180 = OpLabel 202e5c31af7Sopenharmony_ci %613 = OpPhi %14 %17 %173 %426 %183 203e5c31af7Sopenharmony_ci %789 = OpPhi %6 %788 %173 %790 %183 204e5c31af7Sopenharmony_ci %742 = OpPhi %6 %743 %173 %741 %183 205e5c31af7Sopenharmony_ci %186 = OpSLessThan %25 %613 %24 206e5c31af7Sopenharmony_ci OpLoopMerge %182 %183 None 207e5c31af7Sopenharmony_ci OpBranchConditional %186 %181 %182 208e5c31af7Sopenharmony_ci %181 = OpLabel 209e5c31af7Sopenharmony_ci OpBranch %188 210e5c31af7Sopenharmony_ci %188 = OpLabel 211e5c31af7Sopenharmony_ci %615 = OpPhi %14 %17 %181 %424 %191 212e5c31af7Sopenharmony_ci %790 = OpPhi %6 %789 %181 %791 %191 213e5c31af7Sopenharmony_ci %741 = OpPhi %6 %742 %181 %740 %191 214e5c31af7Sopenharmony_ci %194 = OpSLessThan %25 %615 %24 215e5c31af7Sopenharmony_ci OpLoopMerge %190 %191 None 216e5c31af7Sopenharmony_ci OpBranchConditional %194 %189 %190 217e5c31af7Sopenharmony_ci %189 = OpLabel 218e5c31af7Sopenharmony_ci OpBranch %196 219e5c31af7Sopenharmony_ci %196 = OpLabel 220e5c31af7Sopenharmony_ci %617 = OpPhi %14 %17 %189 %422 %199 221e5c31af7Sopenharmony_ci %791 = OpPhi %6 %790 %189 %792 %199 222e5c31af7Sopenharmony_ci %740 = OpPhi %6 %741 %189 %739 %199 223e5c31af7Sopenharmony_ci %202 = OpSLessThan %25 %617 %24 224e5c31af7Sopenharmony_ci OpLoopMerge %198 %199 None 225e5c31af7Sopenharmony_ci OpBranchConditional %202 %197 %198 226e5c31af7Sopenharmony_ci %197 = OpLabel 227e5c31af7Sopenharmony_ci OpBranch %204 228e5c31af7Sopenharmony_ci %204 = OpLabel 229e5c31af7Sopenharmony_ci %619 = OpPhi %14 %17 %197 %420 %207 230e5c31af7Sopenharmony_ci %792 = OpPhi %6 %791 %197 %793 %207 231e5c31af7Sopenharmony_ci %739 = OpPhi %6 %740 %197 %738 %207 232e5c31af7Sopenharmony_ci %210 = OpSLessThan %25 %619 %24 233e5c31af7Sopenharmony_ci OpLoopMerge %206 %207 None 234e5c31af7Sopenharmony_ci OpBranchConditional %210 %205 %206 235e5c31af7Sopenharmony_ci %205 = OpLabel 236e5c31af7Sopenharmony_ci OpBranch %212 237e5c31af7Sopenharmony_ci %212 = OpLabel 238e5c31af7Sopenharmony_ci %621 = OpPhi %14 %17 %205 %418 %215 239e5c31af7Sopenharmony_ci %793 = OpPhi %6 %792 %205 %794 %215 240e5c31af7Sopenharmony_ci %738 = OpPhi %6 %739 %205 %737 %215 241e5c31af7Sopenharmony_ci %218 = OpSLessThan %25 %621 %24 242e5c31af7Sopenharmony_ci OpLoopMerge %214 %215 None 243e5c31af7Sopenharmony_ci OpBranchConditional %218 %213 %214 244e5c31af7Sopenharmony_ci %213 = OpLabel 245e5c31af7Sopenharmony_ci OpBranch %220 246e5c31af7Sopenharmony_ci %220 = OpLabel 247e5c31af7Sopenharmony_ci %623 = OpPhi %14 %17 %213 %416 %223 248e5c31af7Sopenharmony_ci %794 = OpPhi %6 %793 %213 %795 %223 249e5c31af7Sopenharmony_ci %737 = OpPhi %6 %738 %213 %736 %223 250e5c31af7Sopenharmony_ci %226 = OpSLessThan %25 %623 %24 251e5c31af7Sopenharmony_ci OpLoopMerge %222 %223 None 252e5c31af7Sopenharmony_ci OpBranchConditional %226 %221 %222 253e5c31af7Sopenharmony_ci %221 = OpLabel 254e5c31af7Sopenharmony_ci OpBranch %228 255e5c31af7Sopenharmony_ci %228 = OpLabel 256e5c31af7Sopenharmony_ci %625 = OpPhi %14 %17 %221 %414 %231 257e5c31af7Sopenharmony_ci %795 = OpPhi %6 %794 %221 %796 %231 258e5c31af7Sopenharmony_ci %736 = OpPhi %6 %737 %221 %735 %231 259e5c31af7Sopenharmony_ci %234 = OpSLessThan %25 %625 %24 260e5c31af7Sopenharmony_ci OpLoopMerge %230 %231 None 261e5c31af7Sopenharmony_ci OpBranchConditional %234 %229 %230 262e5c31af7Sopenharmony_ci %229 = OpLabel 263e5c31af7Sopenharmony_ci OpBranch %236 264e5c31af7Sopenharmony_ci %236 = OpLabel 265e5c31af7Sopenharmony_ci %627 = OpPhi %14 %17 %229 %412 %239 266e5c31af7Sopenharmony_ci %796 = OpPhi %6 %795 %229 %797 %239 267e5c31af7Sopenharmony_ci %735 = OpPhi %6 %736 %229 %734 %239 268e5c31af7Sopenharmony_ci %242 = OpSLessThan %25 %627 %24 269e5c31af7Sopenharmony_ci OpLoopMerge %238 %239 None 270e5c31af7Sopenharmony_ci OpBranchConditional %242 %237 %238 271e5c31af7Sopenharmony_ci %237 = OpLabel 272e5c31af7Sopenharmony_ci OpBranch %244 273e5c31af7Sopenharmony_ci %244 = OpLabel 274e5c31af7Sopenharmony_ci %629 = OpPhi %14 %17 %237 %410 %247 275e5c31af7Sopenharmony_ci %797 = OpPhi %6 %796 %237 %798 %247 276e5c31af7Sopenharmony_ci %734 = OpPhi %6 %735 %237 %733 %247 277e5c31af7Sopenharmony_ci %250 = OpSLessThan %25 %629 %24 278e5c31af7Sopenharmony_ci OpLoopMerge %246 %247 None 279e5c31af7Sopenharmony_ci OpBranchConditional %250 %245 %246 280e5c31af7Sopenharmony_ci %245 = OpLabel 281e5c31af7Sopenharmony_ci OpBranch %252 282e5c31af7Sopenharmony_ci %252 = OpLabel 283e5c31af7Sopenharmony_ci %631 = OpPhi %14 %17 %245 %408 %255 284e5c31af7Sopenharmony_ci %798 = OpPhi %6 %797 %245 %799 %255 285e5c31af7Sopenharmony_ci %733 = OpPhi %6 %734 %245 %732 %255 286e5c31af7Sopenharmony_ci %258 = OpSLessThan %25 %631 %24 287e5c31af7Sopenharmony_ci OpLoopMerge %254 %255 None 288e5c31af7Sopenharmony_ci OpBranchConditional %258 %253 %254 289e5c31af7Sopenharmony_ci %253 = OpLabel 290e5c31af7Sopenharmony_ci OpBranch %260 291e5c31af7Sopenharmony_ci %260 = OpLabel 292e5c31af7Sopenharmony_ci %633 = OpPhi %14 %17 %253 %406 %263 293e5c31af7Sopenharmony_ci %799 = OpPhi %6 %798 %253 %800 %263 294e5c31af7Sopenharmony_ci %732 = OpPhi %6 %733 %253 %731 %263 295e5c31af7Sopenharmony_ci %266 = OpSLessThan %25 %633 %24 296e5c31af7Sopenharmony_ci OpLoopMerge %262 %263 None 297e5c31af7Sopenharmony_ci OpBranchConditional %266 %261 %262 298e5c31af7Sopenharmony_ci %261 = OpLabel 299e5c31af7Sopenharmony_ci OpBranch %268 300e5c31af7Sopenharmony_ci %268 = OpLabel 301e5c31af7Sopenharmony_ci %635 = OpPhi %14 %17 %261 %404 %271 302e5c31af7Sopenharmony_ci %800 = OpPhi %6 %799 %261 %801 %271 303e5c31af7Sopenharmony_ci %731 = OpPhi %6 %732 %261 %730 %271 304e5c31af7Sopenharmony_ci %274 = OpSLessThan %25 %635 %24 305e5c31af7Sopenharmony_ci OpLoopMerge %270 %271 None 306e5c31af7Sopenharmony_ci OpBranchConditional %274 %269 %270 307e5c31af7Sopenharmony_ci %269 = OpLabel 308e5c31af7Sopenharmony_ci OpBranch %276 309e5c31af7Sopenharmony_ci %276 = OpLabel 310e5c31af7Sopenharmony_ci %637 = OpPhi %14 %17 %269 %402 %279 311e5c31af7Sopenharmony_ci %801 = OpPhi %6 %800 %269 %802 %279 312e5c31af7Sopenharmony_ci %730 = OpPhi %6 %731 %269 %729 %279 313e5c31af7Sopenharmony_ci %282 = OpSLessThan %25 %637 %24 314e5c31af7Sopenharmony_ci OpLoopMerge %278 %279 None 315e5c31af7Sopenharmony_ci OpBranchConditional %282 %277 %278 316e5c31af7Sopenharmony_ci %277 = OpLabel 317e5c31af7Sopenharmony_ci OpBranch %284 318e5c31af7Sopenharmony_ci %284 = OpLabel 319e5c31af7Sopenharmony_ci %639 = OpPhi %14 %17 %277 %400 %287 320e5c31af7Sopenharmony_ci %802 = OpPhi %6 %801 %277 %803 %287 321e5c31af7Sopenharmony_ci %729 = OpPhi %6 %730 %277 %728 %287 322e5c31af7Sopenharmony_ci %290 = OpSLessThan %25 %639 %24 323e5c31af7Sopenharmony_ci OpLoopMerge %286 %287 None 324e5c31af7Sopenharmony_ci OpBranchConditional %290 %285 %286 325e5c31af7Sopenharmony_ci %285 = OpLabel 326e5c31af7Sopenharmony_ci OpBranch %292 327e5c31af7Sopenharmony_ci %292 = OpLabel 328e5c31af7Sopenharmony_ci %641 = OpPhi %14 %17 %285 %398 %295 329e5c31af7Sopenharmony_ci %803 = OpPhi %6 %802 %285 %804 %295 330e5c31af7Sopenharmony_ci %728 = OpPhi %6 %729 %285 %727 %295 331e5c31af7Sopenharmony_ci %298 = OpSLessThan %25 %641 %24 332e5c31af7Sopenharmony_ci OpLoopMerge %294 %295 None 333e5c31af7Sopenharmony_ci OpBranchConditional %298 %293 %294 334e5c31af7Sopenharmony_ci %293 = OpLabel 335e5c31af7Sopenharmony_ci OpBranch %300 336e5c31af7Sopenharmony_ci %300 = OpLabel 337e5c31af7Sopenharmony_ci %643 = OpPhi %14 %17 %293 %396 %303 338e5c31af7Sopenharmony_ci %804 = OpPhi %6 %803 %293 %805 %303 339e5c31af7Sopenharmony_ci %727 = OpPhi %6 %728 %293 %726 %303 340e5c31af7Sopenharmony_ci %306 = OpSLessThan %25 %643 %24 341e5c31af7Sopenharmony_ci OpLoopMerge %302 %303 None 342e5c31af7Sopenharmony_ci OpBranchConditional %306 %301 %302 343e5c31af7Sopenharmony_ci %301 = OpLabel 344e5c31af7Sopenharmony_ci OpBranch %308 345e5c31af7Sopenharmony_ci %308 = OpLabel 346e5c31af7Sopenharmony_ci %645 = OpPhi %14 %17 %301 %394 %311 347e5c31af7Sopenharmony_ci %805 = OpPhi %6 %804 %301 %806 %311 348e5c31af7Sopenharmony_ci %726 = OpPhi %6 %727 %301 %725 %311 349e5c31af7Sopenharmony_ci %314 = OpSLessThan %25 %645 %24 350e5c31af7Sopenharmony_ci OpLoopMerge %310 %311 None 351e5c31af7Sopenharmony_ci OpBranchConditional %314 %309 %310 352e5c31af7Sopenharmony_ci %309 = OpLabel 353e5c31af7Sopenharmony_ci OpBranch %316 354e5c31af7Sopenharmony_ci %316 = OpLabel 355e5c31af7Sopenharmony_ci %647 = OpPhi %14 %17 %309 %392 %319 356e5c31af7Sopenharmony_ci %806 = OpPhi %6 %805 %309 %807 %319 357e5c31af7Sopenharmony_ci %725 = OpPhi %6 %726 %309 %724 %319 358e5c31af7Sopenharmony_ci %322 = OpSLessThan %25 %647 %24 359e5c31af7Sopenharmony_ci OpLoopMerge %318 %319 None 360e5c31af7Sopenharmony_ci OpBranchConditional %322 %317 %318 361e5c31af7Sopenharmony_ci %317 = OpLabel 362e5c31af7Sopenharmony_ci OpBranch %324 363e5c31af7Sopenharmony_ci %324 = OpLabel 364e5c31af7Sopenharmony_ci %649 = OpPhi %14 %17 %317 %390 %327 365e5c31af7Sopenharmony_ci %807 = OpPhi %6 %806 %317 %808 %327 366e5c31af7Sopenharmony_ci %724 = OpPhi %6 %725 %317 %723 %327 367e5c31af7Sopenharmony_ci %330 = OpSLessThan %25 %649 %24 368e5c31af7Sopenharmony_ci OpLoopMerge %326 %327 None 369e5c31af7Sopenharmony_ci OpBranchConditional %330 %325 %326 370e5c31af7Sopenharmony_ci %325 = OpLabel 371e5c31af7Sopenharmony_ci OpBranch %332 372e5c31af7Sopenharmony_ci %332 = OpLabel 373e5c31af7Sopenharmony_ci %651 = OpPhi %14 %17 %325 %388 %335 374e5c31af7Sopenharmony_ci %808 = OpPhi %6 %807 %325 %809 %335 375e5c31af7Sopenharmony_ci %723 = OpPhi %6 %724 %325 %722 %335 376e5c31af7Sopenharmony_ci %338 = OpSLessThan %25 %651 %24 377e5c31af7Sopenharmony_ci OpLoopMerge %334 %335 None 378e5c31af7Sopenharmony_ci OpBranchConditional %338 %333 %334 379e5c31af7Sopenharmony_ci %333 = OpLabel 380e5c31af7Sopenharmony_ci OpBranch %340 381e5c31af7Sopenharmony_ci %340 = OpLabel 382e5c31af7Sopenharmony_ci %653 = OpPhi %14 %17 %333 %386 %343 383e5c31af7Sopenharmony_ci %809 = OpPhi %6 %808 %333 %810 %343 384e5c31af7Sopenharmony_ci %722 = OpPhi %6 %723 %333 %721 %343 385e5c31af7Sopenharmony_ci %346 = OpSLessThan %25 %653 %24 386e5c31af7Sopenharmony_ci OpLoopMerge %342 %343 None 387e5c31af7Sopenharmony_ci OpBranchConditional %346 %341 %342 388e5c31af7Sopenharmony_ci %341 = OpLabel 389e5c31af7Sopenharmony_ci OpBranch %348 390e5c31af7Sopenharmony_ci %348 = OpLabel 391e5c31af7Sopenharmony_ci %655 = OpPhi %14 %17 %341 %384 %351 392e5c31af7Sopenharmony_ci %810 = OpPhi %6 %809 %341 %811 %351 393e5c31af7Sopenharmony_ci %721 = OpPhi %6 %722 %341 %720 %351 394e5c31af7Sopenharmony_ci %354 = OpSLessThan %25 %655 %24 395e5c31af7Sopenharmony_ci OpLoopMerge %350 %351 None 396e5c31af7Sopenharmony_ci OpBranchConditional %354 %349 %350 397e5c31af7Sopenharmony_ci %349 = OpLabel 398e5c31af7Sopenharmony_ci OpBranch %356 399e5c31af7Sopenharmony_ci %356 = OpLabel 400e5c31af7Sopenharmony_ci %657 = OpPhi %14 %17 %349 %382 %359 401e5c31af7Sopenharmony_ci %811 = OpPhi %6 %810 %349 %812 %359 402e5c31af7Sopenharmony_ci %720 = OpPhi %6 %721 %349 %719 %359 403e5c31af7Sopenharmony_ci %362 = OpSLessThan %25 %657 %24 404e5c31af7Sopenharmony_ci OpLoopMerge %358 %359 None 405e5c31af7Sopenharmony_ci OpBranchConditional %362 %357 %358 406e5c31af7Sopenharmony_ci %357 = OpLabel 407e5c31af7Sopenharmony_ci OpBranch %364 408e5c31af7Sopenharmony_ci %364 = OpLabel 409e5c31af7Sopenharmony_ci %719 = OpPhi %6 %720 %357 %716 %367 410e5c31af7Sopenharmony_ci %659 = OpPhi %14 %17 %357 %380 %367 411e5c31af7Sopenharmony_ci %812 = OpPhi %6 %811 %357 %716 %367 412e5c31af7Sopenharmony_ci %370 = OpSLessThan %25 %659 %24 413e5c31af7Sopenharmony_ci OpLoopMerge %366 %367 None 414e5c31af7Sopenharmony_ci OpBranchConditional %370 %365 %366 415e5c31af7Sopenharmony_ci %365 = OpLabel 416e5c31af7Sopenharmony_ci %376 = OpAccessChain %375 %373 %17 417e5c31af7Sopenharmony_ci %377 = OpLoad %6 %376 418e5c31af7Sopenharmony_ci OpSelectionMerge %603 None 419e5c31af7Sopenharmony_ci OpSwitch %450 %481 420e5c31af7Sopenharmony_ci %481 = OpLabel 421e5c31af7Sopenharmony_ci OpBranch %482 422e5c31af7Sopenharmony_ci %482 = OpLabel 423e5c31af7Sopenharmony_ci %681 = OpPhi %25 %451 %481 %704 %597 424e5c31af7Sopenharmony_ci %674 = OpPhi %6 %13 %481 %1655 %597 425e5c31af7Sopenharmony_ci %661 = OpPhi %14 %17 %481 %599 %597 426e5c31af7Sopenharmony_ci %718 = OpPhi %6 %719 %481 %748 %597 427e5c31af7Sopenharmony_ci %485 = OpSLessThan %25 %661 %24 428e5c31af7Sopenharmony_ci OpLoopMerge %600 %597 None 429e5c31af7Sopenharmony_ci OpBranchConditional %485 %486 %600 430e5c31af7Sopenharmony_ci %486 = OpLabel 431e5c31af7Sopenharmony_ci OpBranch %487 432e5c31af7Sopenharmony_ci %487 = OpLabel 433e5c31af7Sopenharmony_ci %680 = OpPhi %25 %681 %486 %695 %591 434e5c31af7Sopenharmony_ci %673 = OpPhi %6 %674 %486 %1656 %591 435e5c31af7Sopenharmony_ci %662 = OpPhi %14 %17 %486 %593 %591 436e5c31af7Sopenharmony_ci %749 = OpPhi %6 %718 %486 %750 %591 437e5c31af7Sopenharmony_ci %490 = OpSLessThan %25 %662 %24 438e5c31af7Sopenharmony_ci OpLoopMerge %594 %591 None 439e5c31af7Sopenharmony_ci OpBranchConditional %490 %491 %594 440e5c31af7Sopenharmony_ci %491 = OpLabel 441e5c31af7Sopenharmony_ci OpBranch %492 442e5c31af7Sopenharmony_ci %492 = OpLabel 443e5c31af7Sopenharmony_ci %679 = OpPhi %25 %680 %491 %688 %585 444e5c31af7Sopenharmony_ci %672 = OpPhi %6 %673 %491 %1657 %585 445e5c31af7Sopenharmony_ci %663 = OpPhi %14 %17 %491 %587 %585 446e5c31af7Sopenharmony_ci %751 = OpPhi %6 %749 %491 %752 %585 447e5c31af7Sopenharmony_ci %495 = OpSLessThan %25 %663 %24 448e5c31af7Sopenharmony_ci OpLoopMerge %588 %585 None 449e5c31af7Sopenharmony_ci OpBranchConditional %495 %496 %588 450e5c31af7Sopenharmony_ci %496 = OpLabel 451e5c31af7Sopenharmony_ci OpBranch %497 452e5c31af7Sopenharmony_ci %497 = OpLabel 453e5c31af7Sopenharmony_ci %678 = OpPhi %25 %679 %496 %676 %579 454e5c31af7Sopenharmony_ci %671 = OpPhi %6 %672 %496 %1658 %579 455e5c31af7Sopenharmony_ci %664 = OpPhi %14 %17 %496 %581 %579 456e5c31af7Sopenharmony_ci %753 = OpPhi %6 %751 %496 %754 %579 457e5c31af7Sopenharmony_ci %500 = OpSLessThan %25 %664 %24 458e5c31af7Sopenharmony_ci OpLoopMerge %582 %579 None 459e5c31af7Sopenharmony_ci OpBranchConditional %500 %501 %582 460e5c31af7Sopenharmony_ci %501 = OpLabel 461e5c31af7Sopenharmony_ci OpBranch %502 462e5c31af7Sopenharmony_ci %502 = OpLabel 463e5c31af7Sopenharmony_ci %665 = OpPhi %14 %17 %501 %575 %573 464e5c31af7Sopenharmony_ci %670 = OpPhi %6 %671 %501 %669 %573 465e5c31af7Sopenharmony_ci %505 = OpSLessThan %25 %665 %24 466e5c31af7Sopenharmony_ci OpLoopMerge %576 %573 None 467e5c31af7Sopenharmony_ci OpBranchConditional %505 %506 %576 468e5c31af7Sopenharmony_ci %506 = OpLabel 469e5c31af7Sopenharmony_ci %508 = OpFMod %6 %13 %377 470e5c31af7Sopenharmony_ci %509 = OpFOrdLessThan %25 %508 %61 471e5c31af7Sopenharmony_ci OpSelectionMerge %567 None 472e5c31af7Sopenharmony_ci OpBranchConditional %509 %510 %567 473e5c31af7Sopenharmony_ci %510 = OpLabel 474e5c31af7Sopenharmony_ci OpBranch %511 475e5c31af7Sopenharmony_ci %511 = OpLabel 476e5c31af7Sopenharmony_ci %675 = OpPhi %6 %670 %510 %785 %563 477e5c31af7Sopenharmony_ci %666 = OpPhi %14 %17 %510 %565 %563 478e5c31af7Sopenharmony_ci %514 = OpSLessThan %25 %666 %24 479e5c31af7Sopenharmony_ci OpLoopMerge %566 %563 None 480e5c31af7Sopenharmony_ci OpBranchConditional %514 %515 %566 481e5c31af7Sopenharmony_ci %515 = OpLabel 482e5c31af7Sopenharmony_ci OpBranch %516 483e5c31af7Sopenharmony_ci %516 = OpLabel 484e5c31af7Sopenharmony_ci %771 = OpPhi %14 %17 %515 %561 %559 485e5c31af7Sopenharmony_ci %785 = OpPhi %6 %675 %515 %784 %559 486e5c31af7Sopenharmony_ci %519 = OpSLessThan %25 %771 %24 487e5c31af7Sopenharmony_ci OpLoopMerge %562 %559 None 488e5c31af7Sopenharmony_ci OpBranchConditional %519 %520 %562 489e5c31af7Sopenharmony_ci %520 = OpLabel 490e5c31af7Sopenharmony_ci OpBranch %521 491e5c31af7Sopenharmony_ci %521 = OpLabel 492e5c31af7Sopenharmony_ci %773 = OpPhi %14 %17 %520 %557 %555 493e5c31af7Sopenharmony_ci %784 = OpPhi %6 %785 %520 %783 %555 494e5c31af7Sopenharmony_ci %524 = OpSLessThan %25 %773 %24 495e5c31af7Sopenharmony_ci OpLoopMerge %558 %555 None 496e5c31af7Sopenharmony_ci OpBranchConditional %524 %525 %558 497e5c31af7Sopenharmony_ci %525 = OpLabel 498e5c31af7Sopenharmony_ci OpBranch %526 499e5c31af7Sopenharmony_ci %526 = OpLabel 500e5c31af7Sopenharmony_ci %775 = OpPhi %14 %17 %525 %553 %551 501e5c31af7Sopenharmony_ci %783 = OpPhi %6 %784 %525 %782 %551 502e5c31af7Sopenharmony_ci %529 = OpSLessThan %25 %775 %24 503e5c31af7Sopenharmony_ci OpLoopMerge %554 %551 None 504e5c31af7Sopenharmony_ci OpBranchConditional %529 %530 %554 505e5c31af7Sopenharmony_ci %530 = OpLabel 506e5c31af7Sopenharmony_ci OpBranch %531 507e5c31af7Sopenharmony_ci %531 = OpLabel 508e5c31af7Sopenharmony_ci %777 = OpPhi %14 %17 %530 %549 %547 509e5c31af7Sopenharmony_ci %782 = OpPhi %6 %783 %530 %781 %547 510e5c31af7Sopenharmony_ci %534 = OpSLessThan %25 %777 %24 511e5c31af7Sopenharmony_ci OpLoopMerge %550 %547 None 512e5c31af7Sopenharmony_ci OpBranchConditional %534 %535 %550 513e5c31af7Sopenharmony_ci %535 = OpLabel 514e5c31af7Sopenharmony_ci OpBranch %536 515e5c31af7Sopenharmony_ci %536 = OpLabel 516e5c31af7Sopenharmony_ci %781 = OpPhi %6 %782 %535 %542 %540 517e5c31af7Sopenharmony_ci %779 = OpPhi %14 %17 %535 %545 %540 518e5c31af7Sopenharmony_ci %539 = OpSLessThan %25 %779 %24 519e5c31af7Sopenharmony_ci OpLoopMerge %546 %540 None 520e5c31af7Sopenharmony_ci OpBranchConditional %539 %540 %546 521e5c31af7Sopenharmony_ci %540 = OpLabel 522e5c31af7Sopenharmony_ci %542 = OpFAdd %6 %781 %13 523e5c31af7Sopenharmony_ci %545 = OpIAdd %14 %779 %24 524e5c31af7Sopenharmony_ci OpBranch %536 525e5c31af7Sopenharmony_ci %546 = OpLabel 526e5c31af7Sopenharmony_ci OpBranch %547 527e5c31af7Sopenharmony_ci %547 = OpLabel 528e5c31af7Sopenharmony_ci %549 = OpIAdd %14 %777 %24 529e5c31af7Sopenharmony_ci OpBranch %531 530e5c31af7Sopenharmony_ci %550 = OpLabel 531e5c31af7Sopenharmony_ci OpBranch %551 532e5c31af7Sopenharmony_ci %551 = OpLabel 533e5c31af7Sopenharmony_ci %553 = OpIAdd %14 %775 %24 534e5c31af7Sopenharmony_ci OpBranch %526 535e5c31af7Sopenharmony_ci %554 = OpLabel 536e5c31af7Sopenharmony_ci OpBranch %555 537e5c31af7Sopenharmony_ci %555 = OpLabel 538e5c31af7Sopenharmony_ci %557 = OpIAdd %14 %773 %24 539e5c31af7Sopenharmony_ci OpBranch %521 540e5c31af7Sopenharmony_ci %558 = OpLabel 541e5c31af7Sopenharmony_ci OpBranch %559 542e5c31af7Sopenharmony_ci %559 = OpLabel 543e5c31af7Sopenharmony_ci %561 = OpIAdd %14 %771 %24 544e5c31af7Sopenharmony_ci OpBranch %516 545e5c31af7Sopenharmony_ci %562 = OpLabel 546e5c31af7Sopenharmony_ci OpBranch %563 547e5c31af7Sopenharmony_ci %563 = OpLabel 548e5c31af7Sopenharmony_ci %565 = OpIAdd %14 %666 %24 549e5c31af7Sopenharmony_ci OpBranch %511 550e5c31af7Sopenharmony_ci %566 = OpLabel 551e5c31af7Sopenharmony_ci OpBranch %567 552e5c31af7Sopenharmony_ci %567 = OpLabel 553e5c31af7Sopenharmony_ci %669 = OpPhi %6 %670 %506 %675 %566 554e5c31af7Sopenharmony_ci %569 = OpFOrdGreaterThan %25 %377 %13 555e5c31af7Sopenharmony_ci OpSelectionMerge %572 None 556e5c31af7Sopenharmony_ci OpBranchConditional %569 %570 %572 557e5c31af7Sopenharmony_ci %570 = OpLabel 558e5c31af7Sopenharmony_ci OpBranch %576 559e5c31af7Sopenharmony_ci %572 = OpLabel 560e5c31af7Sopenharmony_ci OpBranch %573 561e5c31af7Sopenharmony_ci %573 = OpLabel 562e5c31af7Sopenharmony_ci %575 = OpIAdd %14 %665 %24 563e5c31af7Sopenharmony_ci OpBranch %502 564e5c31af7Sopenharmony_ci %576 = OpLabel 565e5c31af7Sopenharmony_ci %1658 = OpPhi %6 %670 %502 %669 %570 566e5c31af7Sopenharmony_ci %754 = OpPhi %6 %753 %502 %669 %570 567e5c31af7Sopenharmony_ci %676 = OpPhi %25 %678 %502 %454 %570 568e5c31af7Sopenharmony_ci OpSelectionMerge %578 None 569e5c31af7Sopenharmony_ci OpBranchConditional %676 %582 %578 570e5c31af7Sopenharmony_ci %578 = OpLabel 571e5c31af7Sopenharmony_ci OpBranch %579 572e5c31af7Sopenharmony_ci %579 = OpLabel 573e5c31af7Sopenharmony_ci %581 = OpIAdd %14 %664 %24 574e5c31af7Sopenharmony_ci OpBranch %497 575e5c31af7Sopenharmony_ci %582 = OpLabel 576e5c31af7Sopenharmony_ci %1657 = OpPhi %6 %671 %497 %1658 %576 577e5c31af7Sopenharmony_ci %752 = OpPhi %6 %753 %497 %754 %576 578e5c31af7Sopenharmony_ci %688 = OpPhi %25 %678 %497 %676 %576 579e5c31af7Sopenharmony_ci OpSelectionMerge %584 None 580e5c31af7Sopenharmony_ci OpBranchConditional %688 %588 %584 581e5c31af7Sopenharmony_ci %584 = OpLabel 582e5c31af7Sopenharmony_ci OpBranch %585 583e5c31af7Sopenharmony_ci %585 = OpLabel 584e5c31af7Sopenharmony_ci %587 = OpIAdd %14 %663 %24 585e5c31af7Sopenharmony_ci OpBranch %492 586e5c31af7Sopenharmony_ci %588 = OpLabel 587e5c31af7Sopenharmony_ci %1656 = OpPhi %6 %672 %492 %1657 %582 588e5c31af7Sopenharmony_ci %750 = OpPhi %6 %751 %492 %752 %582 589e5c31af7Sopenharmony_ci %695 = OpPhi %25 %679 %492 %688 %582 590e5c31af7Sopenharmony_ci OpSelectionMerge %590 None 591e5c31af7Sopenharmony_ci OpBranchConditional %695 %594 %590 592e5c31af7Sopenharmony_ci %590 = OpLabel 593e5c31af7Sopenharmony_ci OpBranch %591 594e5c31af7Sopenharmony_ci %591 = OpLabel 595e5c31af7Sopenharmony_ci %593 = OpIAdd %14 %662 %24 596e5c31af7Sopenharmony_ci OpBranch %487 597e5c31af7Sopenharmony_ci %594 = OpLabel 598e5c31af7Sopenharmony_ci %1655 = OpPhi %6 %673 %487 %1656 %588 599e5c31af7Sopenharmony_ci %748 = OpPhi %6 %749 %487 %750 %588 600e5c31af7Sopenharmony_ci %704 = OpPhi %25 %680 %487 %695 %588 601e5c31af7Sopenharmony_ci OpSelectionMerge %596 None 602e5c31af7Sopenharmony_ci OpBranchConditional %704 %600 %596 603e5c31af7Sopenharmony_ci %596 = OpLabel 604e5c31af7Sopenharmony_ci OpBranch %597 605e5c31af7Sopenharmony_ci %597 = OpLabel 606e5c31af7Sopenharmony_ci %599 = OpIAdd %14 %661 %24 607e5c31af7Sopenharmony_ci OpBranch %482 608e5c31af7Sopenharmony_ci %600 = OpLabel 609e5c31af7Sopenharmony_ci %717 = OpPhi %6 %718 %482 %748 %594 610e5c31af7Sopenharmony_ci %715 = OpPhi %25 %681 %482 %704 %594 611e5c31af7Sopenharmony_ci OpSelectionMerge %602 None 612e5c31af7Sopenharmony_ci OpBranchConditional %715 %603 %602 613e5c31af7Sopenharmony_ci %602 = OpLabel 614e5c31af7Sopenharmony_ci OpBranch %603 615e5c31af7Sopenharmony_ci %603 = OpLabel 616e5c31af7Sopenharmony_ci %716 = OpPhi %6 %717 %600 %143 %602 617e5c31af7Sopenharmony_ci OpBranch %367 618e5c31af7Sopenharmony_ci %367 = OpLabel 619e5c31af7Sopenharmony_ci %380 = OpIAdd %14 %659 %24 620e5c31af7Sopenharmony_ci OpBranch %364 621e5c31af7Sopenharmony_ci %366 = OpLabel 622e5c31af7Sopenharmony_ci OpBranch %359 623e5c31af7Sopenharmony_ci %359 = OpLabel 624e5c31af7Sopenharmony_ci %382 = OpIAdd %14 %657 %24 625e5c31af7Sopenharmony_ci OpBranch %356 626e5c31af7Sopenharmony_ci %358 = OpLabel 627e5c31af7Sopenharmony_ci OpBranch %351 628e5c31af7Sopenharmony_ci %351 = OpLabel 629e5c31af7Sopenharmony_ci %384 = OpIAdd %14 %655 %24 630e5c31af7Sopenharmony_ci OpBranch %348 631e5c31af7Sopenharmony_ci %350 = OpLabel 632e5c31af7Sopenharmony_ci OpBranch %343 633e5c31af7Sopenharmony_ci %343 = OpLabel 634e5c31af7Sopenharmony_ci %386 = OpIAdd %14 %653 %24 635e5c31af7Sopenharmony_ci OpBranch %340 636e5c31af7Sopenharmony_ci %342 = OpLabel 637e5c31af7Sopenharmony_ci OpBranch %335 638e5c31af7Sopenharmony_ci %335 = OpLabel 639e5c31af7Sopenharmony_ci %388 = OpIAdd %14 %651 %24 640e5c31af7Sopenharmony_ci OpBranch %332 641e5c31af7Sopenharmony_ci %334 = OpLabel 642e5c31af7Sopenharmony_ci OpBranch %327 643e5c31af7Sopenharmony_ci %327 = OpLabel 644e5c31af7Sopenharmony_ci %390 = OpIAdd %14 %649 %24 645e5c31af7Sopenharmony_ci OpBranch %324 646e5c31af7Sopenharmony_ci %326 = OpLabel 647e5c31af7Sopenharmony_ci OpBranch %319 648e5c31af7Sopenharmony_ci %319 = OpLabel 649e5c31af7Sopenharmony_ci %392 = OpIAdd %14 %647 %24 650e5c31af7Sopenharmony_ci OpBranch %316 651e5c31af7Sopenharmony_ci %318 = OpLabel 652e5c31af7Sopenharmony_ci OpBranch %311 653e5c31af7Sopenharmony_ci %311 = OpLabel 654e5c31af7Sopenharmony_ci %394 = OpIAdd %14 %645 %24 655e5c31af7Sopenharmony_ci OpBranch %308 656e5c31af7Sopenharmony_ci %310 = OpLabel 657e5c31af7Sopenharmony_ci OpBranch %303 658e5c31af7Sopenharmony_ci %303 = OpLabel 659e5c31af7Sopenharmony_ci %396 = OpIAdd %14 %643 %24 660e5c31af7Sopenharmony_ci OpBranch %300 661e5c31af7Sopenharmony_ci %302 = OpLabel 662e5c31af7Sopenharmony_ci OpBranch %295 663e5c31af7Sopenharmony_ci %295 = OpLabel 664e5c31af7Sopenharmony_ci %398 = OpIAdd %14 %641 %24 665e5c31af7Sopenharmony_ci OpBranch %292 666e5c31af7Sopenharmony_ci %294 = OpLabel 667e5c31af7Sopenharmony_ci OpBranch %287 668e5c31af7Sopenharmony_ci %287 = OpLabel 669e5c31af7Sopenharmony_ci %400 = OpIAdd %14 %639 %24 670e5c31af7Sopenharmony_ci OpBranch %284 671e5c31af7Sopenharmony_ci %286 = OpLabel 672e5c31af7Sopenharmony_ci OpBranch %279 673e5c31af7Sopenharmony_ci %279 = OpLabel 674e5c31af7Sopenharmony_ci %402 = OpIAdd %14 %637 %24 675e5c31af7Sopenharmony_ci OpBranch %276 676e5c31af7Sopenharmony_ci %278 = OpLabel 677e5c31af7Sopenharmony_ci OpBranch %271 678e5c31af7Sopenharmony_ci %271 = OpLabel 679e5c31af7Sopenharmony_ci %404 = OpIAdd %14 %635 %24 680e5c31af7Sopenharmony_ci OpBranch %268 681e5c31af7Sopenharmony_ci %270 = OpLabel 682e5c31af7Sopenharmony_ci OpBranch %263 683e5c31af7Sopenharmony_ci %263 = OpLabel 684e5c31af7Sopenharmony_ci %406 = OpIAdd %14 %633 %24 685e5c31af7Sopenharmony_ci OpBranch %260 686e5c31af7Sopenharmony_ci %262 = OpLabel 687e5c31af7Sopenharmony_ci OpBranch %255 688e5c31af7Sopenharmony_ci %255 = OpLabel 689e5c31af7Sopenharmony_ci %408 = OpIAdd %14 %631 %24 690e5c31af7Sopenharmony_ci OpBranch %252 691e5c31af7Sopenharmony_ci %254 = OpLabel 692e5c31af7Sopenharmony_ci OpBranch %247 693e5c31af7Sopenharmony_ci %247 = OpLabel 694e5c31af7Sopenharmony_ci %410 = OpIAdd %14 %629 %24 695e5c31af7Sopenharmony_ci OpBranch %244 696e5c31af7Sopenharmony_ci %246 = OpLabel 697e5c31af7Sopenharmony_ci OpBranch %239 698e5c31af7Sopenharmony_ci %239 = OpLabel 699e5c31af7Sopenharmony_ci %412 = OpIAdd %14 %627 %24 700e5c31af7Sopenharmony_ci OpBranch %236 701e5c31af7Sopenharmony_ci %238 = OpLabel 702e5c31af7Sopenharmony_ci OpBranch %231 703e5c31af7Sopenharmony_ci %231 = OpLabel 704e5c31af7Sopenharmony_ci %414 = OpIAdd %14 %625 %24 705e5c31af7Sopenharmony_ci OpBranch %228 706e5c31af7Sopenharmony_ci %230 = OpLabel 707e5c31af7Sopenharmony_ci OpBranch %223 708e5c31af7Sopenharmony_ci %223 = OpLabel 709e5c31af7Sopenharmony_ci %416 = OpIAdd %14 %623 %24 710e5c31af7Sopenharmony_ci OpBranch %220 711e5c31af7Sopenharmony_ci %222 = OpLabel 712e5c31af7Sopenharmony_ci OpBranch %215 713e5c31af7Sopenharmony_ci %215 = OpLabel 714e5c31af7Sopenharmony_ci %418 = OpIAdd %14 %621 %24 715e5c31af7Sopenharmony_ci OpBranch %212 716e5c31af7Sopenharmony_ci %214 = OpLabel 717e5c31af7Sopenharmony_ci OpBranch %207 718e5c31af7Sopenharmony_ci %207 = OpLabel 719e5c31af7Sopenharmony_ci %420 = OpIAdd %14 %619 %24 720e5c31af7Sopenharmony_ci OpBranch %204 721e5c31af7Sopenharmony_ci %206 = OpLabel 722e5c31af7Sopenharmony_ci OpBranch %199 723e5c31af7Sopenharmony_ci %199 = OpLabel 724e5c31af7Sopenharmony_ci %422 = OpIAdd %14 %617 %24 725e5c31af7Sopenharmony_ci OpBranch %196 726e5c31af7Sopenharmony_ci %198 = OpLabel 727e5c31af7Sopenharmony_ci OpBranch %191 728e5c31af7Sopenharmony_ci %191 = OpLabel 729e5c31af7Sopenharmony_ci %424 = OpIAdd %14 %615 %24 730e5c31af7Sopenharmony_ci OpBranch %188 731e5c31af7Sopenharmony_ci %190 = OpLabel 732e5c31af7Sopenharmony_ci OpBranch %183 733e5c31af7Sopenharmony_ci %183 = OpLabel 734e5c31af7Sopenharmony_ci %426 = OpIAdd %14 %613 %24 735e5c31af7Sopenharmony_ci OpBranch %180 736e5c31af7Sopenharmony_ci %182 = OpLabel 737e5c31af7Sopenharmony_ci OpBranch %175 738e5c31af7Sopenharmony_ci %175 = OpLabel 739e5c31af7Sopenharmony_ci %428 = OpIAdd %14 %611 %24 740e5c31af7Sopenharmony_ci OpBranch %172 741e5c31af7Sopenharmony_ci %174 = OpLabel 742e5c31af7Sopenharmony_ci OpBranch %167 743e5c31af7Sopenharmony_ci %167 = OpLabel 744e5c31af7Sopenharmony_ci %430 = OpIAdd %14 %609 %24 745e5c31af7Sopenharmony_ci OpBranch %164 746e5c31af7Sopenharmony_ci %166 = OpLabel 747e5c31af7Sopenharmony_ci OpBranch %159 748e5c31af7Sopenharmony_ci %159 = OpLabel 749e5c31af7Sopenharmony_ci %432 = OpIAdd %14 %607 %24 750e5c31af7Sopenharmony_ci OpBranch %156 751e5c31af7Sopenharmony_ci %158 = OpLabel 752e5c31af7Sopenharmony_ci OpBranch %151 753e5c31af7Sopenharmony_ci %151 = OpLabel 754e5c31af7Sopenharmony_ci %434 = OpIAdd %14 %605 %24 755e5c31af7Sopenharmony_ci OpBranch %148 756e5c31af7Sopenharmony_ci %150 = OpLabel 757e5c31af7Sopenharmony_ci %436 = OpFOrdEqual %25 %606 %13 758e5c31af7Sopenharmony_ci OpSelectionMerge %438 None 759e5c31af7Sopenharmony_ci OpBranchConditional %436 %437 %443 760e5c31af7Sopenharmony_ci %437 = OpLabel 761e5c31af7Sopenharmony_ci OpStore %441 %442 762e5c31af7Sopenharmony_ci OpBranch %438 763e5c31af7Sopenharmony_ci %443 = OpLabel 764e5c31af7Sopenharmony_ci OpStore %441 %444 765e5c31af7Sopenharmony_ci OpBranch %438 766e5c31af7Sopenharmony_ci %438 = OpLabel 767e5c31af7Sopenharmony_ci OpReturn 768e5c31af7Sopenharmony_ci OpFunctionEnd 769e5c31af7Sopenharmony_ciEND 770e5c31af7Sopenharmony_ci 771e5c31af7Sopenharmony_ci# uniforms for variant 772e5c31af7Sopenharmony_ci 773e5c31af7Sopenharmony_ci# five 774e5c31af7Sopenharmony_ciBUFFER variant_five DATA_TYPE float STD140 DATA 775e5c31af7Sopenharmony_ci 5.0 776e5c31af7Sopenharmony_ciEND 777e5c31af7Sopenharmony_ci 778e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 779e5c31af7Sopenharmony_ci 780e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 781e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 782e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 783e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 256 256 784e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 785e5c31af7Sopenharmony_ci BIND BUFFER variant_five AS push_constant 786e5c31af7Sopenharmony_ciEND 787e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 788e5c31af7Sopenharmony_ci 789e5c31af7Sopenharmony_ciCLEAR variant_pipeline 790e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 256 256 791e5c31af7Sopenharmony_ci 792e5c31af7Sopenharmony_ciEXPECT variant_framebuffer IDX 0 0 SIZE 256 256 EQ_RGBA 255 0 0 255 793