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