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