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 "testInputs"
10OpMemberName %_UniformBuffer 1 "colorGreen"
11OpMemberName %_UniformBuffer 2 "colorRed"
12OpName %_entrypoint_v "_entrypoint_v"
13OpName %main "main"
14OpName %expected "expected"
15OpDecorate %sk_FragColor RelaxedPrecision
16OpDecorate %sk_FragColor Location 0
17OpDecorate %sk_FragColor Index 0
18OpDecorate %sk_Clockwise BuiltIn FrontFacing
19OpMemberDecorate %_UniformBuffer 0 Offset 0
20OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
21OpMemberDecorate %_UniformBuffer 1 Offset 16
22OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
23OpMemberDecorate %_UniformBuffer 2 Offset 32
24OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
25OpDecorate %_UniformBuffer Block
26OpDecorate %10 Binding 0
27OpDecorate %10 DescriptorSet 0
28OpDecorate %expected RelaxedPrecision
29OpDecorate %30 RelaxedPrecision
30OpDecorate %37 RelaxedPrecision
31OpDecorate %38 RelaxedPrecision
32OpDecorate %39 RelaxedPrecision
33OpDecorate %40 RelaxedPrecision
34OpDecorate %46 RelaxedPrecision
35OpDecorate %47 RelaxedPrecision
36OpDecorate %50 RelaxedPrecision
37OpDecorate %51 RelaxedPrecision
38OpDecorate %60 RelaxedPrecision
39OpDecorate %61 RelaxedPrecision
40OpDecorate %65 RelaxedPrecision
41OpDecorate %66 RelaxedPrecision
42OpDecorate %75 RelaxedPrecision
43OpDecorate %78 RelaxedPrecision
44OpDecorate %85 RelaxedPrecision
45OpDecorate %86 RelaxedPrecision
46OpDecorate %91 RelaxedPrecision
47OpDecorate %92 RelaxedPrecision
48OpDecorate %98 RelaxedPrecision
49OpDecorate %99 RelaxedPrecision
50OpDecorate %100 RelaxedPrecision
51OpDecorate %106 RelaxedPrecision
52OpDecorate %116 RelaxedPrecision
53OpDecorate %119 RelaxedPrecision
54OpDecorate %120 RelaxedPrecision
55%float = OpTypeFloat 32
56%v4float = OpTypeVector %float 4
57%_ptr_Output_v4float = OpTypePointer Output %v4float
58%sk_FragColor = OpVariable %_ptr_Output_v4float Output
59%bool = OpTypeBool
60%_ptr_Input_bool = OpTypePointer Input %bool
61%sk_Clockwise = OpVariable %_ptr_Input_bool Input
62%_UniformBuffer = OpTypeStruct %v4float %v4float %v4float
63%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
64%10 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
65%void = OpTypeVoid
66%15 = OpTypeFunction %void
67%v2float = OpTypeVector %float 2
68%float_0 = OpConstant %float 0
69%19 = OpConstantComposite %v2float %float_0 %float_0
70%_ptr_Function_v2float = OpTypePointer Function %v2float
71%23 = OpTypeFunction %v4float %_ptr_Function_v2float
72%_ptr_Function_v4float = OpTypePointer Function %v4float
73%float_0_75 = OpConstant %float 0.75
74%float_1 = OpConstant %float 1
75%30 = OpConstantComposite %v4float %float_0 %float_0 %float_0_75 %float_1
76%false = OpConstantFalse %bool
77%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
78%int = OpTypeInt 32 1
79%int_0 = OpConstant %int 0
80%v2bool = OpTypeVector %bool 2
81%v3float = OpTypeVector %float 3
82%v3bool = OpTypeVector %bool 3
83%v4bool = OpTypeVector %bool 4
84%98 = OpConstantComposite %v3float %float_0 %float_0 %float_0_75
85%int_1 = OpConstant %int 1
86%int_2 = OpConstant %int 2
87%_entrypoint_v = OpFunction %void None %15
88%16 = OpLabel
89%20 = OpVariable %_ptr_Function_v2float Function
90OpStore %20 %19
91%22 = OpFunctionCall %v4float %main %20
92OpStore %sk_FragColor %22
93OpReturn
94OpFunctionEnd
95%main = OpFunction %v4float None %23
96%24 = OpFunctionParameter %_ptr_Function_v2float
97%25 = OpLabel
98%expected = OpVariable %_ptr_Function_v4float Function
99%110 = OpVariable %_ptr_Function_v4float Function
100OpStore %expected %30
101%33 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
102%37 = OpLoad %v4float %33
103%38 = OpCompositeExtract %float %37 0
104%32 = OpExtInst %float %1 FClamp %38 %float_0 %float_1
105%39 = OpLoad %v4float %expected
106%40 = OpCompositeExtract %float %39 0
107%41 = OpFOrdEqual %bool %32 %40
108OpSelectionMerge %43 None
109OpBranchConditional %41 %42 %43
110%42 = OpLabel
111%45 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
112%46 = OpLoad %v4float %45
113%47 = OpVectorShuffle %v2float %46 %46 0 1
114%48 = OpCompositeConstruct %v2float %float_0 %float_0
115%49 = OpCompositeConstruct %v2float %float_1 %float_1
116%44 = OpExtInst %v2float %1 FClamp %47 %48 %49
117%50 = OpLoad %v4float %expected
118%51 = OpVectorShuffle %v2float %50 %50 0 1
119%52 = OpFOrdEqual %v2bool %44 %51
120%54 = OpAll %bool %52
121OpBranch %43
122%43 = OpLabel
123%55 = OpPhi %bool %false %25 %54 %42
124OpSelectionMerge %57 None
125OpBranchConditional %55 %56 %57
126%56 = OpLabel
127%59 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
128%60 = OpLoad %v4float %59
129%61 = OpVectorShuffle %v3float %60 %60 0 1 2
130%63 = OpCompositeConstruct %v3float %float_0 %float_0 %float_0
131%64 = OpCompositeConstruct %v3float %float_1 %float_1 %float_1
132%58 = OpExtInst %v3float %1 FClamp %61 %63 %64
133%65 = OpLoad %v4float %expected
134%66 = OpVectorShuffle %v3float %65 %65 0 1 2
135%67 = OpFOrdEqual %v3bool %58 %66
136%69 = OpAll %bool %67
137OpBranch %57
138%57 = OpLabel
139%70 = OpPhi %bool %false %43 %69 %56
140OpSelectionMerge %72 None
141OpBranchConditional %70 %71 %72
142%71 = OpLabel
143%74 = OpAccessChain %_ptr_Uniform_v4float %10 %int_0
144%75 = OpLoad %v4float %74
145%76 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %float_0
146%77 = OpCompositeConstruct %v4float %float_1 %float_1 %float_1 %float_1
147%73 = OpExtInst %v4float %1 FClamp %75 %76 %77
148%78 = OpLoad %v4float %expected
149%79 = OpFOrdEqual %v4bool %73 %78
150%81 = OpAll %bool %79
151OpBranch %72
152%72 = OpLabel
153%82 = OpPhi %bool %false %57 %81 %71
154OpSelectionMerge %84 None
155OpBranchConditional %82 %83 %84
156%83 = OpLabel
157%85 = OpLoad %v4float %expected
158%86 = OpCompositeExtract %float %85 0
159%87 = OpFOrdEqual %bool %float_0 %86
160OpBranch %84
161%84 = OpLabel
162%88 = OpPhi %bool %false %72 %87 %83
163OpSelectionMerge %90 None
164OpBranchConditional %88 %89 %90
165%89 = OpLabel
166%91 = OpLoad %v4float %expected
167%92 = OpVectorShuffle %v2float %91 %91 0 1
168%93 = OpFOrdEqual %v2bool %19 %92
169%94 = OpAll %bool %93
170OpBranch %90
171%90 = OpLabel
172%95 = OpPhi %bool %false %84 %94 %89
173OpSelectionMerge %97 None
174OpBranchConditional %95 %96 %97
175%96 = OpLabel
176%99 = OpLoad %v4float %expected
177%100 = OpVectorShuffle %v3float %99 %99 0 1 2
178%101 = OpFOrdEqual %v3bool %98 %100
179%102 = OpAll %bool %101
180OpBranch %97
181%97 = OpLabel
182%103 = OpPhi %bool %false %90 %102 %96
183OpSelectionMerge %105 None
184OpBranchConditional %103 %104 %105
185%104 = OpLabel
186%106 = OpLoad %v4float %expected
187%107 = OpFOrdEqual %v4bool %30 %106
188%108 = OpAll %bool %107
189OpBranch %105
190%105 = OpLabel
191%109 = OpPhi %bool %false %97 %108 %104
192OpSelectionMerge %113 None
193OpBranchConditional %109 %111 %112
194%111 = OpLabel
195%114 = OpAccessChain %_ptr_Uniform_v4float %10 %int_1
196%116 = OpLoad %v4float %114
197OpStore %110 %116
198OpBranch %113
199%112 = OpLabel
200%117 = OpAccessChain %_ptr_Uniform_v4float %10 %int_2
201%119 = OpLoad %v4float %117
202OpStore %110 %119
203OpBranch %113
204%113 = OpLabel
205%120 = OpLoad %v4float %110
206OpReturnValue %120
207OpFunctionEnd
208