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