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