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 instructions propagated to predecessors 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: 653 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 %12 "gl_FragCoord" 40e5c31af7Sopenharmony_ci OpName %15 "buf0" 41e5c31af7Sopenharmony_ci OpMemberName %15 0 "resolution" 42e5c31af7Sopenharmony_ci OpName %17 "" 43e5c31af7Sopenharmony_ci OpName %55 "map" 44e5c31af7Sopenharmony_ci OpName %435 "_GLF_color" 45e5c31af7Sopenharmony_ci OpDecorate %12 BuiltIn FragCoord 46e5c31af7Sopenharmony_ci OpMemberDecorate %15 0 Offset 0 47e5c31af7Sopenharmony_ci OpDecorate %15 Block 48e5c31af7Sopenharmony_ci OpDecorate %17 DescriptorSet 0 49e5c31af7Sopenharmony_ci OpDecorate %17 Binding 0 50e5c31af7Sopenharmony_ci OpDecorate %435 Location 0 51e5c31af7Sopenharmony_ci %2 = OpTypeVoid 52e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 53e5c31af7Sopenharmony_ci %6 = OpTypeFloat 32 54e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 55e5c31af7Sopenharmony_ci %10 = OpTypeVector %6 4 56e5c31af7Sopenharmony_ci %11 = OpTypePointer Input %10 57e5c31af7Sopenharmony_ci %12 = OpVariable %11 Input 58e5c31af7Sopenharmony_ci %15 = OpTypeStruct %7 59e5c31af7Sopenharmony_ci %16 = OpTypePointer Uniform %15 60e5c31af7Sopenharmony_ci %17 = OpVariable %16 Uniform 61e5c31af7Sopenharmony_ci %18 = OpTypeInt 32 1 62e5c31af7Sopenharmony_ci %19 = OpConstant %18 0 63e5c31af7Sopenharmony_ci %20 = OpTypePointer Uniform %7 64e5c31af7Sopenharmony_ci %24 = OpTypeVector %18 2 65e5c31af7Sopenharmony_ci %27 = OpTypeInt 32 0 66e5c31af7Sopenharmony_ci %28 = OpConstant %27 0 67e5c31af7Sopenharmony_ci %32 = OpConstant %6 16 68e5c31af7Sopenharmony_ci %41 = OpTypePointer Function %18 69e5c31af7Sopenharmony_ci %49 = OpConstant %18 256 70e5c31af7Sopenharmony_ci %50 = OpTypeBool 71e5c31af7Sopenharmony_ci %52 = OpConstant %27 256 72e5c31af7Sopenharmony_ci %53 = OpTypeArray %18 %52 73e5c31af7Sopenharmony_ci %60 = OpConstant %18 1 74e5c31af7Sopenharmony_ci %63 = OpConstantComposite %24 %19 %19 75e5c31af7Sopenharmony_ci %66 = OpConstantTrue %50 76e5c31af7Sopenharmony_ci %82 = OpConstant %18 2 77e5c31af7Sopenharmony_ci %86 = OpConstant %18 16 78e5c31af7Sopenharmony_ci %119 = OpConstant %18 14 79e5c31af7Sopenharmony_ci %162 = OpConstantFalse %50 80e5c31af7Sopenharmony_ci %169 = OpConstant %18 8 81e5c31af7Sopenharmony_ci %434 = OpTypePointer Output %10 82e5c31af7Sopenharmony_ci %435 = OpVariable %434 Output 83e5c31af7Sopenharmony_ci %436 = OpConstant %6 1 84e5c31af7Sopenharmony_ci %437 = OpConstantComposite %10 %436 %436 %436 %436 85e5c31af7Sopenharmony_ci %440 = OpConstant %6 0 86e5c31af7Sopenharmony_ci %441 = OpConstantComposite %10 %440 %440 %440 %436 87e5c31af7Sopenharmony_ci %447 = OpTypePointer Function %53 88e5c31af7Sopenharmony_ci %648 = OpConstant %18 32 89e5c31af7Sopenharmony_ci %649 = OpUndef %24 90e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 91e5c31af7Sopenharmony_ci %5 = OpLabel 92e5c31af7Sopenharmony_ci %55 = OpVariable %447 Function 93e5c31af7Sopenharmony_ci OpSelectionMerge %442 None 94e5c31af7Sopenharmony_ci OpSwitch %28 %443 95e5c31af7Sopenharmony_ci %443 = OpLabel 96e5c31af7Sopenharmony_ci %13 = OpLoad %10 %12 97e5c31af7Sopenharmony_ci %14 = OpVectorShuffle %7 %13 %13 0 1 98e5c31af7Sopenharmony_ci %21 = OpAccessChain %20 %17 %19 99e5c31af7Sopenharmony_ci %22 = OpLoad %7 %21 100e5c31af7Sopenharmony_ci %23 = OpFDiv %7 %14 %22 101e5c31af7Sopenharmony_ci %31 = OpCompositeExtract %6 %23 0 102e5c31af7Sopenharmony_ci %33 = OpFMul %6 %31 %32 103e5c31af7Sopenharmony_ci %34 = OpConvertFToS %18 %33 104e5c31af7Sopenharmony_ci %37 = OpCompositeExtract %6 %23 1 105e5c31af7Sopenharmony_ci %38 = OpFMul %6 %37 %32 106e5c31af7Sopenharmony_ci %39 = OpConvertFToS %18 %38 107e5c31af7Sopenharmony_ci OpBranch %43 108e5c31af7Sopenharmony_ci %43 = OpLabel 109e5c31af7Sopenharmony_ci %518 = OpPhi %18 %19 %443 %61 %44 110e5c31af7Sopenharmony_ci %51 = OpSLessThan %50 %518 %49 111e5c31af7Sopenharmony_ci OpLoopMerge %45 %44 None 112e5c31af7Sopenharmony_ci OpBranchConditional %51 %44 %45 113e5c31af7Sopenharmony_ci %44 = OpLabel 114e5c31af7Sopenharmony_ci %58 = OpAccessChain %41 %55 %518 115e5c31af7Sopenharmony_ci OpStore %58 %19 116e5c31af7Sopenharmony_ci %61 = OpIAdd %18 %518 %60 117e5c31af7Sopenharmony_ci OpBranch %43 118e5c31af7Sopenharmony_ci %45 = OpLabel 119e5c31af7Sopenharmony_ci OpBranch %68 120e5c31af7Sopenharmony_ci %68 = OpLabel 121e5c31af7Sopenharmony_ci %591 = OpPhi %50 %66 %45 %569 %71 122e5c31af7Sopenharmony_ci %520 = OpPhi %24 %63 %45 %637 %71 123e5c31af7Sopenharmony_ci %519 = OpPhi %18 %19 %45 %621 %71 124e5c31af7Sopenharmony_ci OpLoopMerge %70 %71 None 125e5c31af7Sopenharmony_ci OpBranch %69 126e5c31af7Sopenharmony_ci %69 = OpLabel 127e5c31af7Sopenharmony_ci %73 = OpIAdd %18 %519 %60 128e5c31af7Sopenharmony_ci %76 = OpCompositeExtract %18 %520 0 129e5c31af7Sopenharmony_ci %77 = OpSGreaterThan %50 %76 %19 130e5c31af7Sopenharmony_ci OpSelectionMerge %79 None 131e5c31af7Sopenharmony_ci OpBranchConditional %77 %78 %79 132e5c31af7Sopenharmony_ci %78 = OpLabel 133e5c31af7Sopenharmony_ci %83 = OpISub %18 %76 %82 134e5c31af7Sopenharmony_ci %85 = OpCompositeExtract %18 %520 1 135e5c31af7Sopenharmony_ci %87 = OpIMul %18 %85 %86 136e5c31af7Sopenharmony_ci %88 = OpIAdd %18 %83 %87 137e5c31af7Sopenharmony_ci %89 = OpAccessChain %41 %55 %88 138e5c31af7Sopenharmony_ci %90 = OpLoad %18 %89 139e5c31af7Sopenharmony_ci %91 = OpIEqual %50 %90 %19 140e5c31af7Sopenharmony_ci OpBranch %79 141e5c31af7Sopenharmony_ci %79 = OpLabel 142e5c31af7Sopenharmony_ci %92 = OpPhi %50 %77 %69 %91 %78 143e5c31af7Sopenharmony_ci %650 = OpSelect %18 %92 %60 %19 144e5c31af7Sopenharmony_ci %98 = OpCompositeExtract %18 %520 1 145e5c31af7Sopenharmony_ci %99 = OpSGreaterThan %50 %98 %19 146e5c31af7Sopenharmony_ci OpSelectionMerge %101 None 147e5c31af7Sopenharmony_ci OpBranchConditional %99 %100 %101 148e5c31af7Sopenharmony_ci %100 = OpLabel 149e5c31af7Sopenharmony_ci %106 = OpISub %18 %98 %82 150e5c31af7Sopenharmony_ci %107 = OpIMul %18 %106 %86 151e5c31af7Sopenharmony_ci %108 = OpIAdd %18 %76 %107 152e5c31af7Sopenharmony_ci %109 = OpAccessChain %41 %55 %108 153e5c31af7Sopenharmony_ci %110 = OpLoad %18 %109 154e5c31af7Sopenharmony_ci %111 = OpIEqual %50 %110 %19 155e5c31af7Sopenharmony_ci OpBranch %101 156e5c31af7Sopenharmony_ci %101 = OpLabel 157e5c31af7Sopenharmony_ci %112 = OpPhi %50 %99 %79 %111 %100 158e5c31af7Sopenharmony_ci OpSelectionMerge %114 None 159e5c31af7Sopenharmony_ci OpBranchConditional %112 %113 %114 160e5c31af7Sopenharmony_ci %113 = OpLabel 161e5c31af7Sopenharmony_ci %116 = OpIAdd %18 %650 %60 162e5c31af7Sopenharmony_ci OpBranch %114 163e5c31af7Sopenharmony_ci %114 = OpLabel 164e5c31af7Sopenharmony_ci %529 = OpPhi %18 %650 %101 %116 %113 165e5c31af7Sopenharmony_ci %120 = OpSLessThan %50 %76 %119 166e5c31af7Sopenharmony_ci OpSelectionMerge %122 None 167e5c31af7Sopenharmony_ci OpBranchConditional %120 %121 %122 168e5c31af7Sopenharmony_ci %121 = OpLabel 169e5c31af7Sopenharmony_ci %125 = OpIAdd %18 %76 %82 170e5c31af7Sopenharmony_ci %128 = OpIMul %18 %98 %86 171e5c31af7Sopenharmony_ci %129 = OpIAdd %18 %125 %128 172e5c31af7Sopenharmony_ci %130 = OpAccessChain %41 %55 %129 173e5c31af7Sopenharmony_ci %131 = OpLoad %18 %130 174e5c31af7Sopenharmony_ci %132 = OpIEqual %50 %131 %19 175e5c31af7Sopenharmony_ci OpBranch %122 176e5c31af7Sopenharmony_ci %122 = OpLabel 177e5c31af7Sopenharmony_ci %133 = OpPhi %50 %120 %114 %132 %121 178e5c31af7Sopenharmony_ci OpSelectionMerge %135 None 179e5c31af7Sopenharmony_ci OpBranchConditional %133 %134 %135 180e5c31af7Sopenharmony_ci %134 = OpLabel 181e5c31af7Sopenharmony_ci %137 = OpIAdd %18 %529 %60 182e5c31af7Sopenharmony_ci OpBranch %135 183e5c31af7Sopenharmony_ci %135 = OpLabel 184e5c31af7Sopenharmony_ci %533 = OpPhi %18 %529 %122 %137 %134 185e5c31af7Sopenharmony_ci %140 = OpSLessThan %50 %98 %119 186e5c31af7Sopenharmony_ci OpSelectionMerge %142 None 187e5c31af7Sopenharmony_ci OpBranchConditional %140 %141 %142 188e5c31af7Sopenharmony_ci %141 = OpLabel 189e5c31af7Sopenharmony_ci %147 = OpIAdd %18 %98 %82 190e5c31af7Sopenharmony_ci %148 = OpIMul %18 %147 %86 191e5c31af7Sopenharmony_ci %149 = OpIAdd %18 %76 %148 192e5c31af7Sopenharmony_ci %150 = OpAccessChain %41 %55 %149 193e5c31af7Sopenharmony_ci %151 = OpLoad %18 %150 194e5c31af7Sopenharmony_ci %152 = OpIEqual %50 %151 %19 195e5c31af7Sopenharmony_ci OpBranch %142 196e5c31af7Sopenharmony_ci %142 = OpLabel 197e5c31af7Sopenharmony_ci %153 = OpPhi %50 %140 %135 %152 %141 198e5c31af7Sopenharmony_ci OpSelectionMerge %155 None 199e5c31af7Sopenharmony_ci OpBranchConditional %153 %154 %155 200e5c31af7Sopenharmony_ci %154 = OpLabel 201e5c31af7Sopenharmony_ci %157 = OpIAdd %18 %533 %60 202e5c31af7Sopenharmony_ci OpBranch %155 203e5c31af7Sopenharmony_ci %155 = OpLabel 204e5c31af7Sopenharmony_ci %534 = OpPhi %18 %533 %142 %157 %154 205e5c31af7Sopenharmony_ci %159 = OpIEqual %50 %534 %19 206e5c31af7Sopenharmony_ci OpSelectionMerge %161 None 207e5c31af7Sopenharmony_ci OpBranchConditional %159 %160 %207 208e5c31af7Sopenharmony_ci %160 = OpLabel 209e5c31af7Sopenharmony_ci OpBranch %163 210e5c31af7Sopenharmony_ci %163 = OpLabel 211e5c31af7Sopenharmony_ci %570 = OpPhi %50 %162 %160 %639 %166 212e5c31af7Sopenharmony_ci %568 = OpPhi %24 %520 %160 %619 %166 213e5c31af7Sopenharmony_ci %567 = OpPhi %18 %19 %160 %199 %166 214e5c31af7Sopenharmony_ci %170 = OpSLessThan %50 %567 %169 215e5c31af7Sopenharmony_ci OpLoopMerge %165 %166 None 216e5c31af7Sopenharmony_ci OpBranchConditional %170 %164 %165 217e5c31af7Sopenharmony_ci %164 = OpLabel 218e5c31af7Sopenharmony_ci OpBranch %172 219e5c31af7Sopenharmony_ci %172 = OpLabel 220e5c31af7Sopenharmony_ci %619 = OpPhi %24 %568 %164 %644 %175 221e5c31af7Sopenharmony_ci %617 = OpPhi %18 %19 %164 %197 %175 222e5c31af7Sopenharmony_ci %639 = OpPhi %50 %570 %164 %651 %175 223e5c31af7Sopenharmony_ci %178 = OpSLessThan %50 %617 %169 224e5c31af7Sopenharmony_ci OpLoopMerge %174 %175 None 225e5c31af7Sopenharmony_ci OpBranchConditional %178 %173 %174 226e5c31af7Sopenharmony_ci %173 = OpLabel 227e5c31af7Sopenharmony_ci %180 = OpIMul %18 %617 %82 228e5c31af7Sopenharmony_ci %182 = OpIMul %18 %567 %82 229e5c31af7Sopenharmony_ci %183 = OpIMul %18 %567 %648 230e5c31af7Sopenharmony_ci %184 = OpIAdd %18 %180 %183 231e5c31af7Sopenharmony_ci %185 = OpAccessChain %41 %55 %184 232e5c31af7Sopenharmony_ci %186 = OpLoad %18 %185 233e5c31af7Sopenharmony_ci %187 = OpIEqual %50 %186 %19 234e5c31af7Sopenharmony_ci OpSelectionMerge %189 None 235e5c31af7Sopenharmony_ci OpBranchConditional %187 %188 %189 236e5c31af7Sopenharmony_ci %188 = OpLabel 237e5c31af7Sopenharmony_ci %463 = OpCompositeInsert %24 %180 %649 0 238e5c31af7Sopenharmony_ci %465 = OpCompositeInsert %24 %182 %463 1 239e5c31af7Sopenharmony_ci OpBranch %189 240e5c31af7Sopenharmony_ci %189 = OpLabel 241e5c31af7Sopenharmony_ci %644 = OpPhi %24 %619 %173 %465 %188 242e5c31af7Sopenharmony_ci %651 = OpSelect %50 %187 %66 %639 243e5c31af7Sopenharmony_ci OpBranch %175 244e5c31af7Sopenharmony_ci %175 = OpLabel 245e5c31af7Sopenharmony_ci %197 = OpIAdd %18 %617 %60 246e5c31af7Sopenharmony_ci OpBranch %172 247e5c31af7Sopenharmony_ci %174 = OpLabel 248e5c31af7Sopenharmony_ci OpBranch %166 249e5c31af7Sopenharmony_ci %166 = OpLabel 250e5c31af7Sopenharmony_ci %199 = OpIAdd %18 %567 %60 251e5c31af7Sopenharmony_ci OpBranch %163 252e5c31af7Sopenharmony_ci %165 = OpLabel 253e5c31af7Sopenharmony_ci %201 = OpCompositeExtract %18 %568 0 254e5c31af7Sopenharmony_ci %203 = OpCompositeExtract %18 %568 1 255e5c31af7Sopenharmony_ci %204 = OpIMul %18 %203 %86 256e5c31af7Sopenharmony_ci %205 = OpIAdd %18 %201 %204 257e5c31af7Sopenharmony_ci %206 = OpAccessChain %41 %55 %205 258e5c31af7Sopenharmony_ci OpStore %206 %60 259e5c31af7Sopenharmony_ci OpBranch %161 260e5c31af7Sopenharmony_ci %207 = OpLabel 261e5c31af7Sopenharmony_ci %211 = OpSMod %18 %73 %534 262e5c31af7Sopenharmony_ci %214 = OpIAdd %18 %73 %534 263e5c31af7Sopenharmony_ci %216 = OpSGreaterThanEqual %50 %211 %19 264e5c31af7Sopenharmony_ci %652 = OpSelect %50 %216 %77 %216 265e5c31af7Sopenharmony_ci OpSelectionMerge %224 None 266e5c31af7Sopenharmony_ci OpBranchConditional %652 %223 %224 267e5c31af7Sopenharmony_ci %223 = OpLabel 268e5c31af7Sopenharmony_ci %227 = OpISub %18 %76 %82 269e5c31af7Sopenharmony_ci %230 = OpIMul %18 %98 %86 270e5c31af7Sopenharmony_ci %231 = OpIAdd %18 %227 %230 271e5c31af7Sopenharmony_ci %232 = OpAccessChain %41 %55 %231 272e5c31af7Sopenharmony_ci %233 = OpLoad %18 %232 273e5c31af7Sopenharmony_ci %234 = OpIEqual %50 %233 %19 274e5c31af7Sopenharmony_ci OpBranch %224 275e5c31af7Sopenharmony_ci %224 = OpLabel 276e5c31af7Sopenharmony_ci %235 = OpPhi %50 %652 %207 %234 %223 277e5c31af7Sopenharmony_ci OpSelectionMerge %237 None 278e5c31af7Sopenharmony_ci OpBranchConditional %235 %236 %237 279e5c31af7Sopenharmony_ci %236 = OpLabel 280e5c31af7Sopenharmony_ci %239 = OpISub %18 %211 %60 281e5c31af7Sopenharmony_ci %244 = OpIMul %18 %98 %86 282e5c31af7Sopenharmony_ci %245 = OpIAdd %18 %76 %244 283e5c31af7Sopenharmony_ci %246 = OpAccessChain %41 %55 %245 284e5c31af7Sopenharmony_ci OpStore %246 %60 285e5c31af7Sopenharmony_ci %249 = OpISub %18 %76 %60 286e5c31af7Sopenharmony_ci %253 = OpIAdd %18 %249 %244 287e5c31af7Sopenharmony_ci %254 = OpAccessChain %41 %55 %253 288e5c31af7Sopenharmony_ci OpStore %254 %60 289e5c31af7Sopenharmony_ci %257 = OpISub %18 %76 %82 290e5c31af7Sopenharmony_ci %261 = OpIAdd %18 %257 %244 291e5c31af7Sopenharmony_ci %262 = OpAccessChain %41 %55 %261 292e5c31af7Sopenharmony_ci OpStore %262 %60 293e5c31af7Sopenharmony_ci %479 = OpCompositeInsert %24 %257 %520 0 294e5c31af7Sopenharmony_ci OpBranch %237 295e5c31af7Sopenharmony_ci %237 = OpLabel 296e5c31af7Sopenharmony_ci %550 = OpPhi %24 %520 %224 %479 %236 297e5c31af7Sopenharmony_ci %549 = OpPhi %18 %211 %224 %239 %236 298e5c31af7Sopenharmony_ci %268 = OpSGreaterThanEqual %50 %549 %19 299e5c31af7Sopenharmony_ci OpSelectionMerge %270 None 300e5c31af7Sopenharmony_ci OpBranchConditional %268 %269 %270 301e5c31af7Sopenharmony_ci %269 = OpLabel 302e5c31af7Sopenharmony_ci %272 = OpCompositeExtract %18 %550 1 303e5c31af7Sopenharmony_ci %273 = OpSGreaterThan %50 %272 %19 304e5c31af7Sopenharmony_ci OpBranch %270 305e5c31af7Sopenharmony_ci %270 = OpLabel 306e5c31af7Sopenharmony_ci %274 = OpPhi %50 %268 %237 %273 %269 307e5c31af7Sopenharmony_ci OpSelectionMerge %276 None 308e5c31af7Sopenharmony_ci OpBranchConditional %274 %275 %276 309e5c31af7Sopenharmony_ci %275 = OpLabel 310e5c31af7Sopenharmony_ci %278 = OpCompositeExtract %18 %550 0 311e5c31af7Sopenharmony_ci %280 = OpCompositeExtract %18 %550 1 312e5c31af7Sopenharmony_ci %281 = OpISub %18 %280 %82 313e5c31af7Sopenharmony_ci %282 = OpIMul %18 %281 %86 314e5c31af7Sopenharmony_ci %283 = OpIAdd %18 %278 %282 315e5c31af7Sopenharmony_ci %284 = OpAccessChain %41 %55 %283 316e5c31af7Sopenharmony_ci %285 = OpLoad %18 %284 317e5c31af7Sopenharmony_ci %286 = OpIEqual %50 %285 %19 318e5c31af7Sopenharmony_ci OpBranch %276 319e5c31af7Sopenharmony_ci %276 = OpLabel 320e5c31af7Sopenharmony_ci %287 = OpPhi %50 %274 %270 %286 %275 321e5c31af7Sopenharmony_ci OpSelectionMerge %289 None 322e5c31af7Sopenharmony_ci OpBranchConditional %287 %288 %289 323e5c31af7Sopenharmony_ci %288 = OpLabel 324e5c31af7Sopenharmony_ci %291 = OpISub %18 %549 %60 325e5c31af7Sopenharmony_ci %293 = OpCompositeExtract %18 %550 0 326e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %18 %550 1 327e5c31af7Sopenharmony_ci %296 = OpIMul %18 %295 %86 328e5c31af7Sopenharmony_ci %297 = OpIAdd %18 %293 %296 329e5c31af7Sopenharmony_ci %298 = OpAccessChain %41 %55 %297 330e5c31af7Sopenharmony_ci OpStore %298 %60 331e5c31af7Sopenharmony_ci %303 = OpISub %18 %295 %60 332e5c31af7Sopenharmony_ci %304 = OpIMul %18 %303 %86 333e5c31af7Sopenharmony_ci %305 = OpIAdd %18 %293 %304 334e5c31af7Sopenharmony_ci %306 = OpAccessChain %41 %55 %305 335e5c31af7Sopenharmony_ci OpStore %306 %60 336e5c31af7Sopenharmony_ci %311 = OpISub %18 %295 %82 337e5c31af7Sopenharmony_ci %312 = OpIMul %18 %311 %86 338e5c31af7Sopenharmony_ci %313 = OpIAdd %18 %293 %312 339e5c31af7Sopenharmony_ci %314 = OpAccessChain %41 %55 %313 340e5c31af7Sopenharmony_ci OpStore %314 %60 341e5c31af7Sopenharmony_ci %491 = OpCompositeInsert %24 %311 %550 1 342e5c31af7Sopenharmony_ci OpBranch %289 343e5c31af7Sopenharmony_ci %289 = OpLabel 344e5c31af7Sopenharmony_ci %556 = OpPhi %24 %550 %276 %491 %288 345e5c31af7Sopenharmony_ci %555 = OpPhi %18 %549 %276 %291 %288 346e5c31af7Sopenharmony_ci %320 = OpSGreaterThanEqual %50 %555 %19 347e5c31af7Sopenharmony_ci OpSelectionMerge %322 None 348e5c31af7Sopenharmony_ci OpBranchConditional %320 %321 %322 349e5c31af7Sopenharmony_ci %321 = OpLabel 350e5c31af7Sopenharmony_ci %324 = OpCompositeExtract %18 %556 0 351e5c31af7Sopenharmony_ci %325 = OpSLessThan %50 %324 %119 352e5c31af7Sopenharmony_ci OpBranch %322 353e5c31af7Sopenharmony_ci %322 = OpLabel 354e5c31af7Sopenharmony_ci %326 = OpPhi %50 %320 %289 %325 %321 355e5c31af7Sopenharmony_ci OpSelectionMerge %328 None 356e5c31af7Sopenharmony_ci OpBranchConditional %326 %327 %328 357e5c31af7Sopenharmony_ci %327 = OpLabel 358e5c31af7Sopenharmony_ci %330 = OpCompositeExtract %18 %556 0 359e5c31af7Sopenharmony_ci %331 = OpIAdd %18 %330 %82 360e5c31af7Sopenharmony_ci %333 = OpCompositeExtract %18 %556 1 361e5c31af7Sopenharmony_ci %334 = OpIMul %18 %333 %86 362e5c31af7Sopenharmony_ci %335 = OpIAdd %18 %331 %334 363e5c31af7Sopenharmony_ci %336 = OpAccessChain %41 %55 %335 364e5c31af7Sopenharmony_ci %337 = OpLoad %18 %336 365e5c31af7Sopenharmony_ci %338 = OpIEqual %50 %337 %19 366e5c31af7Sopenharmony_ci OpBranch %328 367e5c31af7Sopenharmony_ci %328 = OpLabel 368e5c31af7Sopenharmony_ci %339 = OpPhi %50 %326 %322 %338 %327 369e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 370e5c31af7Sopenharmony_ci OpBranchConditional %339 %340 %341 371e5c31af7Sopenharmony_ci %340 = OpLabel 372e5c31af7Sopenharmony_ci %343 = OpISub %18 %555 %60 373e5c31af7Sopenharmony_ci %345 = OpCompositeExtract %18 %556 0 374e5c31af7Sopenharmony_ci %347 = OpCompositeExtract %18 %556 1 375e5c31af7Sopenharmony_ci %348 = OpIMul %18 %347 %86 376e5c31af7Sopenharmony_ci %349 = OpIAdd %18 %345 %348 377e5c31af7Sopenharmony_ci %350 = OpAccessChain %41 %55 %349 378e5c31af7Sopenharmony_ci OpStore %350 %60 379e5c31af7Sopenharmony_ci %353 = OpIAdd %18 %345 %60 380e5c31af7Sopenharmony_ci %357 = OpIAdd %18 %353 %348 381e5c31af7Sopenharmony_ci %358 = OpAccessChain %41 %55 %357 382e5c31af7Sopenharmony_ci OpStore %358 %60 383e5c31af7Sopenharmony_ci %361 = OpIAdd %18 %345 %82 384e5c31af7Sopenharmony_ci %365 = OpIAdd %18 %361 %348 385e5c31af7Sopenharmony_ci %366 = OpAccessChain %41 %55 %365 386e5c31af7Sopenharmony_ci OpStore %366 %60 387e5c31af7Sopenharmony_ci %503 = OpCompositeInsert %24 %361 %556 0 388e5c31af7Sopenharmony_ci OpBranch %341 389e5c31af7Sopenharmony_ci %341 = OpLabel 390e5c31af7Sopenharmony_ci %562 = OpPhi %24 %556 %328 %503 %340 391e5c31af7Sopenharmony_ci %561 = OpPhi %18 %555 %328 %343 %340 392e5c31af7Sopenharmony_ci %372 = OpSGreaterThanEqual %50 %561 %19 393e5c31af7Sopenharmony_ci OpSelectionMerge %374 None 394e5c31af7Sopenharmony_ci OpBranchConditional %372 %373 %374 395e5c31af7Sopenharmony_ci %373 = OpLabel 396e5c31af7Sopenharmony_ci %376 = OpCompositeExtract %18 %562 1 397e5c31af7Sopenharmony_ci %377 = OpSLessThan %50 %376 %119 398e5c31af7Sopenharmony_ci OpBranch %374 399e5c31af7Sopenharmony_ci %374 = OpLabel 400e5c31af7Sopenharmony_ci %378 = OpPhi %50 %372 %341 %377 %373 401e5c31af7Sopenharmony_ci OpSelectionMerge %380 None 402e5c31af7Sopenharmony_ci OpBranchConditional %378 %379 %380 403e5c31af7Sopenharmony_ci %379 = OpLabel 404e5c31af7Sopenharmony_ci %382 = OpCompositeExtract %18 %562 0 405e5c31af7Sopenharmony_ci %384 = OpCompositeExtract %18 %562 1 406e5c31af7Sopenharmony_ci %385 = OpIAdd %18 %384 %82 407e5c31af7Sopenharmony_ci %386 = OpIMul %18 %385 %86 408e5c31af7Sopenharmony_ci %387 = OpIAdd %18 %382 %386 409e5c31af7Sopenharmony_ci %388 = OpAccessChain %41 %55 %387 410e5c31af7Sopenharmony_ci %389 = OpLoad %18 %388 411e5c31af7Sopenharmony_ci %390 = OpIEqual %50 %389 %19 412e5c31af7Sopenharmony_ci OpBranch %380 413e5c31af7Sopenharmony_ci %380 = OpLabel 414e5c31af7Sopenharmony_ci %391 = OpPhi %50 %378 %374 %390 %379 415e5c31af7Sopenharmony_ci OpSelectionMerge %393 None 416e5c31af7Sopenharmony_ci OpBranchConditional %391 %392 %393 417e5c31af7Sopenharmony_ci %392 = OpLabel 418e5c31af7Sopenharmony_ci %397 = OpCompositeExtract %18 %562 0 419e5c31af7Sopenharmony_ci %399 = OpCompositeExtract %18 %562 1 420e5c31af7Sopenharmony_ci %400 = OpIMul %18 %399 %86 421e5c31af7Sopenharmony_ci %401 = OpIAdd %18 %397 %400 422e5c31af7Sopenharmony_ci %402 = OpAccessChain %41 %55 %401 423e5c31af7Sopenharmony_ci OpStore %402 %60 424e5c31af7Sopenharmony_ci %407 = OpIAdd %18 %399 %60 425e5c31af7Sopenharmony_ci %408 = OpIMul %18 %407 %86 426e5c31af7Sopenharmony_ci %409 = OpIAdd %18 %397 %408 427e5c31af7Sopenharmony_ci %410 = OpAccessChain %41 %55 %409 428e5c31af7Sopenharmony_ci OpStore %410 %60 429e5c31af7Sopenharmony_ci %415 = OpIAdd %18 %399 %82 430e5c31af7Sopenharmony_ci %416 = OpIMul %18 %415 %86 431e5c31af7Sopenharmony_ci %417 = OpIAdd %18 %397 %416 432e5c31af7Sopenharmony_ci %418 = OpAccessChain %41 %55 %417 433e5c31af7Sopenharmony_ci OpStore %418 %60 434e5c31af7Sopenharmony_ci %515 = OpCompositeInsert %24 %415 %562 1 435e5c31af7Sopenharmony_ci OpBranch %393 436e5c31af7Sopenharmony_ci %393 = OpLabel 437e5c31af7Sopenharmony_ci %638 = OpPhi %24 %562 %380 %515 %392 438e5c31af7Sopenharmony_ci OpBranch %161 439e5c31af7Sopenharmony_ci %161 = OpLabel 440e5c31af7Sopenharmony_ci %637 = OpPhi %24 %568 %165 %638 %393 441e5c31af7Sopenharmony_ci %621 = OpPhi %18 %73 %165 %214 %393 442e5c31af7Sopenharmony_ci %569 = OpPhi %50 %570 %165 %591 %393 443e5c31af7Sopenharmony_ci %425 = OpIMul %18 %39 %86 444e5c31af7Sopenharmony_ci %428 = OpIAdd %18 %425 %34 445e5c31af7Sopenharmony_ci %429 = OpAccessChain %41 %55 %428 446e5c31af7Sopenharmony_ci %430 = OpLoad %18 %429 447e5c31af7Sopenharmony_ci %431 = OpIEqual %50 %430 %60 448e5c31af7Sopenharmony_ci OpSelectionMerge %433 None 449e5c31af7Sopenharmony_ci OpBranchConditional %431 %432 %433 450e5c31af7Sopenharmony_ci %432 = OpLabel 451e5c31af7Sopenharmony_ci OpStore %435 %437 452e5c31af7Sopenharmony_ci OpBranch %70 453e5c31af7Sopenharmony_ci %433 = OpLabel 454e5c31af7Sopenharmony_ci OpBranch %71 455e5c31af7Sopenharmony_ci %71 = OpLabel 456e5c31af7Sopenharmony_ci OpBranchConditional %569 %68 %70 457e5c31af7Sopenharmony_ci %70 = OpLabel 458e5c31af7Sopenharmony_ci %592 = OpPhi %50 %66 %432 %162 %71 459e5c31af7Sopenharmony_ci OpSelectionMerge %445 None 460e5c31af7Sopenharmony_ci OpBranchConditional %592 %442 %445 461e5c31af7Sopenharmony_ci %445 = OpLabel 462e5c31af7Sopenharmony_ci OpStore %435 %441 463e5c31af7Sopenharmony_ci OpBranch %442 464e5c31af7Sopenharmony_ci %442 = OpLabel 465e5c31af7Sopenharmony_ci OpReturn 466e5c31af7Sopenharmony_ci OpFunctionEnd 467e5c31af7Sopenharmony_ciEND 468e5c31af7Sopenharmony_ci 469e5c31af7Sopenharmony_ci# uniforms for reference 470e5c31af7Sopenharmony_ci 471e5c31af7Sopenharmony_ci# resolution 472e5c31af7Sopenharmony_ciBUFFER reference_resolution DATA_TYPE vec2<float> STD140 DATA 473e5c31af7Sopenharmony_ci 32.0 32.0 474e5c31af7Sopenharmony_ciEND 475e5c31af7Sopenharmony_ci 476e5c31af7Sopenharmony_ciBUFFER reference_framebuffer FORMAT B8G8R8A8_UNORM 477e5c31af7Sopenharmony_ci 478e5c31af7Sopenharmony_ciPIPELINE graphics reference_pipeline 479e5c31af7Sopenharmony_ci ATTACH reference_vertex_shader 480e5c31af7Sopenharmony_ci ATTACH reference_fragment_shader 481e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 32 32 482e5c31af7Sopenharmony_ci BIND BUFFER reference_framebuffer AS color LOCATION 0 483e5c31af7Sopenharmony_ci BIND BUFFER reference_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 484e5c31af7Sopenharmony_ciEND 485e5c31af7Sopenharmony_ciCLEAR_COLOR reference_pipeline 0 0 0 255 486e5c31af7Sopenharmony_ci 487e5c31af7Sopenharmony_ciCLEAR reference_pipeline 488e5c31af7Sopenharmony_ciRUN reference_pipeline DRAW_RECT POS 0 0 SIZE 32 32 489e5c31af7Sopenharmony_ci 490e5c31af7Sopenharmony_ci 491e5c31af7Sopenharmony_ciSHADER vertex variant_vertex_shader PASSTHROUGH 492e5c31af7Sopenharmony_ci 493e5c31af7Sopenharmony_ciSHADER fragment variant_fragment_shader SPIRV-ASM TARGET_ENV spv1.0 494e5c31af7Sopenharmony_ci; SPIR-V 495e5c31af7Sopenharmony_ci; Version: 1.0 496e5c31af7Sopenharmony_ci; Generator: Khronos Glslang Reference Front End; 7 497e5c31af7Sopenharmony_ci; Bound: 865 498e5c31af7Sopenharmony_ci; Schema: 0 499e5c31af7Sopenharmony_ci OpCapability Shader 500e5c31af7Sopenharmony_ci %1 = OpExtInstImport "GLSL.std.450" 501e5c31af7Sopenharmony_ci OpMemoryModel Logical GLSL450 502e5c31af7Sopenharmony_ci OpEntryPoint Fragment %4 "main" %12 %435 503e5c31af7Sopenharmony_ci OpExecutionMode %4 OriginUpperLeft 504e5c31af7Sopenharmony_ci OpSource ESSL 320 505e5c31af7Sopenharmony_ci OpName %4 "main" 506e5c31af7Sopenharmony_ci OpName %12 "gl_FragCoord" 507e5c31af7Sopenharmony_ci OpName %15 "buf0" 508e5c31af7Sopenharmony_ci OpMemberName %15 0 "resolution" 509e5c31af7Sopenharmony_ci OpName %17 "" 510e5c31af7Sopenharmony_ci OpName %55 "map" 511e5c31af7Sopenharmony_ci OpName %435 "_GLF_color" 512e5c31af7Sopenharmony_ci OpDecorate %12 BuiltIn FragCoord 513e5c31af7Sopenharmony_ci OpMemberDecorate %15 0 Offset 0 514e5c31af7Sopenharmony_ci OpDecorate %15 Block 515e5c31af7Sopenharmony_ci OpDecorate %17 DescriptorSet 0 516e5c31af7Sopenharmony_ci OpDecorate %17 Binding 0 517e5c31af7Sopenharmony_ci OpDecorate %435 Location 0 518e5c31af7Sopenharmony_ci %2 = OpTypeVoid 519e5c31af7Sopenharmony_ci %3 = OpTypeFunction %2 520e5c31af7Sopenharmony_ci %6 = OpTypeFloat 32 521e5c31af7Sopenharmony_ci %7 = OpTypeVector %6 2 522e5c31af7Sopenharmony_ci %10 = OpTypeVector %6 4 523e5c31af7Sopenharmony_ci %11 = OpTypePointer Input %10 524e5c31af7Sopenharmony_ci %12 = OpVariable %11 Input 525e5c31af7Sopenharmony_ci %15 = OpTypeStruct %7 526e5c31af7Sopenharmony_ci %16 = OpTypePointer Uniform %15 527e5c31af7Sopenharmony_ci %17 = OpVariable %16 Uniform 528e5c31af7Sopenharmony_ci %18 = OpTypeInt 32 1 529e5c31af7Sopenharmony_ci %19 = OpConstant %18 0 530e5c31af7Sopenharmony_ci %20 = OpTypePointer Uniform %7 531e5c31af7Sopenharmony_ci %24 = OpTypeVector %18 2 532e5c31af7Sopenharmony_ci %27 = OpTypeInt 32 0 533e5c31af7Sopenharmony_ci %28 = OpConstant %27 0 534e5c31af7Sopenharmony_ci %32 = OpConstant %6 16 535e5c31af7Sopenharmony_ci %41 = OpTypePointer Function %18 536e5c31af7Sopenharmony_ci %49 = OpConstant %18 256 537e5c31af7Sopenharmony_ci %50 = OpTypeBool 538e5c31af7Sopenharmony_ci %52 = OpConstant %27 256 539e5c31af7Sopenharmony_ci %53 = OpTypeArray %18 %52 540e5c31af7Sopenharmony_ci %60 = OpConstant %18 1 541e5c31af7Sopenharmony_ci %63 = OpConstantComposite %24 %19 %19 542e5c31af7Sopenharmony_ci %66 = OpConstantTrue %50 543e5c31af7Sopenharmony_ci %82 = OpConstant %18 2 544e5c31af7Sopenharmony_ci %86 = OpConstant %18 16 545e5c31af7Sopenharmony_ci %119 = OpConstant %18 14 546e5c31af7Sopenharmony_ci %162 = OpConstantFalse %50 547e5c31af7Sopenharmony_ci %169 = OpConstant %18 8 548e5c31af7Sopenharmony_ci %434 = OpTypePointer Output %10 549e5c31af7Sopenharmony_ci %435 = OpVariable %434 Output 550e5c31af7Sopenharmony_ci %436 = OpConstant %6 1 551e5c31af7Sopenharmony_ci %437 = OpConstantComposite %10 %436 %436 %436 %436 552e5c31af7Sopenharmony_ci %440 = OpConstant %6 0 553e5c31af7Sopenharmony_ci %441 = OpConstantComposite %10 %440 %440 %440 %436 554e5c31af7Sopenharmony_ci %447 = OpTypePointer Function %53 555e5c31af7Sopenharmony_ci %648 = OpConstant %18 32 556e5c31af7Sopenharmony_ci %649 = OpUndef %24 557e5c31af7Sopenharmony_ci %4 = OpFunction %2 None %3 558e5c31af7Sopenharmony_ci %5 = OpLabel 559e5c31af7Sopenharmony_ci %55 = OpVariable %447 Function 560e5c31af7Sopenharmony_ci OpSelectionMerge %442 None 561e5c31af7Sopenharmony_ci OpSwitch %28 %443 562e5c31af7Sopenharmony_ci %443 = OpLabel 563e5c31af7Sopenharmony_ci %13 = OpLoad %10 %12 564e5c31af7Sopenharmony_ci %14 = OpVectorShuffle %7 %13 %13 0 1 565e5c31af7Sopenharmony_ci %21 = OpAccessChain %20 %17 %19 566e5c31af7Sopenharmony_ci %22 = OpLoad %7 %21 567e5c31af7Sopenharmony_ci %23 = OpFDiv %7 %14 %22 568e5c31af7Sopenharmony_ci %31 = OpCompositeExtract %6 %23 0 569e5c31af7Sopenharmony_ci %33 = OpFMul %6 %31 %32 570e5c31af7Sopenharmony_ci %34 = OpConvertFToS %18 %33 571e5c31af7Sopenharmony_ci %37 = OpCompositeExtract %6 %23 1 572e5c31af7Sopenharmony_ci %38 = OpFMul %6 %37 %32 573e5c31af7Sopenharmony_ci %39 = OpConvertFToS %18 %38 574e5c31af7Sopenharmony_ci %753 = OpSLessThan %50 %19 %49 575e5c31af7Sopenharmony_ci %827 = OpIAdd %18 %19 %60 576e5c31af7Sopenharmony_ci %863 = OpSLessThan %50 %827 %49 577e5c31af7Sopenharmony_ci OpBranch %43 578e5c31af7Sopenharmony_ci %43 = OpLabel 579e5c31af7Sopenharmony_ci %829 = OpPhi %50 %863 %443 %864 %44 580e5c31af7Sopenharmony_ci %755 = OpPhi %18 %827 %443 %828 %44 581e5c31af7Sopenharmony_ci %51 = OpPhi %50 %753 %443 %754 %44 582e5c31af7Sopenharmony_ci %518 = OpPhi %18 %19 %443 %61 %44 583e5c31af7Sopenharmony_ci OpLoopMerge %45 %44 None 584e5c31af7Sopenharmony_ci OpBranchConditional %51 %44 %45 585e5c31af7Sopenharmony_ci %44 = OpLabel 586e5c31af7Sopenharmony_ci %754 = OpPhi %50 %829 %43 587e5c31af7Sopenharmony_ci %61 = OpPhi %18 %755 %43 588e5c31af7Sopenharmony_ci %58 = OpAccessChain %41 %55 %518 589e5c31af7Sopenharmony_ci OpStore %58 %19 590e5c31af7Sopenharmony_ci %828 = OpIAdd %18 %61 %60 591e5c31af7Sopenharmony_ci %864 = OpSLessThan %50 %828 %49 592e5c31af7Sopenharmony_ci OpBranch %43 593e5c31af7Sopenharmony_ci %45 = OpLabel 594e5c31af7Sopenharmony_ci OpBranch %68 595e5c31af7Sopenharmony_ci %68 = OpLabel 596e5c31af7Sopenharmony_ci %591 = OpPhi %50 %66 %45 %569 %71 597e5c31af7Sopenharmony_ci %520 = OpPhi %24 %63 %45 %637 %71 598e5c31af7Sopenharmony_ci %519 = OpPhi %18 %19 %45 %621 %71 599e5c31af7Sopenharmony_ci OpLoopMerge %70 %71 None 600e5c31af7Sopenharmony_ci OpBranch %69 601e5c31af7Sopenharmony_ci %69 = OpLabel 602e5c31af7Sopenharmony_ci %73 = OpIAdd %18 %519 %60 603e5c31af7Sopenharmony_ci %76 = OpCompositeExtract %18 %520 0 604e5c31af7Sopenharmony_ci %77 = OpSGreaterThan %50 %76 %19 605e5c31af7Sopenharmony_ci OpSelectionMerge %79 None 606e5c31af7Sopenharmony_ci OpBranchConditional %77 %78 %79 607e5c31af7Sopenharmony_ci %78 = OpLabel 608e5c31af7Sopenharmony_ci %83 = OpISub %18 %76 %82 609e5c31af7Sopenharmony_ci %85 = OpCompositeExtract %18 %520 1 610e5c31af7Sopenharmony_ci %87 = OpIMul %18 %85 %86 611e5c31af7Sopenharmony_ci %88 = OpIAdd %18 %83 %87 612e5c31af7Sopenharmony_ci %89 = OpAccessChain %41 %55 %88 613e5c31af7Sopenharmony_ci %90 = OpLoad %18 %89 614e5c31af7Sopenharmony_ci %91 = OpIEqual %50 %90 %19 615e5c31af7Sopenharmony_ci OpBranch %79 616e5c31af7Sopenharmony_ci %79 = OpLabel 617e5c31af7Sopenharmony_ci %92 = OpPhi %50 %77 %69 %91 %78 618e5c31af7Sopenharmony_ci %650 = OpSelect %18 %92 %60 %19 619e5c31af7Sopenharmony_ci %98 = OpCompositeExtract %18 %520 1 620e5c31af7Sopenharmony_ci %99 = OpSGreaterThan %50 %98 %19 621e5c31af7Sopenharmony_ci OpSelectionMerge %101 None 622e5c31af7Sopenharmony_ci OpBranchConditional %99 %100 %101 623e5c31af7Sopenharmony_ci %100 = OpLabel 624e5c31af7Sopenharmony_ci %106 = OpISub %18 %98 %82 625e5c31af7Sopenharmony_ci %107 = OpIMul %18 %106 %86 626e5c31af7Sopenharmony_ci %108 = OpIAdd %18 %76 %107 627e5c31af7Sopenharmony_ci %109 = OpAccessChain %41 %55 %108 628e5c31af7Sopenharmony_ci %110 = OpLoad %18 %109 629e5c31af7Sopenharmony_ci %111 = OpIEqual %50 %110 %19 630e5c31af7Sopenharmony_ci OpBranch %101 631e5c31af7Sopenharmony_ci %101 = OpLabel 632e5c31af7Sopenharmony_ci %112 = OpPhi %50 %99 %79 %111 %100 633e5c31af7Sopenharmony_ci OpSelectionMerge %114 None 634e5c31af7Sopenharmony_ci OpBranchConditional %112 %113 %114 635e5c31af7Sopenharmony_ci %113 = OpLabel 636e5c31af7Sopenharmony_ci %116 = OpIAdd %18 %650 %60 637e5c31af7Sopenharmony_ci OpBranch %114 638e5c31af7Sopenharmony_ci %114 = OpLabel 639e5c31af7Sopenharmony_ci %529 = OpPhi %18 %650 %101 %116 %113 640e5c31af7Sopenharmony_ci %120 = OpSLessThan %50 %76 %119 641e5c31af7Sopenharmony_ci OpSelectionMerge %122 None 642e5c31af7Sopenharmony_ci OpBranchConditional %120 %121 %122 643e5c31af7Sopenharmony_ci %121 = OpLabel 644e5c31af7Sopenharmony_ci %125 = OpIAdd %18 %76 %82 645e5c31af7Sopenharmony_ci %128 = OpIMul %18 %98 %86 646e5c31af7Sopenharmony_ci %129 = OpIAdd %18 %125 %128 647e5c31af7Sopenharmony_ci %130 = OpAccessChain %41 %55 %129 648e5c31af7Sopenharmony_ci %131 = OpLoad %18 %130 649e5c31af7Sopenharmony_ci %132 = OpIEqual %50 %131 %19 650e5c31af7Sopenharmony_ci OpBranch %122 651e5c31af7Sopenharmony_ci %122 = OpLabel 652e5c31af7Sopenharmony_ci %133 = OpPhi %50 %120 %114 %132 %121 653e5c31af7Sopenharmony_ci OpSelectionMerge %135 None 654e5c31af7Sopenharmony_ci OpBranchConditional %133 %134 %135 655e5c31af7Sopenharmony_ci %134 = OpLabel 656e5c31af7Sopenharmony_ci %137 = OpIAdd %18 %529 %60 657e5c31af7Sopenharmony_ci OpBranch %135 658e5c31af7Sopenharmony_ci %135 = OpLabel 659e5c31af7Sopenharmony_ci %533 = OpPhi %18 %529 %122 %137 %134 660e5c31af7Sopenharmony_ci %140 = OpSLessThan %50 %98 %119 661e5c31af7Sopenharmony_ci OpSelectionMerge %142 None 662e5c31af7Sopenharmony_ci OpBranchConditional %140 %141 %142 663e5c31af7Sopenharmony_ci %141 = OpLabel 664e5c31af7Sopenharmony_ci %147 = OpIAdd %18 %98 %82 665e5c31af7Sopenharmony_ci %148 = OpIMul %18 %147 %86 666e5c31af7Sopenharmony_ci %149 = OpIAdd %18 %76 %148 667e5c31af7Sopenharmony_ci %150 = OpAccessChain %41 %55 %149 668e5c31af7Sopenharmony_ci %151 = OpLoad %18 %150 669e5c31af7Sopenharmony_ci %152 = OpIEqual %50 %151 %19 670e5c31af7Sopenharmony_ci OpBranch %142 671e5c31af7Sopenharmony_ci %142 = OpLabel 672e5c31af7Sopenharmony_ci %153 = OpPhi %50 %140 %135 %152 %141 673e5c31af7Sopenharmony_ci OpSelectionMerge %155 None 674e5c31af7Sopenharmony_ci OpBranchConditional %153 %154 %155 675e5c31af7Sopenharmony_ci %154 = OpLabel 676e5c31af7Sopenharmony_ci %157 = OpIAdd %18 %533 %60 677e5c31af7Sopenharmony_ci OpBranch %155 678e5c31af7Sopenharmony_ci %155 = OpLabel 679e5c31af7Sopenharmony_ci %534 = OpPhi %18 %533 %142 %157 %154 680e5c31af7Sopenharmony_ci %159 = OpIEqual %50 %534 %19 681e5c31af7Sopenharmony_ci OpSelectionMerge %161 None 682e5c31af7Sopenharmony_ci OpBranchConditional %159 %160 %207 683e5c31af7Sopenharmony_ci %160 = OpLabel 684e5c31af7Sopenharmony_ci OpBranch %163 685e5c31af7Sopenharmony_ci %163 = OpLabel 686e5c31af7Sopenharmony_ci %570 = OpPhi %50 %162 %160 %639 %166 687e5c31af7Sopenharmony_ci %568 = OpPhi %24 %520 %160 %619 %166 688e5c31af7Sopenharmony_ci %567 = OpPhi %18 %19 %160 %199 %166 689e5c31af7Sopenharmony_ci %170 = OpSLessThan %50 %567 %169 690e5c31af7Sopenharmony_ci OpLoopMerge %165 %166 None 691e5c31af7Sopenharmony_ci OpBranchConditional %170 %164 %165 692e5c31af7Sopenharmony_ci %164 = OpLabel 693e5c31af7Sopenharmony_ci OpBranch %172 694e5c31af7Sopenharmony_ci %172 = OpLabel 695e5c31af7Sopenharmony_ci %619 = OpPhi %24 %568 %164 %644 %175 696e5c31af7Sopenharmony_ci %617 = OpPhi %18 %19 %164 %197 %175 697e5c31af7Sopenharmony_ci %639 = OpPhi %50 %570 %164 %651 %175 698e5c31af7Sopenharmony_ci %178 = OpSLessThan %50 %617 %169 699e5c31af7Sopenharmony_ci OpLoopMerge %174 %175 None 700e5c31af7Sopenharmony_ci OpBranchConditional %178 %173 %174 701e5c31af7Sopenharmony_ci %173 = OpLabel 702e5c31af7Sopenharmony_ci %180 = OpIMul %18 %617 %82 703e5c31af7Sopenharmony_ci %182 = OpIMul %18 %567 %82 704e5c31af7Sopenharmony_ci %183 = OpIMul %18 %567 %648 705e5c31af7Sopenharmony_ci %184 = OpIAdd %18 %180 %183 706e5c31af7Sopenharmony_ci %185 = OpAccessChain %41 %55 %184 707e5c31af7Sopenharmony_ci %186 = OpLoad %18 %185 708e5c31af7Sopenharmony_ci %187 = OpIEqual %50 %186 %19 709e5c31af7Sopenharmony_ci OpSelectionMerge %189 None 710e5c31af7Sopenharmony_ci OpBranchConditional %187 %188 %189 711e5c31af7Sopenharmony_ci %188 = OpLabel 712e5c31af7Sopenharmony_ci %463 = OpCompositeInsert %24 %180 %649 0 713e5c31af7Sopenharmony_ci %465 = OpCompositeInsert %24 %182 %463 1 714e5c31af7Sopenharmony_ci OpBranch %189 715e5c31af7Sopenharmony_ci %189 = OpLabel 716e5c31af7Sopenharmony_ci %644 = OpPhi %24 %619 %173 %465 %188 717e5c31af7Sopenharmony_ci %651 = OpSelect %50 %187 %66 %639 718e5c31af7Sopenharmony_ci OpBranch %175 719e5c31af7Sopenharmony_ci %175 = OpLabel 720e5c31af7Sopenharmony_ci %197 = OpIAdd %18 %617 %60 721e5c31af7Sopenharmony_ci OpBranch %172 722e5c31af7Sopenharmony_ci %174 = OpLabel 723e5c31af7Sopenharmony_ci OpBranch %166 724e5c31af7Sopenharmony_ci %166 = OpLabel 725e5c31af7Sopenharmony_ci %199 = OpIAdd %18 %567 %60 726e5c31af7Sopenharmony_ci OpBranch %163 727e5c31af7Sopenharmony_ci %165 = OpLabel 728e5c31af7Sopenharmony_ci %201 = OpCompositeExtract %18 %568 0 729e5c31af7Sopenharmony_ci %203 = OpCompositeExtract %18 %568 1 730e5c31af7Sopenharmony_ci %204 = OpIMul %18 %203 %86 731e5c31af7Sopenharmony_ci %205 = OpIAdd %18 %201 %204 732e5c31af7Sopenharmony_ci %206 = OpAccessChain %41 %55 %205 733e5c31af7Sopenharmony_ci OpStore %206 %60 734e5c31af7Sopenharmony_ci OpBranch %161 735e5c31af7Sopenharmony_ci %207 = OpLabel 736e5c31af7Sopenharmony_ci %211 = OpSMod %18 %73 %534 737e5c31af7Sopenharmony_ci %214 = OpIAdd %18 %73 %534 738e5c31af7Sopenharmony_ci %216 = OpSGreaterThanEqual %50 %211 %19 739e5c31af7Sopenharmony_ci %652 = OpSelect %50 %216 %77 %216 740e5c31af7Sopenharmony_ci OpSelectionMerge %224 None 741e5c31af7Sopenharmony_ci OpBranchConditional %652 %223 %224 742e5c31af7Sopenharmony_ci %223 = OpLabel 743e5c31af7Sopenharmony_ci %227 = OpISub %18 %76 %82 744e5c31af7Sopenharmony_ci %230 = OpIMul %18 %98 %86 745e5c31af7Sopenharmony_ci %231 = OpIAdd %18 %227 %230 746e5c31af7Sopenharmony_ci %232 = OpAccessChain %41 %55 %231 747e5c31af7Sopenharmony_ci %233 = OpLoad %18 %232 748e5c31af7Sopenharmony_ci %234 = OpIEqual %50 %233 %19 749e5c31af7Sopenharmony_ci OpBranch %224 750e5c31af7Sopenharmony_ci %224 = OpLabel 751e5c31af7Sopenharmony_ci %235 = OpPhi %50 %652 %207 %234 %223 752e5c31af7Sopenharmony_ci OpSelectionMerge %237 None 753e5c31af7Sopenharmony_ci OpBranchConditional %235 %236 %237 754e5c31af7Sopenharmony_ci %236 = OpLabel 755e5c31af7Sopenharmony_ci %239 = OpISub %18 %211 %60 756e5c31af7Sopenharmony_ci %244 = OpIMul %18 %98 %86 757e5c31af7Sopenharmony_ci %245 = OpIAdd %18 %76 %244 758e5c31af7Sopenharmony_ci %246 = OpAccessChain %41 %55 %245 759e5c31af7Sopenharmony_ci OpStore %246 %60 760e5c31af7Sopenharmony_ci %249 = OpISub %18 %76 %60 761e5c31af7Sopenharmony_ci %253 = OpIAdd %18 %249 %244 762e5c31af7Sopenharmony_ci %254 = OpAccessChain %41 %55 %253 763e5c31af7Sopenharmony_ci OpStore %254 %60 764e5c31af7Sopenharmony_ci %257 = OpISub %18 %76 %82 765e5c31af7Sopenharmony_ci %261 = OpIAdd %18 %257 %244 766e5c31af7Sopenharmony_ci %262 = OpAccessChain %41 %55 %261 767e5c31af7Sopenharmony_ci OpStore %262 %60 768e5c31af7Sopenharmony_ci %479 = OpCompositeInsert %24 %257 %520 0 769e5c31af7Sopenharmony_ci OpBranch %237 770e5c31af7Sopenharmony_ci %237 = OpLabel 771e5c31af7Sopenharmony_ci %550 = OpPhi %24 %520 %224 %479 %236 772e5c31af7Sopenharmony_ci %549 = OpPhi %18 %211 %224 %239 %236 773e5c31af7Sopenharmony_ci %268 = OpSGreaterThanEqual %50 %549 %19 774e5c31af7Sopenharmony_ci OpSelectionMerge %270 None 775e5c31af7Sopenharmony_ci OpBranchConditional %268 %269 %270 776e5c31af7Sopenharmony_ci %269 = OpLabel 777e5c31af7Sopenharmony_ci %272 = OpCompositeExtract %18 %550 1 778e5c31af7Sopenharmony_ci %273 = OpSGreaterThan %50 %272 %19 779e5c31af7Sopenharmony_ci OpBranch %270 780e5c31af7Sopenharmony_ci %270 = OpLabel 781e5c31af7Sopenharmony_ci %274 = OpPhi %50 %268 %237 %273 %269 782e5c31af7Sopenharmony_ci OpSelectionMerge %276 None 783e5c31af7Sopenharmony_ci OpBranchConditional %274 %275 %276 784e5c31af7Sopenharmony_ci %275 = OpLabel 785e5c31af7Sopenharmony_ci %278 = OpCompositeExtract %18 %550 0 786e5c31af7Sopenharmony_ci %280 = OpCompositeExtract %18 %550 1 787e5c31af7Sopenharmony_ci %281 = OpISub %18 %280 %82 788e5c31af7Sopenharmony_ci %282 = OpIMul %18 %281 %86 789e5c31af7Sopenharmony_ci %283 = OpIAdd %18 %278 %282 790e5c31af7Sopenharmony_ci %284 = OpAccessChain %41 %55 %283 791e5c31af7Sopenharmony_ci %285 = OpLoad %18 %284 792e5c31af7Sopenharmony_ci %286 = OpIEqual %50 %285 %19 793e5c31af7Sopenharmony_ci OpBranch %276 794e5c31af7Sopenharmony_ci %276 = OpLabel 795e5c31af7Sopenharmony_ci %287 = OpPhi %50 %274 %270 %286 %275 796e5c31af7Sopenharmony_ci OpSelectionMerge %289 None 797e5c31af7Sopenharmony_ci OpBranchConditional %287 %288 %289 798e5c31af7Sopenharmony_ci %288 = OpLabel 799e5c31af7Sopenharmony_ci %291 = OpISub %18 %549 %60 800e5c31af7Sopenharmony_ci %293 = OpCompositeExtract %18 %550 0 801e5c31af7Sopenharmony_ci %295 = OpCompositeExtract %18 %550 1 802e5c31af7Sopenharmony_ci %296 = OpIMul %18 %295 %86 803e5c31af7Sopenharmony_ci %297 = OpIAdd %18 %293 %296 804e5c31af7Sopenharmony_ci %298 = OpAccessChain %41 %55 %297 805e5c31af7Sopenharmony_ci OpStore %298 %60 806e5c31af7Sopenharmony_ci %303 = OpISub %18 %295 %60 807e5c31af7Sopenharmony_ci %304 = OpIMul %18 %303 %86 808e5c31af7Sopenharmony_ci %305 = OpIAdd %18 %293 %304 809e5c31af7Sopenharmony_ci %306 = OpAccessChain %41 %55 %305 810e5c31af7Sopenharmony_ci OpStore %306 %60 811e5c31af7Sopenharmony_ci %311 = OpISub %18 %295 %82 812e5c31af7Sopenharmony_ci %312 = OpIMul %18 %311 %86 813e5c31af7Sopenharmony_ci %313 = OpIAdd %18 %293 %312 814e5c31af7Sopenharmony_ci %314 = OpAccessChain %41 %55 %313 815e5c31af7Sopenharmony_ci OpStore %314 %60 816e5c31af7Sopenharmony_ci %491 = OpCompositeInsert %24 %311 %550 1 817e5c31af7Sopenharmony_ci OpBranch %289 818e5c31af7Sopenharmony_ci %289 = OpLabel 819e5c31af7Sopenharmony_ci %556 = OpPhi %24 %550 %276 %491 %288 820e5c31af7Sopenharmony_ci %555 = OpPhi %18 %549 %276 %291 %288 821e5c31af7Sopenharmony_ci %320 = OpSGreaterThanEqual %50 %555 %19 822e5c31af7Sopenharmony_ci OpSelectionMerge %322 None 823e5c31af7Sopenharmony_ci OpBranchConditional %320 %321 %322 824e5c31af7Sopenharmony_ci %321 = OpLabel 825e5c31af7Sopenharmony_ci %324 = OpCompositeExtract %18 %556 0 826e5c31af7Sopenharmony_ci %325 = OpSLessThan %50 %324 %119 827e5c31af7Sopenharmony_ci OpBranch %322 828e5c31af7Sopenharmony_ci %322 = OpLabel 829e5c31af7Sopenharmony_ci %326 = OpPhi %50 %320 %289 %325 %321 830e5c31af7Sopenharmony_ci OpSelectionMerge %328 None 831e5c31af7Sopenharmony_ci OpBranchConditional %326 %327 %328 832e5c31af7Sopenharmony_ci %327 = OpLabel 833e5c31af7Sopenharmony_ci %330 = OpCompositeExtract %18 %556 0 834e5c31af7Sopenharmony_ci %331 = OpIAdd %18 %330 %82 835e5c31af7Sopenharmony_ci %333 = OpCompositeExtract %18 %556 1 836e5c31af7Sopenharmony_ci %334 = OpIMul %18 %333 %86 837e5c31af7Sopenharmony_ci %335 = OpIAdd %18 %331 %334 838e5c31af7Sopenharmony_ci %336 = OpAccessChain %41 %55 %335 839e5c31af7Sopenharmony_ci %337 = OpLoad %18 %336 840e5c31af7Sopenharmony_ci %338 = OpIEqual %50 %337 %19 841e5c31af7Sopenharmony_ci OpBranch %328 842e5c31af7Sopenharmony_ci %328 = OpLabel 843e5c31af7Sopenharmony_ci %339 = OpPhi %50 %326 %322 %338 %327 844e5c31af7Sopenharmony_ci OpSelectionMerge %341 None 845e5c31af7Sopenharmony_ci OpBranchConditional %339 %340 %341 846e5c31af7Sopenharmony_ci %340 = OpLabel 847e5c31af7Sopenharmony_ci %343 = OpISub %18 %555 %60 848e5c31af7Sopenharmony_ci %345 = OpCompositeExtract %18 %556 0 849e5c31af7Sopenharmony_ci %347 = OpCompositeExtract %18 %556 1 850e5c31af7Sopenharmony_ci %348 = OpIMul %18 %347 %86 851e5c31af7Sopenharmony_ci %349 = OpIAdd %18 %345 %348 852e5c31af7Sopenharmony_ci %350 = OpAccessChain %41 %55 %349 853e5c31af7Sopenharmony_ci OpStore %350 %60 854e5c31af7Sopenharmony_ci %353 = OpIAdd %18 %345 %60 855e5c31af7Sopenharmony_ci %357 = OpIAdd %18 %353 %348 856e5c31af7Sopenharmony_ci %358 = OpAccessChain %41 %55 %357 857e5c31af7Sopenharmony_ci OpStore %358 %60 858e5c31af7Sopenharmony_ci %361 = OpIAdd %18 %345 %82 859e5c31af7Sopenharmony_ci %365 = OpIAdd %18 %361 %348 860e5c31af7Sopenharmony_ci %366 = OpAccessChain %41 %55 %365 861e5c31af7Sopenharmony_ci OpStore %366 %60 862e5c31af7Sopenharmony_ci %503 = OpCompositeInsert %24 %361 %556 0 863e5c31af7Sopenharmony_ci OpBranch %341 864e5c31af7Sopenharmony_ci %341 = OpLabel 865e5c31af7Sopenharmony_ci %562 = OpPhi %24 %556 %328 %503 %340 866e5c31af7Sopenharmony_ci %561 = OpPhi %18 %555 %328 %343 %340 867e5c31af7Sopenharmony_ci %372 = OpSGreaterThanEqual %50 %561 %19 868e5c31af7Sopenharmony_ci OpSelectionMerge %374 None 869e5c31af7Sopenharmony_ci OpBranchConditional %372 %373 %374 870e5c31af7Sopenharmony_ci %373 = OpLabel 871e5c31af7Sopenharmony_ci %376 = OpCompositeExtract %18 %562 1 872e5c31af7Sopenharmony_ci %377 = OpSLessThan %50 %376 %119 873e5c31af7Sopenharmony_ci OpBranch %374 874e5c31af7Sopenharmony_ci %374 = OpLabel 875e5c31af7Sopenharmony_ci %378 = OpPhi %50 %372 %341 %377 %373 876e5c31af7Sopenharmony_ci OpSelectionMerge %380 None 877e5c31af7Sopenharmony_ci OpBranchConditional %378 %379 %380 878e5c31af7Sopenharmony_ci %379 = OpLabel 879e5c31af7Sopenharmony_ci %382 = OpCompositeExtract %18 %562 0 880e5c31af7Sopenharmony_ci %384 = OpCompositeExtract %18 %562 1 881e5c31af7Sopenharmony_ci %385 = OpIAdd %18 %384 %82 882e5c31af7Sopenharmony_ci %386 = OpIMul %18 %385 %86 883e5c31af7Sopenharmony_ci %387 = OpIAdd %18 %382 %386 884e5c31af7Sopenharmony_ci %388 = OpAccessChain %41 %55 %387 885e5c31af7Sopenharmony_ci %389 = OpLoad %18 %388 886e5c31af7Sopenharmony_ci %390 = OpIEqual %50 %389 %19 887e5c31af7Sopenharmony_ci OpBranch %380 888e5c31af7Sopenharmony_ci %380 = OpLabel 889e5c31af7Sopenharmony_ci %391 = OpPhi %50 %378 %374 %390 %379 890e5c31af7Sopenharmony_ci OpSelectionMerge %393 None 891e5c31af7Sopenharmony_ci OpBranchConditional %391 %392 %393 892e5c31af7Sopenharmony_ci %392 = OpLabel 893e5c31af7Sopenharmony_ci %397 = OpCompositeExtract %18 %562 0 894e5c31af7Sopenharmony_ci %399 = OpCompositeExtract %18 %562 1 895e5c31af7Sopenharmony_ci %400 = OpIMul %18 %399 %86 896e5c31af7Sopenharmony_ci %401 = OpIAdd %18 %397 %400 897e5c31af7Sopenharmony_ci %402 = OpAccessChain %41 %55 %401 898e5c31af7Sopenharmony_ci OpStore %402 %60 899e5c31af7Sopenharmony_ci %407 = OpIAdd %18 %399 %60 900e5c31af7Sopenharmony_ci %408 = OpIMul %18 %407 %86 901e5c31af7Sopenharmony_ci %409 = OpIAdd %18 %397 %408 902e5c31af7Sopenharmony_ci %410 = OpAccessChain %41 %55 %409 903e5c31af7Sopenharmony_ci OpStore %410 %60 904e5c31af7Sopenharmony_ci %415 = OpIAdd %18 %399 %82 905e5c31af7Sopenharmony_ci %416 = OpIMul %18 %415 %86 906e5c31af7Sopenharmony_ci %417 = OpIAdd %18 %397 %416 907e5c31af7Sopenharmony_ci %418 = OpAccessChain %41 %55 %417 908e5c31af7Sopenharmony_ci OpStore %418 %60 909e5c31af7Sopenharmony_ci %515 = OpCompositeInsert %24 %415 %562 1 910e5c31af7Sopenharmony_ci OpBranch %393 911e5c31af7Sopenharmony_ci %393 = OpLabel 912e5c31af7Sopenharmony_ci %638 = OpPhi %24 %562 %380 %515 %392 913e5c31af7Sopenharmony_ci OpBranch %161 914e5c31af7Sopenharmony_ci %161 = OpLabel 915e5c31af7Sopenharmony_ci %637 = OpPhi %24 %568 %165 %638 %393 916e5c31af7Sopenharmony_ci %621 = OpPhi %18 %73 %165 %214 %393 917e5c31af7Sopenharmony_ci %569 = OpPhi %50 %570 %165 %591 %393 918e5c31af7Sopenharmony_ci %425 = OpIMul %18 %39 %86 919e5c31af7Sopenharmony_ci %428 = OpIAdd %18 %425 %34 920e5c31af7Sopenharmony_ci %429 = OpAccessChain %41 %55 %428 921e5c31af7Sopenharmony_ci %430 = OpLoad %18 %429 922e5c31af7Sopenharmony_ci %431 = OpIEqual %50 %430 %60 923e5c31af7Sopenharmony_ci OpSelectionMerge %433 None 924e5c31af7Sopenharmony_ci OpBranchConditional %431 %432 %433 925e5c31af7Sopenharmony_ci %432 = OpLabel 926e5c31af7Sopenharmony_ci OpStore %435 %437 927e5c31af7Sopenharmony_ci OpBranch %70 928e5c31af7Sopenharmony_ci %433 = OpLabel 929e5c31af7Sopenharmony_ci OpBranch %71 930e5c31af7Sopenharmony_ci %71 = OpLabel 931e5c31af7Sopenharmony_ci OpBranchConditional %569 %68 %70 932e5c31af7Sopenharmony_ci %70 = OpLabel 933e5c31af7Sopenharmony_ci %592 = OpPhi %50 %66 %432 %162 %71 934e5c31af7Sopenharmony_ci OpSelectionMerge %445 None 935e5c31af7Sopenharmony_ci OpBranchConditional %592 %442 %445 936e5c31af7Sopenharmony_ci %445 = OpLabel 937e5c31af7Sopenharmony_ci OpStore %435 %441 938e5c31af7Sopenharmony_ci OpBranch %442 939e5c31af7Sopenharmony_ci %442 = OpLabel 940e5c31af7Sopenharmony_ci OpReturn 941e5c31af7Sopenharmony_ci OpFunctionEnd 942e5c31af7Sopenharmony_ciEND 943e5c31af7Sopenharmony_ci 944e5c31af7Sopenharmony_ci# uniforms for variant 945e5c31af7Sopenharmony_ci 946e5c31af7Sopenharmony_ci# resolution 947e5c31af7Sopenharmony_ciBUFFER variant_resolution DATA_TYPE vec2<float> STD140 DATA 948e5c31af7Sopenharmony_ci 32.0 32.0 949e5c31af7Sopenharmony_ciEND 950e5c31af7Sopenharmony_ci 951e5c31af7Sopenharmony_ciBUFFER variant_framebuffer FORMAT B8G8R8A8_UNORM 952e5c31af7Sopenharmony_ci 953e5c31af7Sopenharmony_ciPIPELINE graphics variant_pipeline 954e5c31af7Sopenharmony_ci ATTACH variant_vertex_shader 955e5c31af7Sopenharmony_ci ATTACH variant_fragment_shader 956e5c31af7Sopenharmony_ci FRAMEBUFFER_SIZE 32 32 957e5c31af7Sopenharmony_ci BIND BUFFER variant_framebuffer AS color LOCATION 0 958e5c31af7Sopenharmony_ci BIND BUFFER variant_resolution AS uniform DESCRIPTOR_SET 0 BINDING 0 959e5c31af7Sopenharmony_ciEND 960e5c31af7Sopenharmony_ciCLEAR_COLOR variant_pipeline 0 0 0 255 961e5c31af7Sopenharmony_ci 962e5c31af7Sopenharmony_ciCLEAR variant_pipeline 963e5c31af7Sopenharmony_ciRUN variant_pipeline DRAW_RECT POS 0 0 SIZE 32 32 964e5c31af7Sopenharmony_ci 965e5c31af7Sopenharmony_ciEXPECT reference_framebuffer EQ_HISTOGRAM_EMD_BUFFER variant_framebuffer TOLERANCE 0.005 966