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