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