2 %1 = OpExtInstImport "GLSL.std.450"
3 OpMemoryModel Logical GLSL450
4 OpEntryPoint Fragment %_entrypoint_v "_entrypoint" %sk_FragColor %sk_Clockwise
5 OpExecutionMode %_entrypoint_v OriginUpperLeft
6 OpName %sk_FragColor "sk_FragColor"
7 OpName %sk_Clockwise "sk_Clockwise"
8 OpName %_UniformBuffer "_UniformBuffer"
9 OpMemberName %_UniformBuffer 0 "colorGreen"
10 OpMemberName %_UniformBuffer 1 "colorRed"
11 OpName %_entrypoint_v "_entrypoint_v"
12 OpName %out_params_are_distinct_bhh "out_params_are_distinct_bhh"
15 OpDecorate %sk_FragColor RelaxedPrecision
16 OpDecorate %sk_FragColor Location 0
17 OpDecorate %sk_FragColor Index 0
18 OpDecorate %sk_Clockwise BuiltIn FrontFacing
19 OpMemberDecorate %_UniformBuffer 0 Offset 0
20 OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
21 OpMemberDecorate %_UniformBuffer 1 Offset 16
22 OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
23 OpDecorate %_UniformBuffer Block
24 OpDecorate %11 Binding 0
25 OpDecorate %11 DescriptorSet 0
26 OpDecorate %x RelaxedPrecision
27 OpDecorate %40 RelaxedPrecision
28 OpDecorate %41 RelaxedPrecision
29 OpDecorate %43 RelaxedPrecision
30 OpDecorate %44 RelaxedPrecision
31 OpDecorate %54 RelaxedPrecision
32 OpDecorate %57 RelaxedPrecision
33 OpDecorate %58 RelaxedPrecision
34 %float = OpTypeFloat 32
35 %v4float = OpTypeVector %float 4
36 %_ptr_Output_v4float = OpTypePointer Output %v4float
37 %sk_FragColor = OpVariable %_ptr_Output_v4float Output
39 %_ptr_Input_bool = OpTypePointer Input %bool
40 %sk_Clockwise = OpVariable %_ptr_Input_bool Input
41 %_UniformBuffer = OpTypeStruct %v4float %v4float
42 %_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
43 %11 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
45 %16 = OpTypeFunction %void
46 %float_0 = OpConstant %float 0
47 %v2float = OpTypeVector %float 2
48 %20 = OpConstantComposite %v2float %float_0 %float_0
49 %_ptr_Function_v2float = OpTypePointer Function %v2float
50 %_ptr_Function_float = OpTypePointer Function %float
51 %25 = OpTypeFunction %bool %_ptr_Function_float %_ptr_Function_float
52 %float_1 = OpConstant %float 1
53 %float_2 = OpConstant %float 2
54 %false = OpConstantFalse %bool
55 %true = OpConstantTrue %bool
56 %36 = OpTypeFunction %v4float %_ptr_Function_v2float
57 %_ptr_Function_v4float = OpTypePointer Function %v4float
58 %_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
60 %int_0 = OpConstant %int 0
61 %int_1 = OpConstant %int 1
62 %_entrypoint_v = OpFunction %void None %16
64 %21 = OpVariable %_ptr_Function_v2float Function
66 %23 = OpFunctionCall %v4float %main %21
67 OpStore %sk_FragColor %23
70 %out_params_are_distinct_bhh = OpFunction %bool None %25
71 %26 = OpFunctionParameter %_ptr_Function_float
72 %27 = OpFunctionParameter %_ptr_Function_float
76 OpSelectionMerge %34 None
77 OpBranchConditional %true %33 %34
81 %35 = OpPhi %bool %false %28 %true %33
84 %main = OpFunction %v4float None %36
85 %37 = OpFunctionParameter %_ptr_Function_v2float
87 %x = OpVariable %_ptr_Function_float Function
88 %40 = OpVariable %_ptr_Function_float Function
89 %41 = OpVariable %_ptr_Function_float Function
90 %45 = OpVariable %_ptr_Function_v4float Function
92 %42 = OpFunctionCall %bool %out_params_are_distinct_bhh %40 %41
93 %43 = OpLoad %float %40
95 %44 = OpLoad %float %41
97 OpSelectionMerge %49 None
98 OpBranchConditional %42 %47 %48
100 %50 = OpAccessChain %_ptr_Uniform_v4float %11 %int_0
101 %54 = OpLoad %v4float %50
105 %55 = OpAccessChain %_ptr_Uniform_v4float %11 %int_1
106 %57 = OpLoad %v4float %55
110 %58 = OpLoad %v4float %45