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 "unknownInput"
12OpName %_entrypoint_v "_entrypoint_v"
13OpName %return_on_both_sides_b "return_on_both_sides_b"
14OpName %for_inside_body_b "for_inside_body_b"
15OpName %x "x"
16OpName %after_for_body_b "after_for_body_b"
17OpName %x_0 "x"
18OpName %for_with_double_sided_conditional_return_b "for_with_double_sided_conditional_return_b"
19OpName %x_1 "x"
20OpName %if_else_chain_b "if_else_chain_b"
21OpName %main "main"
22OpDecorate %sk_FragColor RelaxedPrecision
23OpDecorate %sk_FragColor Location 0
24OpDecorate %sk_FragColor Index 0
25OpDecorate %sk_Clockwise BuiltIn FrontFacing
26OpMemberDecorate %_UniformBuffer 0 Offset 0
27OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
28OpMemberDecorate %_UniformBuffer 1 Offset 16
29OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
30OpMemberDecorate %_UniformBuffer 2 Offset 32
31OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
32OpDecorate %_UniformBuffer Block
33OpDecorate %15 Binding 0
34OpDecorate %15 DescriptorSet 0
35OpDecorate %34 RelaxedPrecision
36OpDecorate %77 RelaxedPrecision
37OpDecorate %86 RelaxedPrecision
38OpDecorate %92 RelaxedPrecision
39OpDecorate %100 RelaxedPrecision
40OpDecorate %107 RelaxedPrecision
41OpDecorate %143 RelaxedPrecision
42OpDecorate %145 RelaxedPrecision
43OpDecorate %146 RelaxedPrecision
44%float = OpTypeFloat 32
45%v4float = OpTypeVector %float 4
46%_ptr_Output_v4float = OpTypePointer Output %v4float
47%sk_FragColor = OpVariable %_ptr_Output_v4float Output
48%bool = OpTypeBool
49%_ptr_Input_bool = OpTypePointer Input %bool
50%sk_Clockwise = OpVariable %_ptr_Input_bool Input
51%_UniformBuffer = OpTypeStruct %v4float %v4float %float
52%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
53%15 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
54%void = OpTypeVoid
55%20 = OpTypeFunction %void
56%v2float = OpTypeVector %float 2
57%float_0 = OpConstant %float 0
58%24 = OpConstantComposite %v2float %float_0 %float_0
59%_ptr_Function_v2float = OpTypePointer Function %v2float
60%28 = OpTypeFunction %bool
61%_ptr_Uniform_float = OpTypePointer Uniform %float
62%int = OpTypeInt 32 1
63%int_2 = OpConstant %int 2
64%float_1 = OpConstant %float 1
65%true = OpConstantTrue %bool
66%_ptr_Function_int = OpTypePointer Function %int
67%int_0 = OpConstant %int 0
68%int_10 = OpConstant %int 10
69%int_1 = OpConstant %int 1
70%float_2 = OpConstant %float 2
71%false = OpConstantFalse %bool
72%float_3 = OpConstant %float 3
73%float_4 = OpConstant %float 4
74%113 = OpTypeFunction %v4float %_ptr_Function_v2float
75%_ptr_Function_v4float = OpTypePointer Function %v4float
76%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
77%_entrypoint_v = OpFunction %void None %20
78%21 = OpLabel
79%25 = OpVariable %_ptr_Function_v2float Function
80OpStore %25 %24
81%27 = OpFunctionCall %v4float %main %25
82OpStore %sk_FragColor %27
83OpReturn
84OpFunctionEnd
85%return_on_both_sides_b = OpFunction %bool None %28
86%29 = OpLabel
87%30 = OpAccessChain %_ptr_Uniform_float %15 %int_2
88%34 = OpLoad %float %30
89%36 = OpFOrdEqual %bool %34 %float_1
90OpSelectionMerge %39 None
91OpBranchConditional %36 %37 %38
92%37 = OpLabel
93OpReturnValue %true
94%38 = OpLabel
95OpReturnValue %true
96%39 = OpLabel
97OpUnreachable
98OpFunctionEnd
99%for_inside_body_b = OpFunction %bool None %28
100%41 = OpLabel
101%x = OpVariable %_ptr_Function_int Function
102OpStore %x %int_0
103OpBranch %45
104%45 = OpLabel
105OpLoopMerge %49 %48 None
106OpBranch %46
107%46 = OpLabel
108%50 = OpLoad %int %x
109%52 = OpSLessThanEqual %bool %50 %int_10
110OpBranchConditional %52 %47 %49
111%47 = OpLabel
112OpReturnValue %true
113%48 = OpLabel
114%54 = OpLoad %int %x
115%55 = OpIAdd %int %54 %int_1
116OpStore %x %55
117OpBranch %45
118%49 = OpLabel
119OpUnreachable
120OpFunctionEnd
121%after_for_body_b = OpFunction %bool None %28
122%56 = OpLabel
123%x_0 = OpVariable %_ptr_Function_int Function
124OpStore %x_0 %int_0
125OpBranch %58
126%58 = OpLabel
127OpLoopMerge %62 %61 None
128OpBranch %59
129%59 = OpLabel
130%63 = OpLoad %int %x_0
131%64 = OpSLessThanEqual %bool %63 %int_10
132OpBranchConditional %64 %60 %62
133%60 = OpLabel
134OpBranch %61
135%61 = OpLabel
136%65 = OpLoad %int %x_0
137%66 = OpIAdd %int %65 %int_1
138OpStore %x_0 %66
139OpBranch %58
140%62 = OpLabel
141OpReturnValue %true
142OpFunctionEnd
143%for_with_double_sided_conditional_return_b = OpFunction %bool None %28
144%67 = OpLabel
145%x_1 = OpVariable %_ptr_Function_int Function
146OpStore %x_1 %int_0
147OpBranch %69
148%69 = OpLabel
149OpLoopMerge %73 %72 None
150OpBranch %70
151%70 = OpLabel
152%74 = OpLoad %int %x_1
153%75 = OpSLessThanEqual %bool %74 %int_10
154OpBranchConditional %75 %71 %73
155%71 = OpLabel
156%76 = OpAccessChain %_ptr_Uniform_float %15 %int_2
157%77 = OpLoad %float %76
158%78 = OpFOrdEqual %bool %77 %float_1
159OpSelectionMerge %81 None
160OpBranchConditional %78 %79 %80
161%79 = OpLabel
162OpReturnValue %true
163%80 = OpLabel
164OpReturnValue %true
165%81 = OpLabel
166OpBranch %72
167%72 = OpLabel
168%82 = OpLoad %int %x_1
169%83 = OpIAdd %int %82 %int_1
170OpStore %x_1 %83
171OpBranch %69
172%73 = OpLabel
173OpUnreachable
174OpFunctionEnd
175%if_else_chain_b = OpFunction %bool None %28
176%84 = OpLabel
177%85 = OpAccessChain %_ptr_Uniform_float %15 %int_2
178%86 = OpLoad %float %85
179%87 = OpFOrdEqual %bool %86 %float_1
180OpSelectionMerge %90 None
181OpBranchConditional %87 %88 %89
182%88 = OpLabel
183OpReturnValue %true
184%89 = OpLabel
185%91 = OpAccessChain %_ptr_Uniform_float %15 %int_2
186%92 = OpLoad %float %91
187%94 = OpFOrdEqual %bool %92 %float_2
188OpSelectionMerge %97 None
189OpBranchConditional %94 %95 %96
190%95 = OpLabel
191OpReturnValue %false
192%96 = OpLabel
193%99 = OpAccessChain %_ptr_Uniform_float %15 %int_2
194%100 = OpLoad %float %99
195%102 = OpFOrdEqual %bool %100 %float_3
196OpSelectionMerge %105 None
197OpBranchConditional %102 %103 %104
198%103 = OpLabel
199OpReturnValue %true
200%104 = OpLabel
201%106 = OpAccessChain %_ptr_Uniform_float %15 %int_2
202%107 = OpLoad %float %106
203%109 = OpFOrdEqual %bool %107 %float_4
204OpSelectionMerge %112 None
205OpBranchConditional %109 %110 %111
206%110 = OpLabel
207OpReturnValue %false
208%111 = OpLabel
209OpReturnValue %true
210%112 = OpLabel
211OpBranch %105
212%105 = OpLabel
213OpBranch %97
214%97 = OpLabel
215OpBranch %90
216%90 = OpLabel
217OpUnreachable
218OpFunctionEnd
219%main = OpFunction %v4float None %113
220%114 = OpFunctionParameter %_ptr_Function_v2float
221%115 = OpLabel
222%136 = OpVariable %_ptr_Function_v4float Function
223OpSelectionMerge %117 None
224OpBranchConditional %true %116 %117
225%116 = OpLabel
226%118 = OpFunctionCall %bool %return_on_both_sides_b
227OpBranch %117
228%117 = OpLabel
229%119 = OpPhi %bool %false %115 %118 %116
230OpSelectionMerge %121 None
231OpBranchConditional %119 %120 %121
232%120 = OpLabel
233%122 = OpFunctionCall %bool %for_inside_body_b
234OpBranch %121
235%121 = OpLabel
236%123 = OpPhi %bool %false %117 %122 %120
237OpSelectionMerge %125 None
238OpBranchConditional %123 %124 %125
239%124 = OpLabel
240%126 = OpFunctionCall %bool %after_for_body_b
241OpBranch %125
242%125 = OpLabel
243%127 = OpPhi %bool %false %121 %126 %124
244OpSelectionMerge %129 None
245OpBranchConditional %127 %128 %129
246%128 = OpLabel
247%130 = OpFunctionCall %bool %for_with_double_sided_conditional_return_b
248OpBranch %129
249%129 = OpLabel
250%131 = OpPhi %bool %false %125 %130 %128
251OpSelectionMerge %133 None
252OpBranchConditional %131 %132 %133
253%132 = OpLabel
254%134 = OpFunctionCall %bool %if_else_chain_b
255OpBranch %133
256%133 = OpLabel
257%135 = OpPhi %bool %false %129 %134 %132
258OpSelectionMerge %140 None
259OpBranchConditional %135 %138 %139
260%138 = OpLabel
261%141 = OpAccessChain %_ptr_Uniform_v4float %15 %int_0
262%143 = OpLoad %v4float %141
263OpStore %136 %143
264OpBranch %140
265%139 = OpLabel
266%144 = OpAccessChain %_ptr_Uniform_v4float %15 %int_1
267%145 = OpLoad %v4float %144
268OpStore %136 %145
269OpBranch %140
270%140 = OpLabel
271%146 = OpLoad %v4float %136
272OpReturnValue %146
273OpFunctionEnd
274