• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 %inside_while_loop_b "inside_while_loop_b"
14OpName %inside_infinite_do_loop_b "inside_infinite_do_loop_b"
15OpName %inside_infinite_while_loop_b "inside_infinite_while_loop_b"
16OpName %after_do_loop_b "after_do_loop_b"
17OpName %after_while_loop_b "after_while_loop_b"
18OpName %switch_with_all_returns_b "switch_with_all_returns_b"
19OpName %switch_fallthrough_b "switch_fallthrough_b"
20OpName %switch_fallthrough_twice_b "switch_fallthrough_twice_b"
21OpName %switch_with_break_in_loop_b "switch_with_break_in_loop_b"
22OpName %x "x"
23OpName %switch_with_continue_in_loop_b "switch_with_continue_in_loop_b"
24OpName %x_0 "x"
25OpName %switch_with_if_that_returns_b "switch_with_if_that_returns_b"
26OpName %switch_with_one_sided_if_then_fallthrough_b "switch_with_one_sided_if_then_fallthrough_b"
27OpName %main "main"
28OpDecorate %sk_FragColor RelaxedPrecision
29OpDecorate %sk_FragColor Location 0
30OpDecorate %sk_FragColor Index 0
31OpDecorate %sk_Clockwise BuiltIn FrontFacing
32OpMemberDecorate %_UniformBuffer 0 Offset 0
33OpMemberDecorate %_UniformBuffer 0 RelaxedPrecision
34OpMemberDecorate %_UniformBuffer 1 Offset 16
35OpMemberDecorate %_UniformBuffer 1 RelaxedPrecision
36OpMemberDecorate %_UniformBuffer 2 Offset 32
37OpMemberDecorate %_UniformBuffer 2 RelaxedPrecision
38OpDecorate %_UniformBuffer Block
39OpDecorate %22 Binding 0
40OpDecorate %22 DescriptorSet 0
41OpDecorate %46 RelaxedPrecision
42OpDecorate %77 RelaxedPrecision
43OpDecorate %85 RelaxedPrecision
44OpDecorate %93 RelaxedPrecision
45OpDecorate %101 RelaxedPrecision
46OpDecorate %122 RelaxedPrecision
47OpDecorate %139 RelaxedPrecision
48OpDecorate %145 RelaxedPrecision
49OpDecorate %152 RelaxedPrecision
50OpDecorate %158 RelaxedPrecision
51OpDecorate %217 RelaxedPrecision
52OpDecorate %219 RelaxedPrecision
53OpDecorate %220 RelaxedPrecision
54%float = OpTypeFloat 32
55%v4float = OpTypeVector %float 4
56%_ptr_Output_v4float = OpTypePointer Output %v4float
57%sk_FragColor = OpVariable %_ptr_Output_v4float Output
58%bool = OpTypeBool
59%_ptr_Input_bool = OpTypePointer Input %bool
60%sk_Clockwise = OpVariable %_ptr_Input_bool Input
61%_UniformBuffer = OpTypeStruct %v4float %v4float %float
62%_ptr_Uniform__UniformBuffer = OpTypePointer Uniform %_UniformBuffer
63%22 = OpVariable %_ptr_Uniform__UniformBuffer Uniform
64%void = OpTypeVoid
65%27 = OpTypeFunction %void
66%v2float = OpTypeVector %float 2
67%float_0 = OpConstant %float 0
68%31 = OpConstantComposite %v2float %float_0 %float_0
69%_ptr_Function_v2float = OpTypePointer Function %v2float
70%35 = OpTypeFunction %bool
71%_ptr_Uniform_float = OpTypePointer Uniform %float
72%int = OpTypeInt 32 1
73%int_2 = OpConstant %int 2
74%float_123 = OpConstant %float 123
75%false = OpConstantFalse %bool
76%true = OpConstantTrue %bool
77%_ptr_Function_int = OpTypePointer Function %int
78%int_0 = OpConstant %int 0
79%int_10 = OpConstant %int 10
80%int_1 = OpConstant %int 1
81%162 = OpTypeFunction %v4float %_ptr_Function_v2float
82%_ptr_Function_v4float = OpTypePointer Function %v4float
83%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
84%_entrypoint_v = OpFunction %void None %27
85%28 = OpLabel
86%32 = OpVariable %_ptr_Function_v2float Function
87OpStore %32 %31
88%34 = OpFunctionCall %v4float %main %32
89OpStore %sk_FragColor %34
90OpReturn
91OpFunctionEnd
92%inside_while_loop_b = OpFunction %bool None %35
93%36 = OpLabel
94OpBranch %37
95%37 = OpLabel
96OpLoopMerge %41 %40 None
97OpBranch %38
98%38 = OpLabel
99%42 = OpAccessChain %_ptr_Uniform_float %22 %int_2
100%46 = OpLoad %float %42
101%48 = OpFOrdEqual %bool %46 %float_123
102OpBranchConditional %48 %39 %41
103%39 = OpLabel
104OpReturnValue %false
105%40 = OpLabel
106OpBranch %37
107%41 = OpLabel
108OpReturnValue %true
109OpFunctionEnd
110%inside_infinite_do_loop_b = OpFunction %bool None %35
111%51 = OpLabel
112OpBranch %52
113%52 = OpLabel
114OpLoopMerge %56 %55 None
115OpBranch %53
116%53 = OpLabel
117OpReturnValue %true
118%54 = OpLabel
119OpBranch %55
120%55 = OpLabel
121OpBranchConditional %true %52 %56
122%56 = OpLabel
123OpUnreachable
124OpFunctionEnd
125%inside_infinite_while_loop_b = OpFunction %bool None %35
126%57 = OpLabel
127OpBranch %58
128%58 = OpLabel
129OpLoopMerge %62 %61 None
130OpBranch %59
131%59 = OpLabel
132OpBranchConditional %true %60 %62
133%60 = OpLabel
134OpReturnValue %true
135%61 = OpLabel
136OpBranch %58
137%62 = OpLabel
138OpUnreachable
139OpFunctionEnd
140%after_do_loop_b = OpFunction %bool None %35
141%63 = OpLabel
142OpBranch %64
143%64 = OpLabel
144OpLoopMerge %68 %67 None
145OpBranch %65
146%65 = OpLabel
147OpBranch %68
148%66 = OpLabel
149OpBranch %67
150%67 = OpLabel
151OpBranchConditional %true %64 %68
152%68 = OpLabel
153OpReturnValue %true
154OpFunctionEnd
155%after_while_loop_b = OpFunction %bool None %35
156%69 = OpLabel
157OpBranch %70
158%70 = OpLabel
159OpLoopMerge %74 %73 None
160OpBranch %71
161%71 = OpLabel
162OpBranchConditional %true %72 %74
163%72 = OpLabel
164OpBranch %74
165%73 = OpLabel
166OpBranch %70
167%74 = OpLabel
168OpReturnValue %true
169OpFunctionEnd
170%switch_with_all_returns_b = OpFunction %bool None %35
171%75 = OpLabel
172%76 = OpAccessChain %_ptr_Uniform_float %22 %int_2
173%77 = OpLoad %float %76
174%78 = OpConvertFToS %int %77
175OpSelectionMerge %79 None
176OpSwitch %78 %82 1 %80 2 %81
177%80 = OpLabel
178OpReturnValue %true
179%81 = OpLabel
180OpReturnValue %false
181%82 = OpLabel
182OpReturnValue %false
183%79 = OpLabel
184OpUnreachable
185OpFunctionEnd
186%switch_fallthrough_b = OpFunction %bool None %35
187%83 = OpLabel
188%84 = OpAccessChain %_ptr_Uniform_float %22 %int_2
189%85 = OpLoad %float %84
190%86 = OpConvertFToS %int %85
191OpSelectionMerge %87 None
192OpSwitch %86 %90 1 %88 2 %89
193%88 = OpLabel
194OpReturnValue %true
195%89 = OpLabel
196OpBranch %90
197%90 = OpLabel
198OpReturnValue %false
199%87 = OpLabel
200OpUnreachable
201OpFunctionEnd
202%switch_fallthrough_twice_b = OpFunction %bool None %35
203%91 = OpLabel
204%92 = OpAccessChain %_ptr_Uniform_float %22 %int_2
205%93 = OpLoad %float %92
206%94 = OpConvertFToS %int %93
207OpSelectionMerge %95 None
208OpSwitch %94 %98 1 %96 2 %97
209%96 = OpLabel
210OpBranch %97
211%97 = OpLabel
212OpBranch %98
213%98 = OpLabel
214OpReturnValue %true
215%95 = OpLabel
216OpUnreachable
217OpFunctionEnd
218%switch_with_break_in_loop_b = OpFunction %bool None %35
219%99 = OpLabel
220%x = OpVariable %_ptr_Function_int Function
221%100 = OpAccessChain %_ptr_Uniform_float %22 %int_2
222%101 = OpLoad %float %100
223%102 = OpConvertFToS %int %101
224OpSelectionMerge %103 None
225OpSwitch %102 %105 1 %104
226%104 = OpLabel
227OpStore %x %int_0
228OpBranch %109
229%109 = OpLabel
230OpLoopMerge %113 %112 None
231OpBranch %110
232%110 = OpLabel
233%114 = OpLoad %int %x
234%116 = OpSLessThanEqual %bool %114 %int_10
235OpBranchConditional %116 %111 %113
236%111 = OpLabel
237OpBranch %113
238%112 = OpLabel
239%118 = OpLoad %int %x
240%119 = OpIAdd %int %118 %int_1
241OpStore %x %119
242OpBranch %109
243%113 = OpLabel
244OpBranch %105
245%105 = OpLabel
246OpReturnValue %true
247%103 = OpLabel
248OpUnreachable
249OpFunctionEnd
250%switch_with_continue_in_loop_b = OpFunction %bool None %35
251%120 = OpLabel
252%x_0 = OpVariable %_ptr_Function_int Function
253%121 = OpAccessChain %_ptr_Uniform_float %22 %int_2
254%122 = OpLoad %float %121
255%123 = OpConvertFToS %int %122
256OpSelectionMerge %124 None
257OpSwitch %123 %126 1 %125
258%125 = OpLabel
259OpStore %x_0 %int_0
260OpBranch %128
261%128 = OpLabel
262OpLoopMerge %132 %131 None
263OpBranch %129
264%129 = OpLabel
265%133 = OpLoad %int %x_0
266%134 = OpSLessThanEqual %bool %133 %int_10
267OpBranchConditional %134 %130 %132
268%130 = OpLabel
269OpBranch %131
270%131 = OpLabel
271%135 = OpLoad %int %x_0
272%136 = OpIAdd %int %135 %int_1
273OpStore %x_0 %136
274OpBranch %128
275%132 = OpLabel
276OpBranch %126
277%126 = OpLabel
278OpReturnValue %true
279%124 = OpLabel
280OpUnreachable
281OpFunctionEnd
282%switch_with_if_that_returns_b = OpFunction %bool None %35
283%137 = OpLabel
284%138 = OpAccessChain %_ptr_Uniform_float %22 %int_2
285%139 = OpLoad %float %138
286%140 = OpConvertFToS %int %139
287OpSelectionMerge %141 None
288OpSwitch %140 %143 1 %142
289%142 = OpLabel
290%144 = OpAccessChain %_ptr_Uniform_float %22 %int_2
291%145 = OpLoad %float %144
292%146 = OpFOrdEqual %bool %145 %float_123
293OpSelectionMerge %149 None
294OpBranchConditional %146 %147 %148
295%147 = OpLabel
296OpReturnValue %false
297%148 = OpLabel
298OpReturnValue %true
299%149 = OpLabel
300OpBranch %143
301%143 = OpLabel
302OpReturnValue %true
303%141 = OpLabel
304OpUnreachable
305OpFunctionEnd
306%switch_with_one_sided_if_then_fallthrough_b = OpFunction %bool None %35
307%150 = OpLabel
308%151 = OpAccessChain %_ptr_Uniform_float %22 %int_2
309%152 = OpLoad %float %151
310%153 = OpConvertFToS %int %152
311OpSelectionMerge %154 None
312OpSwitch %153 %156 1 %155
313%155 = OpLabel
314%157 = OpAccessChain %_ptr_Uniform_float %22 %int_2
315%158 = OpLoad %float %157
316%159 = OpFOrdEqual %bool %158 %float_123
317OpSelectionMerge %161 None
318OpBranchConditional %159 %160 %161
319%160 = OpLabel
320OpReturnValue %false
321%161 = OpLabel
322OpBranch %156
323%156 = OpLabel
324OpReturnValue %true
325%154 = OpLabel
326OpUnreachable
327OpFunctionEnd
328%main = OpFunction %v4float None %162
329%163 = OpFunctionParameter %_ptr_Function_v2float
330%164 = OpLabel
331%210 = OpVariable %_ptr_Function_v4float Function
332%165 = OpFunctionCall %bool %inside_while_loop_b
333OpSelectionMerge %167 None
334OpBranchConditional %165 %166 %167
335%166 = OpLabel
336%168 = OpFunctionCall %bool %inside_infinite_do_loop_b
337OpBranch %167
338%167 = OpLabel
339%169 = OpPhi %bool %false %164 %168 %166
340OpSelectionMerge %171 None
341OpBranchConditional %169 %170 %171
342%170 = OpLabel
343%172 = OpFunctionCall %bool %inside_infinite_while_loop_b
344OpBranch %171
345%171 = OpLabel
346%173 = OpPhi %bool %false %167 %172 %170
347OpSelectionMerge %175 None
348OpBranchConditional %173 %174 %175
349%174 = OpLabel
350%176 = OpFunctionCall %bool %after_do_loop_b
351OpBranch %175
352%175 = OpLabel
353%177 = OpPhi %bool %false %171 %176 %174
354OpSelectionMerge %179 None
355OpBranchConditional %177 %178 %179
356%178 = OpLabel
357%180 = OpFunctionCall %bool %after_while_loop_b
358OpBranch %179
359%179 = OpLabel
360%181 = OpPhi %bool %false %175 %180 %178
361OpSelectionMerge %183 None
362OpBranchConditional %181 %182 %183
363%182 = OpLabel
364%184 = OpFunctionCall %bool %switch_with_all_returns_b
365OpBranch %183
366%183 = OpLabel
367%185 = OpPhi %bool %false %179 %184 %182
368OpSelectionMerge %187 None
369OpBranchConditional %185 %186 %187
370%186 = OpLabel
371%188 = OpFunctionCall %bool %switch_fallthrough_b
372OpBranch %187
373%187 = OpLabel
374%189 = OpPhi %bool %false %183 %188 %186
375OpSelectionMerge %191 None
376OpBranchConditional %189 %190 %191
377%190 = OpLabel
378%192 = OpFunctionCall %bool %switch_fallthrough_twice_b
379OpBranch %191
380%191 = OpLabel
381%193 = OpPhi %bool %false %187 %192 %190
382OpSelectionMerge %195 None
383OpBranchConditional %193 %194 %195
384%194 = OpLabel
385%196 = OpFunctionCall %bool %switch_with_break_in_loop_b
386OpBranch %195
387%195 = OpLabel
388%197 = OpPhi %bool %false %191 %196 %194
389OpSelectionMerge %199 None
390OpBranchConditional %197 %198 %199
391%198 = OpLabel
392%200 = OpFunctionCall %bool %switch_with_continue_in_loop_b
393OpBranch %199
394%199 = OpLabel
395%201 = OpPhi %bool %false %195 %200 %198
396OpSelectionMerge %203 None
397OpBranchConditional %201 %202 %203
398%202 = OpLabel
399%204 = OpFunctionCall %bool %switch_with_if_that_returns_b
400OpBranch %203
401%203 = OpLabel
402%205 = OpPhi %bool %false %199 %204 %202
403OpSelectionMerge %207 None
404OpBranchConditional %205 %206 %207
405%206 = OpLabel
406%208 = OpFunctionCall %bool %switch_with_one_sided_if_then_fallthrough_b
407OpBranch %207
408%207 = OpLabel
409%209 = OpPhi %bool %false %203 %208 %206
410OpSelectionMerge %214 None
411OpBranchConditional %209 %212 %213
412%212 = OpLabel
413%215 = OpAccessChain %_ptr_Uniform_v4float %22 %int_0
414%217 = OpLoad %v4float %215
415OpStore %210 %217
416OpBranch %214
417%213 = OpLabel
418%218 = OpAccessChain %_ptr_Uniform_v4float %22 %int_1
419%219 = OpLoad %v4float %218
420OpStore %210 %219
421OpBranch %214
422%214 = OpLabel
423%220 = OpLoad %v4float %210
424OpReturnValue %220
425OpFunctionEnd
426