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