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