1cb93a386Sopenharmony_ciOpCapability Shader
2cb93a386Sopenharmony_ci%1 = OpExtInstImport "GLSL.std.450"
3cb93a386Sopenharmony_ciOpMemoryModel Logical GLSL450
4cb93a386Sopenharmony_ciOpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5cb93a386Sopenharmony_ciOpExecutionMode %_entrypoint_v OriginUpperLeft
6cb93a386Sopenharmony_ciOpName %sk_FragColor "sk_FragColor"
7cb93a386Sopenharmony_ciOpName %sk_Clockwise "sk_Clockwise"
8cb93a386Sopenharmony_ciOpName %_UniformBuffer "_UniformBuffer"
9cb93a386Sopenharmony_ciOpMemberName %_UniformBuffer 0 "colorGreen"
10cb93a386Sopenharmony_ciOpMemberName %_UniformBuffer 1 "colorRed"
11cb93a386Sopenharmony_ciOpName %_entrypoint_v "_entrypoint_v"
12cb93a386Sopenharmony_ciOpName %test_half_b "test_half_b"
13cb93a386Sopenharmony_ciOpName %ok "ok"
14cb93a386Sopenharmony_ciOpName %m23 "m23"
15cb93a386Sopenharmony_ciOpName %m24 "m24"
16cb93a386Sopenharmony_ciOpName %m32 "m32"
17cb93a386Sopenharmony_ciOpName %m34 "m34"
18cb93a386Sopenharmony_ciOpName %m42 "m42"
19cb93a386Sopenharmony_ciOpName %m43 "m43"
20cb93a386Sopenharmony_ciOpName %m22 "m22"
21cb93a386Sopenharmony_ciOpName %m33 "m33"
22cb93a386Sopenharmony_ciOpName %main "main"
23cb93a386Sopenharmony_ciOpName %_0_ok "_0_ok"
24cb93a386Sopenharmony_ciOpName %_1_m23 "_1_m23"
25cb93a386Sopenharmony_ciOpName %_2_m24 "_2_m24"
26cb93a386Sopenharmony_ciOpName %_3_m32 "_3_m32"
27cb93a386Sopenharmony_ciOpName %_4_m34 "_4_m34"
28cb93a386Sopenharmony_ciOpName %_5_m42 "_5_m42"
29cb93a386Sopenharmony_ciOpName %_6_m43 "_6_m43"
30cb93a386Sopenharmony_ciOpName %_7_m22 "_7_m22"
31cb93a386Sopenharmony_ciOpName %_8_m33 "_8_m33"
32cb93a386Sopenharmony_ciOpDecorate %sk_FragColor RelaxedPrecision
33cb93a386Sopenharmony_ciOpDecorate %sk_FragColor Location 0
34cb93a386Sopenharmony_ciOpDecorate %sk_FragColor Index 0
35cb93a386Sopenharmony_ciOpDecorate %sk_Clockwise BuiltIn FrontFacing
36cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 0 Offset 0
37cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
38cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 1 Offset 16
39cb93a386Sopenharmony_ciOpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
40cb93a386Sopenharmony_ciOpDecorate %_UniformBuffer Block
41cb93a386Sopenharmony_ciOpDecorate %11 Binding 0
42cb93a386Sopenharmony_ciOpDecorate %11 DescriptorSet 0
43cb93a386Sopenharmony_ciOpDecorate %m23 RelaxedPrecision
44cb93a386Sopenharmony_ciOpDecorate %34 RelaxedPrecision
45cb93a386Sopenharmony_ciOpDecorate %35 RelaxedPrecision
46cb93a386Sopenharmony_ciOpDecorate %36 RelaxedPrecision
47cb93a386Sopenharmony_ciOpDecorate %38 RelaxedPrecision
48cb93a386Sopenharmony_ciOpDecorate %41 RelaxedPrecision
49cb93a386Sopenharmony_ciOpDecorate %42 RelaxedPrecision
50cb93a386Sopenharmony_ciOpDecorate %43 RelaxedPrecision
51cb93a386Sopenharmony_ciOpDecorate %44 RelaxedPrecision
52cb93a386Sopenharmony_ciOpDecorate %m24 RelaxedPrecision
53cb93a386Sopenharmony_ciOpDecorate %60 RelaxedPrecision
54cb93a386Sopenharmony_ciOpDecorate %61 RelaxedPrecision
55cb93a386Sopenharmony_ciOpDecorate %62 RelaxedPrecision
56cb93a386Sopenharmony_ciOpDecorate %63 RelaxedPrecision
57cb93a386Sopenharmony_ciOpDecorate %66 RelaxedPrecision
58cb93a386Sopenharmony_ciOpDecorate %67 RelaxedPrecision
59cb93a386Sopenharmony_ciOpDecorate %68 RelaxedPrecision
60cb93a386Sopenharmony_ciOpDecorate %69 RelaxedPrecision
61cb93a386Sopenharmony_ciOpDecorate %m32 RelaxedPrecision
62cb93a386Sopenharmony_ciOpDecorate %85 RelaxedPrecision
63cb93a386Sopenharmony_ciOpDecorate %86 RelaxedPrecision
64cb93a386Sopenharmony_ciOpDecorate %87 RelaxedPrecision
65cb93a386Sopenharmony_ciOpDecorate %88 RelaxedPrecision
66cb93a386Sopenharmony_ciOpDecorate %89 RelaxedPrecision
67cb93a386Sopenharmony_ciOpDecorate %92 RelaxedPrecision
68cb93a386Sopenharmony_ciOpDecorate %93 RelaxedPrecision
69cb93a386Sopenharmony_ciOpDecorate %94 RelaxedPrecision
70cb93a386Sopenharmony_ciOpDecorate %95 RelaxedPrecision
71cb93a386Sopenharmony_ciOpDecorate %96 RelaxedPrecision
72cb93a386Sopenharmony_ciOpDecorate %m34 RelaxedPrecision
73cb93a386Sopenharmony_ciOpDecorate %117 RelaxedPrecision
74cb93a386Sopenharmony_ciOpDecorate %118 RelaxedPrecision
75cb93a386Sopenharmony_ciOpDecorate %119 RelaxedPrecision
76cb93a386Sopenharmony_ciOpDecorate %120 RelaxedPrecision
77cb93a386Sopenharmony_ciOpDecorate %121 RelaxedPrecision
78cb93a386Sopenharmony_ciOpDecorate %124 RelaxedPrecision
79cb93a386Sopenharmony_ciOpDecorate %125 RelaxedPrecision
80cb93a386Sopenharmony_ciOpDecorate %126 RelaxedPrecision
81cb93a386Sopenharmony_ciOpDecorate %127 RelaxedPrecision
82cb93a386Sopenharmony_ciOpDecorate %128 RelaxedPrecision
83cb93a386Sopenharmony_ciOpDecorate %m42 RelaxedPrecision
84cb93a386Sopenharmony_ciOpDecorate %148 RelaxedPrecision
85cb93a386Sopenharmony_ciOpDecorate %149 RelaxedPrecision
86cb93a386Sopenharmony_ciOpDecorate %150 RelaxedPrecision
87cb93a386Sopenharmony_ciOpDecorate %151 RelaxedPrecision
88cb93a386Sopenharmony_ciOpDecorate %152 RelaxedPrecision
89cb93a386Sopenharmony_ciOpDecorate %153 RelaxedPrecision
90cb93a386Sopenharmony_ciOpDecorate %156 RelaxedPrecision
91cb93a386Sopenharmony_ciOpDecorate %157 RelaxedPrecision
92cb93a386Sopenharmony_ciOpDecorate %158 RelaxedPrecision
93cb93a386Sopenharmony_ciOpDecorate %159 RelaxedPrecision
94cb93a386Sopenharmony_ciOpDecorate %160 RelaxedPrecision
95cb93a386Sopenharmony_ciOpDecorate %161 RelaxedPrecision
96cb93a386Sopenharmony_ciOpDecorate %m43 RelaxedPrecision
97cb93a386Sopenharmony_ciOpDecorate %186 RelaxedPrecision
98cb93a386Sopenharmony_ciOpDecorate %187 RelaxedPrecision
99cb93a386Sopenharmony_ciOpDecorate %188 RelaxedPrecision
100cb93a386Sopenharmony_ciOpDecorate %189 RelaxedPrecision
101cb93a386Sopenharmony_ciOpDecorate %190 RelaxedPrecision
102cb93a386Sopenharmony_ciOpDecorate %191 RelaxedPrecision
103cb93a386Sopenharmony_ciOpDecorate %194 RelaxedPrecision
104cb93a386Sopenharmony_ciOpDecorate %195 RelaxedPrecision
105cb93a386Sopenharmony_ciOpDecorate %196 RelaxedPrecision
106cb93a386Sopenharmony_ciOpDecorate %197 RelaxedPrecision
107cb93a386Sopenharmony_ciOpDecorate %198 RelaxedPrecision
108cb93a386Sopenharmony_ciOpDecorate %199 RelaxedPrecision
109cb93a386Sopenharmony_ciOpDecorate %m22 RelaxedPrecision
110cb93a386Sopenharmony_ciOpDecorate %223 RelaxedPrecision
111cb93a386Sopenharmony_ciOpDecorate %224 RelaxedPrecision
112cb93a386Sopenharmony_ciOpDecorate %225 RelaxedPrecision
113cb93a386Sopenharmony_ciOpDecorate %226 RelaxedPrecision
114cb93a386Sopenharmony_ciOpDecorate %229 RelaxedPrecision
115cb93a386Sopenharmony_ciOpDecorate %231 RelaxedPrecision
116cb93a386Sopenharmony_ciOpDecorate %232 RelaxedPrecision
117cb93a386Sopenharmony_ciOpDecorate %233 RelaxedPrecision
118cb93a386Sopenharmony_ciOpDecorate %m33 RelaxedPrecision
119cb93a386Sopenharmony_ciOpDecorate %247 RelaxedPrecision
120cb93a386Sopenharmony_ciOpDecorate %248 RelaxedPrecision
121cb93a386Sopenharmony_ciOpDecorate %249 RelaxedPrecision
122cb93a386Sopenharmony_ciOpDecorate %250 RelaxedPrecision
123cb93a386Sopenharmony_ciOpDecorate %253 RelaxedPrecision
124cb93a386Sopenharmony_ciOpDecorate %255 RelaxedPrecision
125cb93a386Sopenharmony_ciOpDecorate %256 RelaxedPrecision
126cb93a386Sopenharmony_ciOpDecorate %257 RelaxedPrecision
127cb93a386Sopenharmony_ciOpDecorate %258 RelaxedPrecision
128cb93a386Sopenharmony_ciOpDecorate %274 RelaxedPrecision
129cb93a386Sopenharmony_ciOpDecorate %276 RelaxedPrecision
130cb93a386Sopenharmony_ciOpDecorate %277 RelaxedPrecision
131cb93a386Sopenharmony_ciOpDecorate %278 RelaxedPrecision
132cb93a386Sopenharmony_ciOpDecorate %279 RelaxedPrecision
133cb93a386Sopenharmony_ciOpDecorate %280 RelaxedPrecision
134cb93a386Sopenharmony_ciOpDecorate %281 RelaxedPrecision
135cb93a386Sopenharmony_ciOpDecorate %282 RelaxedPrecision
136cb93a386Sopenharmony_ciOpDecorate %283 RelaxedPrecision
137cb93a386Sopenharmony_ciOpDecorate %284 RelaxedPrecision
138cb93a386Sopenharmony_ciOpDecorate %285 RelaxedPrecision
139cb93a386Sopenharmony_ciOpDecorate %288 RelaxedPrecision
140cb93a386Sopenharmony_ciOpDecorate %289 RelaxedPrecision
141cb93a386Sopenharmony_ciOpDecorate %290 RelaxedPrecision
142cb93a386Sopenharmony_ciOpDecorate %291 RelaxedPrecision
143cb93a386Sopenharmony_ciOpDecorate %302 RelaxedPrecision
144cb93a386Sopenharmony_ciOpDecorate %303 RelaxedPrecision
145cb93a386Sopenharmony_ciOpDecorate %304 RelaxedPrecision
146cb93a386Sopenharmony_ciOpDecorate %305 RelaxedPrecision
147cb93a386Sopenharmony_ciOpDecorate %306 RelaxedPrecision
148cb93a386Sopenharmony_ciOpDecorate %307 RelaxedPrecision
149cb93a386Sopenharmony_ciOpDecorate %308 RelaxedPrecision
150cb93a386Sopenharmony_ciOpDecorate %309 RelaxedPrecision
151cb93a386Sopenharmony_ciOpDecorate %310 RelaxedPrecision
152cb93a386Sopenharmony_ciOpDecorate %311 RelaxedPrecision
153cb93a386Sopenharmony_ciOpDecorate %312 RelaxedPrecision
154cb93a386Sopenharmony_ciOpDecorate %313 RelaxedPrecision
155cb93a386Sopenharmony_ciOpDecorate %314 RelaxedPrecision
156cb93a386Sopenharmony_ciOpDecorate %315 RelaxedPrecision
157cb93a386Sopenharmony_ciOpDecorate %318 RelaxedPrecision
158cb93a386Sopenharmony_ciOpDecorate %320 RelaxedPrecision
159cb93a386Sopenharmony_ciOpDecorate %321 RelaxedPrecision
160cb93a386Sopenharmony_ciOpDecorate %322 RelaxedPrecision
161cb93a386Sopenharmony_ciOpDecorate %323 RelaxedPrecision
162cb93a386Sopenharmony_ciOpDecorate %339 RelaxedPrecision
163cb93a386Sopenharmony_ciOpDecorate %340 RelaxedPrecision
164cb93a386Sopenharmony_ciOpDecorate %341 RelaxedPrecision
165cb93a386Sopenharmony_ciOpDecorate %342 RelaxedPrecision
166cb93a386Sopenharmony_ciOpDecorate %343 RelaxedPrecision
167cb93a386Sopenharmony_ciOpDecorate %344 RelaxedPrecision
168cb93a386Sopenharmony_ciOpDecorate %345 RelaxedPrecision
169cb93a386Sopenharmony_ciOpDecorate %346 RelaxedPrecision
170cb93a386Sopenharmony_ciOpDecorate %347 RelaxedPrecision
171cb93a386Sopenharmony_ciOpDecorate %348 RelaxedPrecision
172cb93a386Sopenharmony_ciOpDecorate %349 RelaxedPrecision
173cb93a386Sopenharmony_ciOpDecorate %352 RelaxedPrecision
174cb93a386Sopenharmony_ciOpDecorate %354 RelaxedPrecision
175cb93a386Sopenharmony_ciOpDecorate %355 RelaxedPrecision
176cb93a386Sopenharmony_ciOpDecorate %356 RelaxedPrecision
177cb93a386Sopenharmony_ciOpDecorate %367 RelaxedPrecision
178cb93a386Sopenharmony_ciOpDecorate %376 RelaxedPrecision
179cb93a386Sopenharmony_ciOpDecorate %397 RelaxedPrecision
180cb93a386Sopenharmony_ciOpDecorate %419 RelaxedPrecision
181cb93a386Sopenharmony_ciOpDecorate %447 RelaxedPrecision
182cb93a386Sopenharmony_ciOpDecorate %476 RelaxedPrecision
183cb93a386Sopenharmony_ciOpDecorate %511 RelaxedPrecision
184cb93a386Sopenharmony_ciOpDecorate %544 RelaxedPrecision
185cb93a386Sopenharmony_ciOpDecorate %565 RelaxedPrecision
186cb93a386Sopenharmony_ciOpDecorate %598 RelaxedPrecision
187cb93a386Sopenharmony_ciOpDecorate %628 RelaxedPrecision
188cb93a386Sopenharmony_ciOpDecorate %661 RelaxedPrecision
189cb93a386Sopenharmony_ciOpDecorate %678 RelaxedPrecision
190cb93a386Sopenharmony_ciOpDecorate %692 RelaxedPrecision
191cb93a386Sopenharmony_ciOpDecorate %695 RelaxedPrecision
192cb93a386Sopenharmony_ciOpDecorate %696 RelaxedPrecision
193cb93a386Sopenharmony_ci%float = OpTypeFloat 32
194cb93a386Sopenharmony_ci%v4float = OpTypeVector %float 4
195cb93a386Sopenharmony_ci%_ptr_Output_v4float = OpTypePointer Output %v4float
196cb93a386Sopenharmony_ci%sk_FragColor = OpVariable %_ptr_Output_v4float Output
197cb93a386Sopenharmony_ci%bool = OpTypeBool
198cb93a386Sopenharmony_ci%_ptr_Input_bool = OpTypePointer Input %bool
199cb93a386Sopenharmony_ci%sk_Clockwise = OpVariable %_ptr_Input_bool Input
200cb93a386Sopenharmony_ci%_UniformBuffer = OpTypeStruct %v4float %v4float
201cb93a386Sopenharmony_ci%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
202cb93a386Sopenharmony_ci%11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
203cb93a386Sopenharmony_ci%void = OpTypeVoid
204cb93a386Sopenharmony_ci%16 = OpTypeFunction %void
205cb93a386Sopenharmony_ci%v2float = OpTypeVector %float 2
206cb93a386Sopenharmony_ci%float_0 = OpConstant %float 0
207cb93a386Sopenharmony_ci%20 = OpConstantComposite %v2float %float_0 %float_0
208cb93a386Sopenharmony_ci%_ptr_Function_v2float = OpTypePointer Function %v2float
209cb93a386Sopenharmony_ci%24 = OpTypeFunction %bool
210cb93a386Sopenharmony_ci%_ptr_Function_bool = OpTypePointer Function %bool
211cb93a386Sopenharmony_ci%true = OpConstantTrue %bool
212cb93a386Sopenharmony_ci%v3float = OpTypeVector %float 3
213cb93a386Sopenharmony_ci%mat2v3float = OpTypeMatrix %v3float 2
214cb93a386Sopenharmony_ci%_ptr_Function_mat2v3float = OpTypePointer Function %mat2v3float
215cb93a386Sopenharmony_ci%float_2 = OpConstant %float 2
216cb93a386Sopenharmony_ci%false = OpConstantFalse %bool
217cb93a386Sopenharmony_ci%v3bool = OpTypeVector %bool 3
218cb93a386Sopenharmony_ci%mat2v4float = OpTypeMatrix %v4float 2
219cb93a386Sopenharmony_ci%_ptr_Function_mat2v4float = OpTypePointer Function %mat2v4float
220cb93a386Sopenharmony_ci%float_3 = OpConstant %float 3
221cb93a386Sopenharmony_ci%v4bool = OpTypeVector %bool 4
222cb93a386Sopenharmony_ci%mat3v2float = OpTypeMatrix %v2float 3
223cb93a386Sopenharmony_ci%_ptr_Function_mat3v2float = OpTypePointer Function %mat3v2float
224cb93a386Sopenharmony_ci%float_4 = OpConstant %float 4
225cb93a386Sopenharmony_ci%v2bool = OpTypeVector %bool 2
226cb93a386Sopenharmony_ci%mat3v4float = OpTypeMatrix %v4float 3
227cb93a386Sopenharmony_ci%_ptr_Function_mat3v4float = OpTypePointer Function %mat3v4float
228cb93a386Sopenharmony_ci%float_5 = OpConstant %float 5
229cb93a386Sopenharmony_ci%mat4v2float = OpTypeMatrix %v2float 4
230cb93a386Sopenharmony_ci%_ptr_Function_mat4v2float = OpTypePointer Function %mat4v2float
231cb93a386Sopenharmony_ci%float_6 = OpConstant %float 6
232cb93a386Sopenharmony_ci%mat4v3float = OpTypeMatrix %v3float 4
233cb93a386Sopenharmony_ci%_ptr_Function_mat4v3float = OpTypePointer Function %mat4v3float
234cb93a386Sopenharmony_ci%float_7 = OpConstant %float 7
235cb93a386Sopenharmony_ci%mat2v2float = OpTypeMatrix %v2float 2
236cb93a386Sopenharmony_ci%_ptr_Function_mat2v2float = OpTypePointer Function %mat2v2float
237cb93a386Sopenharmony_ci%float_8 = OpConstant %float 8
238cb93a386Sopenharmony_ci%mat3v3float = OpTypeMatrix %v3float 3
239cb93a386Sopenharmony_ci%_ptr_Function_mat3v3float = OpTypePointer Function %mat3v3float
240cb93a386Sopenharmony_ci%float_35 = OpConstant %float 35
241cb93a386Sopenharmony_ci%float_1 = OpConstant %float 1
242cb93a386Sopenharmony_ci%float_n2 = OpConstant %float -2
243cb93a386Sopenharmony_ci%float_0_75 = OpConstant %float 0.75
244cb93a386Sopenharmony_ci%368 = OpTypeFunction %v4float %_ptr_Function_v2float
245cb93a386Sopenharmony_ci%_ptr_Function_v4float = OpTypePointer Function %v4float
246cb93a386Sopenharmony_ci%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
247cb93a386Sopenharmony_ci%int = OpTypeInt 32 1
248cb93a386Sopenharmony_ci%int_0 = OpConstant %int 0
249cb93a386Sopenharmony_ci%int_1 = OpConstant %int 1
250cb93a386Sopenharmony_ci%_entrypoint_v = OpFunction %void None %16
251cb93a386Sopenharmony_ci%17 = OpLabel
252cb93a386Sopenharmony_ci%21 = OpVariable %_ptr_Function_v2float Function
253cb93a386Sopenharmony_ciOpStore %21 %20
254cb93a386Sopenharmony_ci%23 = OpFunctionCall %v4float %main %21
255cb93a386Sopenharmony_ciOpStore %sk_FragColor %23
256cb93a386Sopenharmony_ciOpReturn
257cb93a386Sopenharmony_ciOpFunctionEnd
258cb93a386Sopenharmony_ci%test_half_b = OpFunction %bool None %24
259cb93a386Sopenharmony_ci%25 = OpLabel
260cb93a386Sopenharmony_ci%ok = OpVariable %_ptr_Function_bool Function
261cb93a386Sopenharmony_ci%m23 = OpVariable %_ptr_Function_mat2v3float Function
262cb93a386Sopenharmony_ci%m24 = OpVariable %_ptr_Function_mat2v4float Function
263cb93a386Sopenharmony_ci%m32 = OpVariable %_ptr_Function_mat3v2float Function
264cb93a386Sopenharmony_ci%m34 = OpVariable %_ptr_Function_mat3v4float Function
265cb93a386Sopenharmony_ci%m42 = OpVariable %_ptr_Function_mat4v2float Function
266cb93a386Sopenharmony_ci%m43 = OpVariable %_ptr_Function_mat4v3float Function
267cb93a386Sopenharmony_ci%m22 = OpVariable %_ptr_Function_mat2v2float Function
268cb93a386Sopenharmony_ci%m33 = OpVariable %_ptr_Function_mat3v3float Function
269cb93a386Sopenharmony_ciOpStore %ok %true
270cb93a386Sopenharmony_ci%35 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
271cb93a386Sopenharmony_ci%36 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
272cb93a386Sopenharmony_ci%34 = OpCompositeConstruct %mat2v3float %35 %36
273cb93a386Sopenharmony_ciOpStore %m23 %34
274cb93a386Sopenharmony_ci%38 = OpLoad %bool %ok
275cb93a386Sopenharmony_ciOpSelectionMerge %40 None
276cb93a386Sopenharmony_ciOpBranchConditional %38 %39 %40
277cb93a386Sopenharmony_ci%39 = OpLabel
278cb93a386Sopenharmony_ci%41 = OpLoad %mat2v3float %m23
279cb93a386Sopenharmony_ci%42 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
280cb93a386Sopenharmony_ci%43 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
281cb93a386Sopenharmony_ci%44 = OpCompositeConstruct %mat2v3float %42 %43
282cb93a386Sopenharmony_ci%46 = OpCompositeExtract %v3float %41 0
283cb93a386Sopenharmony_ci%47 = OpCompositeExtract %v3float %44 0
284cb93a386Sopenharmony_ci%48 = OpFOrdEqual %v3bool %46 %47
285cb93a386Sopenharmony_ci%49 = OpAll %bool %48
286cb93a386Sopenharmony_ci%50 = OpCompositeExtract %v3float %41 1
287cb93a386Sopenharmony_ci%51 = OpCompositeExtract %v3float %44 1
288cb93a386Sopenharmony_ci%52 = OpFOrdEqual %v3bool %50 %51
289cb93a386Sopenharmony_ci%53 = OpAll %bool %52
290cb93a386Sopenharmony_ci%54 = OpLogicalAnd %bool %49 %53
291cb93a386Sopenharmony_ciOpBranch %40
292cb93a386Sopenharmony_ci%40 = OpLabel
293cb93a386Sopenharmony_ci%55 = OpPhi %bool %false %25 %54 %39
294cb93a386Sopenharmony_ciOpStore %ok %55
295cb93a386Sopenharmony_ci%61 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0
296cb93a386Sopenharmony_ci%62 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0
297cb93a386Sopenharmony_ci%60 = OpCompositeConstruct %mat2v4float %61 %62
298cb93a386Sopenharmony_ciOpStore %m24 %60
299cb93a386Sopenharmony_ci%63 = OpLoad %bool %ok
300cb93a386Sopenharmony_ciOpSelectionMerge %65 None
301cb93a386Sopenharmony_ciOpBranchConditional %63 %64 %65
302cb93a386Sopenharmony_ci%64 = OpLabel
303cb93a386Sopenharmony_ci%66 = OpLoad %mat2v4float %m24
304cb93a386Sopenharmony_ci%67 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0
305cb93a386Sopenharmony_ci%68 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0
306cb93a386Sopenharmony_ci%69 = OpCompositeConstruct %mat2v4float %67 %68
307cb93a386Sopenharmony_ci%71 = OpCompositeExtract %v4float %66 0
308cb93a386Sopenharmony_ci%72 = OpCompositeExtract %v4float %69 0
309cb93a386Sopenharmony_ci%73 = OpFOrdEqual %v4bool %71 %72
310cb93a386Sopenharmony_ci%74 = OpAll %bool %73
311cb93a386Sopenharmony_ci%75 = OpCompositeExtract %v4float %66 1
312cb93a386Sopenharmony_ci%76 = OpCompositeExtract %v4float %69 1
313cb93a386Sopenharmony_ci%77 = OpFOrdEqual %v4bool %75 %76
314cb93a386Sopenharmony_ci%78 = OpAll %bool %77
315cb93a386Sopenharmony_ci%79 = OpLogicalAnd %bool %74 %78
316cb93a386Sopenharmony_ciOpBranch %65
317cb93a386Sopenharmony_ci%65 = OpLabel
318cb93a386Sopenharmony_ci%80 = OpPhi %bool %false %40 %79 %64
319cb93a386Sopenharmony_ciOpStore %ok %80
320cb93a386Sopenharmony_ci%86 = OpCompositeConstruct %v2float %float_4 %float_0
321cb93a386Sopenharmony_ci%87 = OpCompositeConstruct %v2float %float_0 %float_4
322cb93a386Sopenharmony_ci%88 = OpCompositeConstruct %v2float %float_0 %float_0
323cb93a386Sopenharmony_ci%85 = OpCompositeConstruct %mat3v2float %86 %87 %88
324cb93a386Sopenharmony_ciOpStore %m32 %85
325cb93a386Sopenharmony_ci%89 = OpLoad %bool %ok
326cb93a386Sopenharmony_ciOpSelectionMerge %91 None
327cb93a386Sopenharmony_ciOpBranchConditional %89 %90 %91
328cb93a386Sopenharmony_ci%90 = OpLabel
329cb93a386Sopenharmony_ci%92 = OpLoad %mat3v2float %m32
330cb93a386Sopenharmony_ci%93 = OpCompositeConstruct %v2float %float_4 %float_0
331cb93a386Sopenharmony_ci%94 = OpCompositeConstruct %v2float %float_0 %float_4
332cb93a386Sopenharmony_ci%95 = OpCompositeConstruct %v2float %float_0 %float_0
333cb93a386Sopenharmony_ci%96 = OpCompositeConstruct %mat3v2float %93 %94 %95
334cb93a386Sopenharmony_ci%98 = OpCompositeExtract %v2float %92 0
335cb93a386Sopenharmony_ci%99 = OpCompositeExtract %v2float %96 0
336cb93a386Sopenharmony_ci%100 = OpFOrdEqual %v2bool %98 %99
337cb93a386Sopenharmony_ci%101 = OpAll %bool %100
338cb93a386Sopenharmony_ci%102 = OpCompositeExtract %v2float %92 1
339cb93a386Sopenharmony_ci%103 = OpCompositeExtract %v2float %96 1
340cb93a386Sopenharmony_ci%104 = OpFOrdEqual %v2bool %102 %103
341cb93a386Sopenharmony_ci%105 = OpAll %bool %104
342cb93a386Sopenharmony_ci%106 = OpLogicalAnd %bool %101 %105
343cb93a386Sopenharmony_ci%107 = OpCompositeExtract %v2float %92 2
344cb93a386Sopenharmony_ci%108 = OpCompositeExtract %v2float %96 2
345cb93a386Sopenharmony_ci%109 = OpFOrdEqual %v2bool %107 %108
346cb93a386Sopenharmony_ci%110 = OpAll %bool %109
347cb93a386Sopenharmony_ci%111 = OpLogicalAnd %bool %106 %110
348cb93a386Sopenharmony_ciOpBranch %91
349cb93a386Sopenharmony_ci%91 = OpLabel
350cb93a386Sopenharmony_ci%112 = OpPhi %bool %false %65 %111 %90
351cb93a386Sopenharmony_ciOpStore %ok %112
352cb93a386Sopenharmony_ci%118 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0
353cb93a386Sopenharmony_ci%119 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0
354cb93a386Sopenharmony_ci%120 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0
355cb93a386Sopenharmony_ci%117 = OpCompositeConstruct %mat3v4float %118 %119 %120
356cb93a386Sopenharmony_ciOpStore %m34 %117
357cb93a386Sopenharmony_ci%121 = OpLoad %bool %ok
358cb93a386Sopenharmony_ciOpSelectionMerge %123 None
359cb93a386Sopenharmony_ciOpBranchConditional %121 %122 %123
360cb93a386Sopenharmony_ci%122 = OpLabel
361cb93a386Sopenharmony_ci%124 = OpLoad %mat3v4float %m34
362cb93a386Sopenharmony_ci%125 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0
363cb93a386Sopenharmony_ci%126 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0
364cb93a386Sopenharmony_ci%127 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0
365cb93a386Sopenharmony_ci%128 = OpCompositeConstruct %mat3v4float %125 %126 %127
366cb93a386Sopenharmony_ci%129 = OpCompositeExtract %v4float %124 0
367cb93a386Sopenharmony_ci%130 = OpCompositeExtract %v4float %128 0
368cb93a386Sopenharmony_ci%131 = OpFOrdEqual %v4bool %129 %130
369cb93a386Sopenharmony_ci%132 = OpAll %bool %131
370cb93a386Sopenharmony_ci%133 = OpCompositeExtract %v4float %124 1
371cb93a386Sopenharmony_ci%134 = OpCompositeExtract %v4float %128 1
372cb93a386Sopenharmony_ci%135 = OpFOrdEqual %v4bool %133 %134
373cb93a386Sopenharmony_ci%136 = OpAll %bool %135
374cb93a386Sopenharmony_ci%137 = OpLogicalAnd %bool %132 %136
375cb93a386Sopenharmony_ci%138 = OpCompositeExtract %v4float %124 2
376cb93a386Sopenharmony_ci%139 = OpCompositeExtract %v4float %128 2
377cb93a386Sopenharmony_ci%140 = OpFOrdEqual %v4bool %138 %139
378cb93a386Sopenharmony_ci%141 = OpAll %bool %140
379cb93a386Sopenharmony_ci%142 = OpLogicalAnd %bool %137 %141
380cb93a386Sopenharmony_ciOpBranch %123
381cb93a386Sopenharmony_ci%123 = OpLabel
382cb93a386Sopenharmony_ci%143 = OpPhi %bool %false %91 %142 %122
383cb93a386Sopenharmony_ciOpStore %ok %143
384cb93a386Sopenharmony_ci%149 = OpCompositeConstruct %v2float %float_6 %float_0
385cb93a386Sopenharmony_ci%150 = OpCompositeConstruct %v2float %float_0 %float_6
386cb93a386Sopenharmony_ci%151 = OpCompositeConstruct %v2float %float_0 %float_0
387cb93a386Sopenharmony_ci%152 = OpCompositeConstruct %v2float %float_0 %float_0
388cb93a386Sopenharmony_ci%148 = OpCompositeConstruct %mat4v2float %149 %150 %151 %152
389cb93a386Sopenharmony_ciOpStore %m42 %148
390cb93a386Sopenharmony_ci%153 = OpLoad %bool %ok
391cb93a386Sopenharmony_ciOpSelectionMerge %155 None
392cb93a386Sopenharmony_ciOpBranchConditional %153 %154 %155
393cb93a386Sopenharmony_ci%154 = OpLabel
394cb93a386Sopenharmony_ci%156 = OpLoad %mat4v2float %m42
395cb93a386Sopenharmony_ci%157 = OpCompositeConstruct %v2float %float_6 %float_0
396cb93a386Sopenharmony_ci%158 = OpCompositeConstruct %v2float %float_0 %float_6
397cb93a386Sopenharmony_ci%159 = OpCompositeConstruct %v2float %float_0 %float_0
398cb93a386Sopenharmony_ci%160 = OpCompositeConstruct %v2float %float_0 %float_0
399cb93a386Sopenharmony_ci%161 = OpCompositeConstruct %mat4v2float %157 %158 %159 %160
400cb93a386Sopenharmony_ci%162 = OpCompositeExtract %v2float %156 0
401cb93a386Sopenharmony_ci%163 = OpCompositeExtract %v2float %161 0
402cb93a386Sopenharmony_ci%164 = OpFOrdEqual %v2bool %162 %163
403cb93a386Sopenharmony_ci%165 = OpAll %bool %164
404cb93a386Sopenharmony_ci%166 = OpCompositeExtract %v2float %156 1
405cb93a386Sopenharmony_ci%167 = OpCompositeExtract %v2float %161 1
406cb93a386Sopenharmony_ci%168 = OpFOrdEqual %v2bool %166 %167
407cb93a386Sopenharmony_ci%169 = OpAll %bool %168
408cb93a386Sopenharmony_ci%170 = OpLogicalAnd %bool %165 %169
409cb93a386Sopenharmony_ci%171 = OpCompositeExtract %v2float %156 2
410cb93a386Sopenharmony_ci%172 = OpCompositeExtract %v2float %161 2
411cb93a386Sopenharmony_ci%173 = OpFOrdEqual %v2bool %171 %172
412cb93a386Sopenharmony_ci%174 = OpAll %bool %173
413cb93a386Sopenharmony_ci%175 = OpLogicalAnd %bool %170 %174
414cb93a386Sopenharmony_ci%176 = OpCompositeExtract %v2float %156 3
415cb93a386Sopenharmony_ci%177 = OpCompositeExtract %v2float %161 3
416cb93a386Sopenharmony_ci%178 = OpFOrdEqual %v2bool %176 %177
417cb93a386Sopenharmony_ci%179 = OpAll %bool %178
418cb93a386Sopenharmony_ci%180 = OpLogicalAnd %bool %175 %179
419cb93a386Sopenharmony_ciOpBranch %155
420cb93a386Sopenharmony_ci%155 = OpLabel
421cb93a386Sopenharmony_ci%181 = OpPhi %bool %false %123 %180 %154
422cb93a386Sopenharmony_ciOpStore %ok %181
423cb93a386Sopenharmony_ci%187 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0
424cb93a386Sopenharmony_ci%188 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0
425cb93a386Sopenharmony_ci%189 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7
426cb93a386Sopenharmony_ci%190 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0
427cb93a386Sopenharmony_ci%186 = OpCompositeConstruct %mat4v3float %187 %188 %189 %190
428cb93a386Sopenharmony_ciOpStore %m43 %186
429cb93a386Sopenharmony_ci%191 = OpLoad %bool %ok
430cb93a386Sopenharmony_ciOpSelectionMerge %193 None
431cb93a386Sopenharmony_ciOpBranchConditional %191 %192 %193
432cb93a386Sopenharmony_ci%192 = OpLabel
433cb93a386Sopenharmony_ci%194 = OpLoad %mat4v3float %m43
434cb93a386Sopenharmony_ci%195 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0
435cb93a386Sopenharmony_ci%196 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0
436cb93a386Sopenharmony_ci%197 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7
437cb93a386Sopenharmony_ci%198 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0
438cb93a386Sopenharmony_ci%199 = OpCompositeConstruct %mat4v3float %195 %196 %197 %198
439cb93a386Sopenharmony_ci%200 = OpCompositeExtract %v3float %194 0
440cb93a386Sopenharmony_ci%201 = OpCompositeExtract %v3float %199 0
441cb93a386Sopenharmony_ci%202 = OpFOrdEqual %v3bool %200 %201
442cb93a386Sopenharmony_ci%203 = OpAll %bool %202
443cb93a386Sopenharmony_ci%204 = OpCompositeExtract %v3float %194 1
444cb93a386Sopenharmony_ci%205 = OpCompositeExtract %v3float %199 1
445cb93a386Sopenharmony_ci%206 = OpFOrdEqual %v3bool %204 %205
446cb93a386Sopenharmony_ci%207 = OpAll %bool %206
447cb93a386Sopenharmony_ci%208 = OpLogicalAnd %bool %203 %207
448cb93a386Sopenharmony_ci%209 = OpCompositeExtract %v3float %194 2
449cb93a386Sopenharmony_ci%210 = OpCompositeExtract %v3float %199 2
450cb93a386Sopenharmony_ci%211 = OpFOrdEqual %v3bool %209 %210
451cb93a386Sopenharmony_ci%212 = OpAll %bool %211
452cb93a386Sopenharmony_ci%213 = OpLogicalAnd %bool %208 %212
453cb93a386Sopenharmony_ci%214 = OpCompositeExtract %v3float %194 3
454cb93a386Sopenharmony_ci%215 = OpCompositeExtract %v3float %199 3
455cb93a386Sopenharmony_ci%216 = OpFOrdEqual %v3bool %214 %215
456cb93a386Sopenharmony_ci%217 = OpAll %bool %216
457cb93a386Sopenharmony_ci%218 = OpLogicalAnd %bool %213 %217
458cb93a386Sopenharmony_ciOpBranch %193
459cb93a386Sopenharmony_ci%193 = OpLabel
460cb93a386Sopenharmony_ci%219 = OpPhi %bool %false %155 %218 %192
461cb93a386Sopenharmony_ciOpStore %ok %219
462cb93a386Sopenharmony_ci%223 = OpLoad %mat3v2float %m32
463cb93a386Sopenharmony_ci%224 = OpLoad %mat2v3float %m23
464cb93a386Sopenharmony_ci%225 = OpMatrixTimesMatrix %mat2v2float %223 %224
465cb93a386Sopenharmony_ciOpStore %m22 %225
466cb93a386Sopenharmony_ci%226 = OpLoad %bool %ok
467cb93a386Sopenharmony_ciOpSelectionMerge %228 None
468cb93a386Sopenharmony_ciOpBranchConditional %226 %227 %228
469cb93a386Sopenharmony_ci%227 = OpLabel
470cb93a386Sopenharmony_ci%229 = OpLoad %mat2v2float %m22
471cb93a386Sopenharmony_ci%232 = OpCompositeConstruct %v2float %float_8 %float_0
472cb93a386Sopenharmony_ci%233 = OpCompositeConstruct %v2float %float_0 %float_8
473cb93a386Sopenharmony_ci%231 = OpCompositeConstruct %mat2v2float %232 %233
474cb93a386Sopenharmony_ci%234 = OpCompositeExtract %v2float %229 0
475cb93a386Sopenharmony_ci%235 = OpCompositeExtract %v2float %231 0
476cb93a386Sopenharmony_ci%236 = OpFOrdEqual %v2bool %234 %235
477cb93a386Sopenharmony_ci%237 = OpAll %bool %236
478cb93a386Sopenharmony_ci%238 = OpCompositeExtract %v2float %229 1
479cb93a386Sopenharmony_ci%239 = OpCompositeExtract %v2float %231 1
480cb93a386Sopenharmony_ci%240 = OpFOrdEqual %v2bool %238 %239
481cb93a386Sopenharmony_ci%241 = OpAll %bool %240
482cb93a386Sopenharmony_ci%242 = OpLogicalAnd %bool %237 %241
483cb93a386Sopenharmony_ciOpBranch %228
484cb93a386Sopenharmony_ci%228 = OpLabel
485cb93a386Sopenharmony_ci%243 = OpPhi %bool %false %193 %242 %227
486cb93a386Sopenharmony_ciOpStore %ok %243
487cb93a386Sopenharmony_ci%247 = OpLoad %mat4v3float %m43
488cb93a386Sopenharmony_ci%248 = OpLoad %mat3v4float %m34
489cb93a386Sopenharmony_ci%249 = OpMatrixTimesMatrix %mat3v3float %247 %248
490cb93a386Sopenharmony_ciOpStore %m33 %249
491cb93a386Sopenharmony_ci%250 = OpLoad %bool %ok
492cb93a386Sopenharmony_ciOpSelectionMerge %252 None
493cb93a386Sopenharmony_ciOpBranchConditional %250 %251 %252
494cb93a386Sopenharmony_ci%251 = OpLabel
495cb93a386Sopenharmony_ci%253 = OpLoad %mat3v3float %m33
496cb93a386Sopenharmony_ci%256 = OpCompositeConstruct %v3float %float_35 %float_0 %float_0
497cb93a386Sopenharmony_ci%257 = OpCompositeConstruct %v3float %float_0 %float_35 %float_0
498cb93a386Sopenharmony_ci%258 = OpCompositeConstruct %v3float %float_0 %float_0 %float_35
499cb93a386Sopenharmony_ci%255 = OpCompositeConstruct %mat3v3float %256 %257 %258
500cb93a386Sopenharmony_ci%259 = OpCompositeExtract %v3float %253 0
501cb93a386Sopenharmony_ci%260 = OpCompositeExtract %v3float %255 0
502cb93a386Sopenharmony_ci%261 = OpFOrdEqual %v3bool %259 %260
503cb93a386Sopenharmony_ci%262 = OpAll %bool %261
504cb93a386Sopenharmony_ci%263 = OpCompositeExtract %v3float %253 1
505cb93a386Sopenharmony_ci%264 = OpCompositeExtract %v3float %255 1
506cb93a386Sopenharmony_ci%265 = OpFOrdEqual %v3bool %263 %264
507cb93a386Sopenharmony_ci%266 = OpAll %bool %265
508cb93a386Sopenharmony_ci%267 = OpLogicalAnd %bool %262 %266
509cb93a386Sopenharmony_ci%268 = OpCompositeExtract %v3float %253 2
510cb93a386Sopenharmony_ci%269 = OpCompositeExtract %v3float %255 2
511cb93a386Sopenharmony_ci%270 = OpFOrdEqual %v3bool %268 %269
512cb93a386Sopenharmony_ci%271 = OpAll %bool %270
513cb93a386Sopenharmony_ci%272 = OpLogicalAnd %bool %267 %271
514cb93a386Sopenharmony_ciOpBranch %252
515cb93a386Sopenharmony_ci%252 = OpLabel
516cb93a386Sopenharmony_ci%273 = OpPhi %bool %false %228 %272 %251
517cb93a386Sopenharmony_ciOpStore %ok %273
518cb93a386Sopenharmony_ci%274 = OpLoad %mat2v3float %m23
519cb93a386Sopenharmony_ci%276 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1
520cb93a386Sopenharmony_ci%277 = OpCompositeConstruct %mat2v3float %276 %276
521cb93a386Sopenharmony_ci%278 = OpCompositeExtract %v3float %274 0
522cb93a386Sopenharmony_ci%279 = OpCompositeExtract %v3float %277 0
523cb93a386Sopenharmony_ci%280 = OpFAdd %v3float %278 %279
524cb93a386Sopenharmony_ci%281 = OpCompositeExtract %v3float %274 1
525cb93a386Sopenharmony_ci%282 = OpCompositeExtract %v3float %277 1
526cb93a386Sopenharmony_ci%283 = OpFAdd %v3float %281 %282
527cb93a386Sopenharmony_ci%284 = OpCompositeConstruct %mat2v3float %280 %283
528cb93a386Sopenharmony_ciOpStore %m23 %284
529cb93a386Sopenharmony_ci%285 = OpLoad %bool %ok
530cb93a386Sopenharmony_ciOpSelectionMerge %287 None
531cb93a386Sopenharmony_ciOpBranchConditional %285 %286 %287
532cb93a386Sopenharmony_ci%286 = OpLabel
533cb93a386Sopenharmony_ci%288 = OpLoad %mat2v3float %m23
534cb93a386Sopenharmony_ci%289 = OpCompositeConstruct %v3float %float_3 %float_1 %float_1
535cb93a386Sopenharmony_ci%290 = OpCompositeConstruct %v3float %float_1 %float_3 %float_1
536cb93a386Sopenharmony_ci%291 = OpCompositeConstruct %mat2v3float %289 %290
537cb93a386Sopenharmony_ci%292 = OpCompositeExtract %v3float %288 0
538cb93a386Sopenharmony_ci%293 = OpCompositeExtract %v3float %291 0
539cb93a386Sopenharmony_ci%294 = OpFOrdEqual %v3bool %292 %293
540cb93a386Sopenharmony_ci%295 = OpAll %bool %294
541cb93a386Sopenharmony_ci%296 = OpCompositeExtract %v3float %288 1
542cb93a386Sopenharmony_ci%297 = OpCompositeExtract %v3float %291 1
543cb93a386Sopenharmony_ci%298 = OpFOrdEqual %v3bool %296 %297
544cb93a386Sopenharmony_ci%299 = OpAll %bool %298
545cb93a386Sopenharmony_ci%300 = OpLogicalAnd %bool %295 %299
546cb93a386Sopenharmony_ciOpBranch %287
547cb93a386Sopenharmony_ci%287 = OpLabel
548cb93a386Sopenharmony_ci%301 = OpPhi %bool %false %252 %300 %286
549cb93a386Sopenharmony_ciOpStore %ok %301
550cb93a386Sopenharmony_ci%302 = OpLoad %mat3v2float %m32
551cb93a386Sopenharmony_ci%303 = OpCompositeConstruct %v2float %float_2 %float_2
552cb93a386Sopenharmony_ci%304 = OpCompositeConstruct %mat3v2float %303 %303 %303
553cb93a386Sopenharmony_ci%305 = OpCompositeExtract %v2float %302 0
554cb93a386Sopenharmony_ci%306 = OpCompositeExtract %v2float %304 0
555cb93a386Sopenharmony_ci%307 = OpFSub %v2float %305 %306
556cb93a386Sopenharmony_ci%308 = OpCompositeExtract %v2float %302 1
557cb93a386Sopenharmony_ci%309 = OpCompositeExtract %v2float %304 1
558cb93a386Sopenharmony_ci%310 = OpFSub %v2float %308 %309
559cb93a386Sopenharmony_ci%311 = OpCompositeExtract %v2float %302 2
560cb93a386Sopenharmony_ci%312 = OpCompositeExtract %v2float %304 2
561cb93a386Sopenharmony_ci%313 = OpFSub %v2float %311 %312
562cb93a386Sopenharmony_ci%314 = OpCompositeConstruct %mat3v2float %307 %310 %313
563cb93a386Sopenharmony_ciOpStore %m32 %314
564cb93a386Sopenharmony_ci%315 = OpLoad %bool %ok
565cb93a386Sopenharmony_ciOpSelectionMerge %317 None
566cb93a386Sopenharmony_ciOpBranchConditional %315 %316 %317
567cb93a386Sopenharmony_ci%316 = OpLabel
568cb93a386Sopenharmony_ci%318 = OpLoad %mat3v2float %m32
569cb93a386Sopenharmony_ci%320 = OpCompositeConstruct %v2float %float_2 %float_n2
570cb93a386Sopenharmony_ci%321 = OpCompositeConstruct %v2float %float_n2 %float_2
571cb93a386Sopenharmony_ci%322 = OpCompositeConstruct %v2float %float_n2 %float_n2
572cb93a386Sopenharmony_ci%323 = OpCompositeConstruct %mat3v2float %320 %321 %322
573cb93a386Sopenharmony_ci%324 = OpCompositeExtract %v2float %318 0
574cb93a386Sopenharmony_ci%325 = OpCompositeExtract %v2float %323 0
575cb93a386Sopenharmony_ci%326 = OpFOrdEqual %v2bool %324 %325
576cb93a386Sopenharmony_ci%327 = OpAll %bool %326
577cb93a386Sopenharmony_ci%328 = OpCompositeExtract %v2float %318 1
578cb93a386Sopenharmony_ci%329 = OpCompositeExtract %v2float %323 1
579cb93a386Sopenharmony_ci%330 = OpFOrdEqual %v2bool %328 %329
580cb93a386Sopenharmony_ci%331 = OpAll %bool %330
581cb93a386Sopenharmony_ci%332 = OpLogicalAnd %bool %327 %331
582cb93a386Sopenharmony_ci%333 = OpCompositeExtract %v2float %318 2
583cb93a386Sopenharmony_ci%334 = OpCompositeExtract %v2float %323 2
584cb93a386Sopenharmony_ci%335 = OpFOrdEqual %v2bool %333 %334
585cb93a386Sopenharmony_ci%336 = OpAll %bool %335
586cb93a386Sopenharmony_ci%337 = OpLogicalAnd %bool %332 %336
587cb93a386Sopenharmony_ciOpBranch %317
588cb93a386Sopenharmony_ci%317 = OpLabel
589cb93a386Sopenharmony_ci%338 = OpPhi %bool %false %287 %337 %316
590cb93a386Sopenharmony_ciOpStore %ok %338
591cb93a386Sopenharmony_ci%339 = OpLoad %mat2v4float %m24
592cb93a386Sopenharmony_ci%340 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4
593cb93a386Sopenharmony_ci%341 = OpCompositeConstruct %mat2v4float %340 %340
594cb93a386Sopenharmony_ci%342 = OpCompositeExtract %v4float %339 0
595cb93a386Sopenharmony_ci%343 = OpCompositeExtract %v4float %341 0
596cb93a386Sopenharmony_ci%344 = OpFDiv %v4float %342 %343
597cb93a386Sopenharmony_ci%345 = OpCompositeExtract %v4float %339 1
598cb93a386Sopenharmony_ci%346 = OpCompositeExtract %v4float %341 1
599cb93a386Sopenharmony_ci%347 = OpFDiv %v4float %345 %346
600cb93a386Sopenharmony_ci%348 = OpCompositeConstruct %mat2v4float %344 %347
601cb93a386Sopenharmony_ciOpStore %m24 %348
602cb93a386Sopenharmony_ci%349 = OpLoad %bool %ok
603cb93a386Sopenharmony_ciOpSelectionMerge %351 None
604cb93a386Sopenharmony_ciOpBranchConditional %349 %350 %351
605cb93a386Sopenharmony_ci%350 = OpLabel
606cb93a386Sopenharmony_ci%352 = OpLoad %mat2v4float %m24
607cb93a386Sopenharmony_ci%354 = OpCompositeConstruct %v4float %float_0_75 %float_0 %float_0 %float_0
608cb93a386Sopenharmony_ci%355 = OpCompositeConstruct %v4float %float_0 %float_0_75 %float_0 %float_0
609cb93a386Sopenharmony_ci%356 = OpCompositeConstruct %mat2v4float %354 %355
610cb93a386Sopenharmony_ci%357 = OpCompositeExtract %v4float %352 0
611cb93a386Sopenharmony_ci%358 = OpCompositeExtract %v4float %356 0
612cb93a386Sopenharmony_ci%359 = OpFOrdEqual %v4bool %357 %358
613cb93a386Sopenharmony_ci%360 = OpAll %bool %359
614cb93a386Sopenharmony_ci%361 = OpCompositeExtract %v4float %352 1
615cb93a386Sopenharmony_ci%362 = OpCompositeExtract %v4float %356 1
616cb93a386Sopenharmony_ci%363 = OpFOrdEqual %v4bool %361 %362
617cb93a386Sopenharmony_ci%364 = OpAll %bool %363
618cb93a386Sopenharmony_ci%365 = OpLogicalAnd %bool %360 %364
619cb93a386Sopenharmony_ciOpBranch %351
620cb93a386Sopenharmony_ci%351 = OpLabel
621cb93a386Sopenharmony_ci%366 = OpPhi %bool %false %317 %365 %350
622cb93a386Sopenharmony_ciOpStore %ok %366
623cb93a386Sopenharmony_ci%367 = OpLoad %bool %ok
624cb93a386Sopenharmony_ciOpReturnValue %367
625cb93a386Sopenharmony_ciOpFunctionEnd
626cb93a386Sopenharmony_ci%main = OpFunction %v4float None %368
627cb93a386Sopenharmony_ci%369 = OpFunctionParameter %_ptr_Function_v2float
628cb93a386Sopenharmony_ci%370 = OpLabel
629cb93a386Sopenharmony_ci%_0_ok = OpVariable %_ptr_Function_bool Function
630cb93a386Sopenharmony_ci%_1_m23 = OpVariable %_ptr_Function_mat2v3float Function
631cb93a386Sopenharmony_ci%_2_m24 = OpVariable %_ptr_Function_mat2v4float Function
632cb93a386Sopenharmony_ci%_3_m32 = OpVariable %_ptr_Function_mat3v2float Function
633cb93a386Sopenharmony_ci%_4_m34 = OpVariable %_ptr_Function_mat3v4float Function
634cb93a386Sopenharmony_ci%_5_m42 = OpVariable %_ptr_Function_mat4v2float Function
635cb93a386Sopenharmony_ci%_6_m43 = OpVariable %_ptr_Function_mat4v3float Function
636cb93a386Sopenharmony_ci%_7_m22 = OpVariable %_ptr_Function_mat2v2float Function
637cb93a386Sopenharmony_ci%_8_m33 = OpVariable %_ptr_Function_mat3v3float Function
638cb93a386Sopenharmony_ci%683 = OpVariable %_ptr_Function_v4float Function
639cb93a386Sopenharmony_ciOpStore %_0_ok %true
640cb93a386Sopenharmony_ci%374 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
641cb93a386Sopenharmony_ci%375 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
642cb93a386Sopenharmony_ci%373 = OpCompositeConstruct %mat2v3float %374 %375
643cb93a386Sopenharmony_ciOpStore %_1_m23 %373
644cb93a386Sopenharmony_ci%376 = OpLoad %bool %_0_ok
645cb93a386Sopenharmony_ciOpSelectionMerge %378 None
646cb93a386Sopenharmony_ciOpBranchConditional %376 %377 %378
647cb93a386Sopenharmony_ci%377 = OpLabel
648cb93a386Sopenharmony_ci%379 = OpLoad %mat2v3float %_1_m23
649cb93a386Sopenharmony_ci%380 = OpCompositeConstruct %v3float %float_2 %float_0 %float_0
650cb93a386Sopenharmony_ci%381 = OpCompositeConstruct %v3float %float_0 %float_2 %float_0
651cb93a386Sopenharmony_ci%382 = OpCompositeConstruct %mat2v3float %380 %381
652cb93a386Sopenharmony_ci%383 = OpCompositeExtract %v3float %379 0
653cb93a386Sopenharmony_ci%384 = OpCompositeExtract %v3float %382 0
654cb93a386Sopenharmony_ci%385 = OpFOrdEqual %v3bool %383 %384
655cb93a386Sopenharmony_ci%386 = OpAll %bool %385
656cb93a386Sopenharmony_ci%387 = OpCompositeExtract %v3float %379 1
657cb93a386Sopenharmony_ci%388 = OpCompositeExtract %v3float %382 1
658cb93a386Sopenharmony_ci%389 = OpFOrdEqual %v3bool %387 %388
659cb93a386Sopenharmony_ci%390 = OpAll %bool %389
660cb93a386Sopenharmony_ci%391 = OpLogicalAnd %bool %386 %390
661cb93a386Sopenharmony_ciOpBranch %378
662cb93a386Sopenharmony_ci%378 = OpLabel
663cb93a386Sopenharmony_ci%392 = OpPhi %bool %false %370 %391 %377
664cb93a386Sopenharmony_ciOpStore %_0_ok %392
665cb93a386Sopenharmony_ci%395 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0
666cb93a386Sopenharmony_ci%396 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0
667cb93a386Sopenharmony_ci%394 = OpCompositeConstruct %mat2v4float %395 %396
668cb93a386Sopenharmony_ciOpStore %_2_m24 %394
669cb93a386Sopenharmony_ci%397 = OpLoad %bool %_0_ok
670cb93a386Sopenharmony_ciOpSelectionMerge %399 None
671cb93a386Sopenharmony_ciOpBranchConditional %397 %398 %399
672cb93a386Sopenharmony_ci%398 = OpLabel
673cb93a386Sopenharmony_ci%400 = OpLoad %mat2v4float %_2_m24
674cb93a386Sopenharmony_ci%401 = OpCompositeConstruct %v4float %float_3 %float_0 %float_0 %float_0
675cb93a386Sopenharmony_ci%402 = OpCompositeConstruct %v4float %float_0 %float_3 %float_0 %float_0
676cb93a386Sopenharmony_ci%403 = OpCompositeConstruct %mat2v4float %401 %402
677cb93a386Sopenharmony_ci%404 = OpCompositeExtract %v4float %400 0
678cb93a386Sopenharmony_ci%405 = OpCompositeExtract %v4float %403 0
679cb93a386Sopenharmony_ci%406 = OpFOrdEqual %v4bool %404 %405
680cb93a386Sopenharmony_ci%407 = OpAll %bool %406
681cb93a386Sopenharmony_ci%408 = OpCompositeExtract %v4float %400 1
682cb93a386Sopenharmony_ci%409 = OpCompositeExtract %v4float %403 1
683cb93a386Sopenharmony_ci%410 = OpFOrdEqual %v4bool %408 %409
684cb93a386Sopenharmony_ci%411 = OpAll %bool %410
685cb93a386Sopenharmony_ci%412 = OpLogicalAnd %bool %407 %411
686cb93a386Sopenharmony_ciOpBranch %399
687cb93a386Sopenharmony_ci%399 = OpLabel
688cb93a386Sopenharmony_ci%413 = OpPhi %bool %false %378 %412 %398
689cb93a386Sopenharmony_ciOpStore %_0_ok %413
690cb93a386Sopenharmony_ci%416 = OpCompositeConstruct %v2float %float_4 %float_0
691cb93a386Sopenharmony_ci%417 = OpCompositeConstruct %v2float %float_0 %float_4
692cb93a386Sopenharmony_ci%418 = OpCompositeConstruct %v2float %float_0 %float_0
693cb93a386Sopenharmony_ci%415 = OpCompositeConstruct %mat3v2float %416 %417 %418
694cb93a386Sopenharmony_ciOpStore %_3_m32 %415
695cb93a386Sopenharmony_ci%419 = OpLoad %bool %_0_ok
696cb93a386Sopenharmony_ciOpSelectionMerge %421 None
697cb93a386Sopenharmony_ciOpBranchConditional %419 %420 %421
698cb93a386Sopenharmony_ci%420 = OpLabel
699cb93a386Sopenharmony_ci%422 = OpLoad %mat3v2float %_3_m32
700cb93a386Sopenharmony_ci%423 = OpCompositeConstruct %v2float %float_4 %float_0
701cb93a386Sopenharmony_ci%424 = OpCompositeConstruct %v2float %float_0 %float_4
702cb93a386Sopenharmony_ci%425 = OpCompositeConstruct %v2float %float_0 %float_0
703cb93a386Sopenharmony_ci%426 = OpCompositeConstruct %mat3v2float %423 %424 %425
704cb93a386Sopenharmony_ci%427 = OpCompositeExtract %v2float %422 0
705cb93a386Sopenharmony_ci%428 = OpCompositeExtract %v2float %426 0
706cb93a386Sopenharmony_ci%429 = OpFOrdEqual %v2bool %427 %428
707cb93a386Sopenharmony_ci%430 = OpAll %bool %429
708cb93a386Sopenharmony_ci%431 = OpCompositeExtract %v2float %422 1
709cb93a386Sopenharmony_ci%432 = OpCompositeExtract %v2float %426 1
710cb93a386Sopenharmony_ci%433 = OpFOrdEqual %v2bool %431 %432
711cb93a386Sopenharmony_ci%434 = OpAll %bool %433
712cb93a386Sopenharmony_ci%435 = OpLogicalAnd %bool %430 %434
713cb93a386Sopenharmony_ci%436 = OpCompositeExtract %v2float %422 2
714cb93a386Sopenharmony_ci%437 = OpCompositeExtract %v2float %426 2
715cb93a386Sopenharmony_ci%438 = OpFOrdEqual %v2bool %436 %437
716cb93a386Sopenharmony_ci%439 = OpAll %bool %438
717cb93a386Sopenharmony_ci%440 = OpLogicalAnd %bool %435 %439
718cb93a386Sopenharmony_ciOpBranch %421
719cb93a386Sopenharmony_ci%421 = OpLabel
720cb93a386Sopenharmony_ci%441 = OpPhi %bool %false %399 %440 %420
721cb93a386Sopenharmony_ciOpStore %_0_ok %441
722cb93a386Sopenharmony_ci%444 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0
723cb93a386Sopenharmony_ci%445 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0
724cb93a386Sopenharmony_ci%446 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0
725cb93a386Sopenharmony_ci%443 = OpCompositeConstruct %mat3v4float %444 %445 %446
726cb93a386Sopenharmony_ciOpStore %_4_m34 %443
727cb93a386Sopenharmony_ci%447 = OpLoad %bool %_0_ok
728cb93a386Sopenharmony_ciOpSelectionMerge %449 None
729cb93a386Sopenharmony_ciOpBranchConditional %447 %448 %449
730cb93a386Sopenharmony_ci%448 = OpLabel
731cb93a386Sopenharmony_ci%450 = OpLoad %mat3v4float %_4_m34
732cb93a386Sopenharmony_ci%451 = OpCompositeConstruct %v4float %float_5 %float_0 %float_0 %float_0
733cb93a386Sopenharmony_ci%452 = OpCompositeConstruct %v4float %float_0 %float_5 %float_0 %float_0
734cb93a386Sopenharmony_ci%453 = OpCompositeConstruct %v4float %float_0 %float_0 %float_5 %float_0
735cb93a386Sopenharmony_ci%454 = OpCompositeConstruct %mat3v4float %451 %452 %453
736cb93a386Sopenharmony_ci%455 = OpCompositeExtract %v4float %450 0
737cb93a386Sopenharmony_ci%456 = OpCompositeExtract %v4float %454 0
738cb93a386Sopenharmony_ci%457 = OpFOrdEqual %v4bool %455 %456
739cb93a386Sopenharmony_ci%458 = OpAll %bool %457
740cb93a386Sopenharmony_ci%459 = OpCompositeExtract %v4float %450 1
741cb93a386Sopenharmony_ci%460 = OpCompositeExtract %v4float %454 1
742cb93a386Sopenharmony_ci%461 = OpFOrdEqual %v4bool %459 %460
743cb93a386Sopenharmony_ci%462 = OpAll %bool %461
744cb93a386Sopenharmony_ci%463 = OpLogicalAnd %bool %458 %462
745cb93a386Sopenharmony_ci%464 = OpCompositeExtract %v4float %450 2
746cb93a386Sopenharmony_ci%465 = OpCompositeExtract %v4float %454 2
747cb93a386Sopenharmony_ci%466 = OpFOrdEqual %v4bool %464 %465
748cb93a386Sopenharmony_ci%467 = OpAll %bool %466
749cb93a386Sopenharmony_ci%468 = OpLogicalAnd %bool %463 %467
750cb93a386Sopenharmony_ciOpBranch %449
751cb93a386Sopenharmony_ci%449 = OpLabel
752cb93a386Sopenharmony_ci%469 = OpPhi %bool %false %421 %468 %448
753cb93a386Sopenharmony_ciOpStore %_0_ok %469
754cb93a386Sopenharmony_ci%472 = OpCompositeConstruct %v2float %float_6 %float_0
755cb93a386Sopenharmony_ci%473 = OpCompositeConstruct %v2float %float_0 %float_6
756cb93a386Sopenharmony_ci%474 = OpCompositeConstruct %v2float %float_0 %float_0
757cb93a386Sopenharmony_ci%475 = OpCompositeConstruct %v2float %float_0 %float_0
758cb93a386Sopenharmony_ci%471 = OpCompositeConstruct %mat4v2float %472 %473 %474 %475
759cb93a386Sopenharmony_ciOpStore %_5_m42 %471
760cb93a386Sopenharmony_ci%476 = OpLoad %bool %_0_ok
761cb93a386Sopenharmony_ciOpSelectionMerge %478 None
762cb93a386Sopenharmony_ciOpBranchConditional %476 %477 %478
763cb93a386Sopenharmony_ci%477 = OpLabel
764cb93a386Sopenharmony_ci%479 = OpLoad %mat4v2float %_5_m42
765cb93a386Sopenharmony_ci%480 = OpCompositeConstruct %v2float %float_6 %float_0
766cb93a386Sopenharmony_ci%481 = OpCompositeConstruct %v2float %float_0 %float_6
767cb93a386Sopenharmony_ci%482 = OpCompositeConstruct %v2float %float_0 %float_0
768cb93a386Sopenharmony_ci%483 = OpCompositeConstruct %v2float %float_0 %float_0
769cb93a386Sopenharmony_ci%484 = OpCompositeConstruct %mat4v2float %480 %481 %482 %483
770cb93a386Sopenharmony_ci%485 = OpCompositeExtract %v2float %479 0
771cb93a386Sopenharmony_ci%486 = OpCompositeExtract %v2float %484 0
772cb93a386Sopenharmony_ci%487 = OpFOrdEqual %v2bool %485 %486
773cb93a386Sopenharmony_ci%488 = OpAll %bool %487
774cb93a386Sopenharmony_ci%489 = OpCompositeExtract %v2float %479 1
775cb93a386Sopenharmony_ci%490 = OpCompositeExtract %v2float %484 1
776cb93a386Sopenharmony_ci%491 = OpFOrdEqual %v2bool %489 %490
777cb93a386Sopenharmony_ci%492 = OpAll %bool %491
778cb93a386Sopenharmony_ci%493 = OpLogicalAnd %bool %488 %492
779cb93a386Sopenharmony_ci%494 = OpCompositeExtract %v2float %479 2
780cb93a386Sopenharmony_ci%495 = OpCompositeExtract %v2float %484 2
781cb93a386Sopenharmony_ci%496 = OpFOrdEqual %v2bool %494 %495
782cb93a386Sopenharmony_ci%497 = OpAll %bool %496
783cb93a386Sopenharmony_ci%498 = OpLogicalAnd %bool %493 %497
784cb93a386Sopenharmony_ci%499 = OpCompositeExtract %v2float %479 3
785cb93a386Sopenharmony_ci%500 = OpCompositeExtract %v2float %484 3
786cb93a386Sopenharmony_ci%501 = OpFOrdEqual %v2bool %499 %500
787cb93a386Sopenharmony_ci%502 = OpAll %bool %501
788cb93a386Sopenharmony_ci%503 = OpLogicalAnd %bool %498 %502
789cb93a386Sopenharmony_ciOpBranch %478
790cb93a386Sopenharmony_ci%478 = OpLabel
791cb93a386Sopenharmony_ci%504 = OpPhi %bool %false %449 %503 %477
792cb93a386Sopenharmony_ciOpStore %_0_ok %504
793cb93a386Sopenharmony_ci%507 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0
794cb93a386Sopenharmony_ci%508 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0
795cb93a386Sopenharmony_ci%509 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7
796cb93a386Sopenharmony_ci%510 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0
797cb93a386Sopenharmony_ci%506 = OpCompositeConstruct %mat4v3float %507 %508 %509 %510
798cb93a386Sopenharmony_ciOpStore %_6_m43 %506
799cb93a386Sopenharmony_ci%511 = OpLoad %bool %_0_ok
800cb93a386Sopenharmony_ciOpSelectionMerge %513 None
801cb93a386Sopenharmony_ciOpBranchConditional %511 %512 %513
802cb93a386Sopenharmony_ci%512 = OpLabel
803cb93a386Sopenharmony_ci%514 = OpLoad %mat4v3float %_6_m43
804cb93a386Sopenharmony_ci%515 = OpCompositeConstruct %v3float %float_7 %float_0 %float_0
805cb93a386Sopenharmony_ci%516 = OpCompositeConstruct %v3float %float_0 %float_7 %float_0
806cb93a386Sopenharmony_ci%517 = OpCompositeConstruct %v3float %float_0 %float_0 %float_7
807cb93a386Sopenharmony_ci%518 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0
808cb93a386Sopenharmony_ci%519 = OpCompositeConstruct %mat4v3float %515 %516 %517 %518
809cb93a386Sopenharmony_ci%520 = OpCompositeExtract %v3float %514 0
810cb93a386Sopenharmony_ci%521 = OpCompositeExtract %v3float %519 0
811cb93a386Sopenharmony_ci%522 = OpFOrdEqual %v3bool %520 %521
812cb93a386Sopenharmony_ci%523 = OpAll %bool %522
813cb93a386Sopenharmony_ci%524 = OpCompositeExtract %v3float %514 1
814cb93a386Sopenharmony_ci%525 = OpCompositeExtract %v3float %519 1
815cb93a386Sopenharmony_ci%526 = OpFOrdEqual %v3bool %524 %525
816cb93a386Sopenharmony_ci%527 = OpAll %bool %526
817cb93a386Sopenharmony_ci%528 = OpLogicalAnd %bool %523 %527
818cb93a386Sopenharmony_ci%529 = OpCompositeExtract %v3float %514 2
819cb93a386Sopenharmony_ci%530 = OpCompositeExtract %v3float %519 2
820cb93a386Sopenharmony_ci%531 = OpFOrdEqual %v3bool %529 %530
821cb93a386Sopenharmony_ci%532 = OpAll %bool %531
822cb93a386Sopenharmony_ci%533 = OpLogicalAnd %bool %528 %532
823cb93a386Sopenharmony_ci%534 = OpCompositeExtract %v3float %514 3
824cb93a386Sopenharmony_ci%535 = OpCompositeExtract %v3float %519 3
825cb93a386Sopenharmony_ci%536 = OpFOrdEqual %v3bool %534 %535
826cb93a386Sopenharmony_ci%537 = OpAll %bool %536
827cb93a386Sopenharmony_ci%538 = OpLogicalAnd %bool %533 %537
828cb93a386Sopenharmony_ciOpBranch %513
829cb93a386Sopenharmony_ci%513 = OpLabel
830cb93a386Sopenharmony_ci%539 = OpPhi %bool %false %478 %538 %512
831cb93a386Sopenharmony_ciOpStore %_0_ok %539
832cb93a386Sopenharmony_ci%541 = OpLoad %mat3v2float %_3_m32
833cb93a386Sopenharmony_ci%542 = OpLoad %mat2v3float %_1_m23
834cb93a386Sopenharmony_ci%543 = OpMatrixTimesMatrix %mat2v2float %541 %542
835cb93a386Sopenharmony_ciOpStore %_7_m22 %543
836cb93a386Sopenharmony_ci%544 = OpLoad %bool %_0_ok
837cb93a386Sopenharmony_ciOpSelectionMerge %546 None
838cb93a386Sopenharmony_ciOpBranchConditional %544 %545 %546
839cb93a386Sopenharmony_ci%545 = OpLabel
840cb93a386Sopenharmony_ci%547 = OpLoad %mat2v2float %_7_m22
841cb93a386Sopenharmony_ci%549 = OpCompositeConstruct %v2float %float_8 %float_0
842cb93a386Sopenharmony_ci%550 = OpCompositeConstruct %v2float %float_0 %float_8
843cb93a386Sopenharmony_ci%548 = OpCompositeConstruct %mat2v2float %549 %550
844cb93a386Sopenharmony_ci%551 = OpCompositeExtract %v2float %547 0
845cb93a386Sopenharmony_ci%552 = OpCompositeExtract %v2float %548 0
846cb93a386Sopenharmony_ci%553 = OpFOrdEqual %v2bool %551 %552
847cb93a386Sopenharmony_ci%554 = OpAll %bool %553
848cb93a386Sopenharmony_ci%555 = OpCompositeExtract %v2float %547 1
849cb93a386Sopenharmony_ci%556 = OpCompositeExtract %v2float %548 1
850cb93a386Sopenharmony_ci%557 = OpFOrdEqual %v2bool %555 %556
851cb93a386Sopenharmony_ci%558 = OpAll %bool %557
852cb93a386Sopenharmony_ci%559 = OpLogicalAnd %bool %554 %558
853cb93a386Sopenharmony_ciOpBranch %546
854cb93a386Sopenharmony_ci%546 = OpLabel
855cb93a386Sopenharmony_ci%560 = OpPhi %bool %false %513 %559 %545
856cb93a386Sopenharmony_ciOpStore %_0_ok %560
857cb93a386Sopenharmony_ci%562 = OpLoad %mat4v3float %_6_m43
858cb93a386Sopenharmony_ci%563 = OpLoad %mat3v4float %_4_m34
859cb93a386Sopenharmony_ci%564 = OpMatrixTimesMatrix %mat3v3float %562 %563
860cb93a386Sopenharmony_ciOpStore %_8_m33 %564
861cb93a386Sopenharmony_ci%565 = OpLoad %bool %_0_ok
862cb93a386Sopenharmony_ciOpSelectionMerge %567 None
863cb93a386Sopenharmony_ciOpBranchConditional %565 %566 %567
864cb93a386Sopenharmony_ci%566 = OpLabel
865cb93a386Sopenharmony_ci%568 = OpLoad %mat3v3float %_8_m33
866cb93a386Sopenharmony_ci%570 = OpCompositeConstruct %v3float %float_35 %float_0 %float_0
867cb93a386Sopenharmony_ci%571 = OpCompositeConstruct %v3float %float_0 %float_35 %float_0
868cb93a386Sopenharmony_ci%572 = OpCompositeConstruct %v3float %float_0 %float_0 %float_35
869cb93a386Sopenharmony_ci%569 = OpCompositeConstruct %mat3v3float %570 %571 %572
870cb93a386Sopenharmony_ci%573 = OpCompositeExtract %v3float %568 0
871cb93a386Sopenharmony_ci%574 = OpCompositeExtract %v3float %569 0
872cb93a386Sopenharmony_ci%575 = OpFOrdEqual %v3bool %573 %574
873cb93a386Sopenharmony_ci%576 = OpAll %bool %575
874cb93a386Sopenharmony_ci%577 = OpCompositeExtract %v3float %568 1
875cb93a386Sopenharmony_ci%578 = OpCompositeExtract %v3float %569 1
876cb93a386Sopenharmony_ci%579 = OpFOrdEqual %v3bool %577 %578
877cb93a386Sopenharmony_ci%580 = OpAll %bool %579
878cb93a386Sopenharmony_ci%581 = OpLogicalAnd %bool %576 %580
879cb93a386Sopenharmony_ci%582 = OpCompositeExtract %v3float %568 2
880cb93a386Sopenharmony_ci%583 = OpCompositeExtract %v3float %569 2
881cb93a386Sopenharmony_ci%584 = OpFOrdEqual %v3bool %582 %583
882cb93a386Sopenharmony_ci%585 = OpAll %bool %584
883cb93a386Sopenharmony_ci%586 = OpLogicalAnd %bool %581 %585
884cb93a386Sopenharmony_ciOpBranch %567
885cb93a386Sopenharmony_ci%567 = OpLabel
886cb93a386Sopenharmony_ci%587 = OpPhi %bool %false %546 %586 %566
887cb93a386Sopenharmony_ciOpStore %_0_ok %587
888cb93a386Sopenharmony_ci%588 = OpLoad %mat2v3float %_1_m23
889cb93a386Sopenharmony_ci%589 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1
890cb93a386Sopenharmony_ci%590 = OpCompositeConstruct %mat2v3float %589 %589
891cb93a386Sopenharmony_ci%591 = OpCompositeExtract %v3float %588 0
892cb93a386Sopenharmony_ci%592 = OpCompositeExtract %v3float %590 0
893cb93a386Sopenharmony_ci%593 = OpFAdd %v3float %591 %592
894cb93a386Sopenharmony_ci%594 = OpCompositeExtract %v3float %588 1
895cb93a386Sopenharmony_ci%595 = OpCompositeExtract %v3float %590 1
896cb93a386Sopenharmony_ci%596 = OpFAdd %v3float %594 %595
897cb93a386Sopenharmony_ci%597 = OpCompositeConstruct %mat2v3float %593 %596
898cb93a386Sopenharmony_ciOpStore %_1_m23 %597
899cb93a386Sopenharmony_ci%598 = OpLoad %bool %_0_ok
900cb93a386Sopenharmony_ciOpSelectionMerge %600 None
901cb93a386Sopenharmony_ciOpBranchConditional %598 %599 %600
902cb93a386Sopenharmony_ci%599 = OpLabel
903cb93a386Sopenharmony_ci%601 = OpLoad %mat2v3float %_1_m23
904cb93a386Sopenharmony_ci%602 = OpCompositeConstruct %v3float %float_3 %float_1 %float_1
905cb93a386Sopenharmony_ci%603 = OpCompositeConstruct %v3float %float_1 %float_3 %float_1
906cb93a386Sopenharmony_ci%604 = OpCompositeConstruct %mat2v3float %602 %603
907cb93a386Sopenharmony_ci%605 = OpCompositeExtract %v3float %601 0
908cb93a386Sopenharmony_ci%606 = OpCompositeExtract %v3float %604 0
909cb93a386Sopenharmony_ci%607 = OpFOrdEqual %v3bool %605 %606
910cb93a386Sopenharmony_ci%608 = OpAll %bool %607
911cb93a386Sopenharmony_ci%609 = OpCompositeExtract %v3float %601 1
912cb93a386Sopenharmony_ci%610 = OpCompositeExtract %v3float %604 1
913cb93a386Sopenharmony_ci%611 = OpFOrdEqual %v3bool %609 %610
914cb93a386Sopenharmony_ci%612 = OpAll %bool %611
915cb93a386Sopenharmony_ci%613 = OpLogicalAnd %bool %608 %612
916cb93a386Sopenharmony_ciOpBranch %600
917cb93a386Sopenharmony_ci%600 = OpLabel
918cb93a386Sopenharmony_ci%614 = OpPhi %bool %false %567 %613 %599
919cb93a386Sopenharmony_ciOpStore %_0_ok %614
920cb93a386Sopenharmony_ci%615 = OpLoad %mat3v2float %_3_m32
921cb93a386Sopenharmony_ci%616 = OpCompositeConstruct %v2float %float_2 %float_2
922cb93a386Sopenharmony_ci%617 = OpCompositeConstruct %mat3v2float %616 %616 %616
923cb93a386Sopenharmony_ci%618 = OpCompositeExtract %v2float %615 0
924cb93a386Sopenharmony_ci%619 = OpCompositeExtract %v2float %617 0
925cb93a386Sopenharmony_ci%620 = OpFSub %v2float %618 %619
926cb93a386Sopenharmony_ci%621 = OpCompositeExtract %v2float %615 1
927cb93a386Sopenharmony_ci%622 = OpCompositeExtract %v2float %617 1
928cb93a386Sopenharmony_ci%623 = OpFSub %v2float %621 %622
929cb93a386Sopenharmony_ci%624 = OpCompositeExtract %v2float %615 2
930cb93a386Sopenharmony_ci%625 = OpCompositeExtract %v2float %617 2
931cb93a386Sopenharmony_ci%626 = OpFSub %v2float %624 %625
932cb93a386Sopenharmony_ci%627 = OpCompositeConstruct %mat3v2float %620 %623 %626
933cb93a386Sopenharmony_ciOpStore %_3_m32 %627
934cb93a386Sopenharmony_ci%628 = OpLoad %bool %_0_ok
935cb93a386Sopenharmony_ciOpSelectionMerge %630 None
936cb93a386Sopenharmony_ciOpBranchConditional %628 %629 %630
937cb93a386Sopenharmony_ci%629 = OpLabel
938cb93a386Sopenharmony_ci%631 = OpLoad %mat3v2float %_3_m32
939cb93a386Sopenharmony_ci%632 = OpCompositeConstruct %v2float %float_2 %float_n2
940cb93a386Sopenharmony_ci%633 = OpCompositeConstruct %v2float %float_n2 %float_2
941cb93a386Sopenharmony_ci%634 = OpCompositeConstruct %v2float %float_n2 %float_n2
942cb93a386Sopenharmony_ci%635 = OpCompositeConstruct %mat3v2float %632 %633 %634
943cb93a386Sopenharmony_ci%636 = OpCompositeExtract %v2float %631 0
944cb93a386Sopenharmony_ci%637 = OpCompositeExtract %v2float %635 0
945cb93a386Sopenharmony_ci%638 = OpFOrdEqual %v2bool %636 %637
946cb93a386Sopenharmony_ci%639 = OpAll %bool %638
947cb93a386Sopenharmony_ci%640 = OpCompositeExtract %v2float %631 1
948cb93a386Sopenharmony_ci%641 = OpCompositeExtract %v2float %635 1
949cb93a386Sopenharmony_ci%642 = OpFOrdEqual %v2bool %640 %641
950cb93a386Sopenharmony_ci%643 = OpAll %bool %642
951cb93a386Sopenharmony_ci%644 = OpLogicalAnd %bool %639 %643
952cb93a386Sopenharmony_ci%645 = OpCompositeExtract %v2float %631 2
953cb93a386Sopenharmony_ci%646 = OpCompositeExtract %v2float %635 2
954cb93a386Sopenharmony_ci%647 = OpFOrdEqual %v2bool %645 %646
955cb93a386Sopenharmony_ci%648 = OpAll %bool %647
956cb93a386Sopenharmony_ci%649 = OpLogicalAnd %bool %644 %648
957cb93a386Sopenharmony_ciOpBranch %630
958cb93a386Sopenharmony_ci%630 = OpLabel
959cb93a386Sopenharmony_ci%650 = OpPhi %bool %false %600 %649 %629
960cb93a386Sopenharmony_ciOpStore %_0_ok %650
961cb93a386Sopenharmony_ci%651 = OpLoad %mat2v4float %_2_m24
962cb93a386Sopenharmony_ci%652 = OpCompositeConstruct %v4float %float_4 %float_4 %float_4 %float_4
963cb93a386Sopenharmony_ci%653 = OpCompositeConstruct %mat2v4float %652 %652
964cb93a386Sopenharmony_ci%654 = OpCompositeExtract %v4float %651 0
965cb93a386Sopenharmony_ci%655 = OpCompositeExtract %v4float %653 0
966cb93a386Sopenharmony_ci%656 = OpFDiv %v4float %654 %655
967cb93a386Sopenharmony_ci%657 = OpCompositeExtract %v4float %651 1
968cb93a386Sopenharmony_ci%658 = OpCompositeExtract %v4float %653 1
969cb93a386Sopenharmony_ci%659 = OpFDiv %v4float %657 %658
970cb93a386Sopenharmony_ci%660 = OpCompositeConstruct %mat2v4float %656 %659
971cb93a386Sopenharmony_ciOpStore %_2_m24 %660
972cb93a386Sopenharmony_ci%661 = OpLoad %bool %_0_ok
973cb93a386Sopenharmony_ciOpSelectionMerge %663 None
974cb93a386Sopenharmony_ciOpBranchConditional %661 %662 %663
975cb93a386Sopenharmony_ci%662 = OpLabel
976cb93a386Sopenharmony_ci%664 = OpLoad %mat2v4float %_2_m24
977cb93a386Sopenharmony_ci%665 = OpCompositeConstruct %v4float %float_0_75 %float_0 %float_0 %float_0
978cb93a386Sopenharmony_ci%666 = OpCompositeConstruct %v4float %float_0 %float_0_75 %float_0 %float_0
979cb93a386Sopenharmony_ci%667 = OpCompositeConstruct %mat2v4float %665 %666
980cb93a386Sopenharmony_ci%668 = OpCompositeExtract %v4float %664 0
981cb93a386Sopenharmony_ci%669 = OpCompositeExtract %v4float %667 0
982cb93a386Sopenharmony_ci%670 = OpFOrdEqual %v4bool %668 %669
983cb93a386Sopenharmony_ci%671 = OpAll %bool %670
984cb93a386Sopenharmony_ci%672 = OpCompositeExtract %v4float %664 1
985cb93a386Sopenharmony_ci%673 = OpCompositeExtract %v4float %667 1
986cb93a386Sopenharmony_ci%674 = OpFOrdEqual %v4bool %672 %673
987cb93a386Sopenharmony_ci%675 = OpAll %bool %674
988cb93a386Sopenharmony_ci%676 = OpLogicalAnd %bool %671 %675
989cb93a386Sopenharmony_ciOpBranch %663
990cb93a386Sopenharmony_ci%663 = OpLabel
991cb93a386Sopenharmony_ci%677 = OpPhi %bool %false %630 %676 %662
992cb93a386Sopenharmony_ciOpStore %_0_ok %677
993cb93a386Sopenharmony_ci%678 = OpLoad %bool %_0_ok
994cb93a386Sopenharmony_ciOpSelectionMerge %680 None
995cb93a386Sopenharmony_ciOpBranchConditional %678 %679 %680
996cb93a386Sopenharmony_ci%679 = OpLabel
997cb93a386Sopenharmony_ci%681 = OpFunctionCall %bool %test_half_b
998cb93a386Sopenharmony_ciOpBranch %680
999cb93a386Sopenharmony_ci%680 = OpLabel
1000cb93a386Sopenharmony_ci%682 = OpPhi %bool %false %663 %681 %679
1001cb93a386Sopenharmony_ciOpSelectionMerge %687 None
1002cb93a386Sopenharmony_ciOpBranchConditional %682 %685 %686
1003cb93a386Sopenharmony_ci%685 = OpLabel
1004cb93a386Sopenharmony_ci%688 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
1005cb93a386Sopenharmony_ci%692 = OpLoad %v4float %688
1006cb93a386Sopenharmony_ciOpStore %683 %692
1007cb93a386Sopenharmony_ciOpBranch %687
1008cb93a386Sopenharmony_ci%686 = OpLabel
1009cb93a386Sopenharmony_ci%693 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
1010cb93a386Sopenharmony_ci%695 = OpLoad %v4float %693
1011cb93a386Sopenharmony_ciOpStore %683 %695
1012cb93a386Sopenharmony_ciOpBranch %687
1013cb93a386Sopenharmony_ci%687 = OpLabel
1014cb93a386Sopenharmony_ci%696 = OpLoad %v4float %683
1015cb93a386Sopenharmony_ciOpReturnValue %696
1016cb93a386Sopenharmony_ciOpFunctionEnd
1017