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