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