xref: /aosp_15_r20/external/deqp/data/gles2/shaders/swizzles.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
1# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
2# modify the generating script file. Otherwise changes will be lost!
3
4group vector_swizzles "Vector Swizzles"
5
6  case mediump_vec2_x
7    values
8    {
9        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
10        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
11    }
12
13    both ""
14        precision mediump float;
15
16        ${DECLARATIONS}
17
18        void main()
19        {
20            ${SETUP}
21            out0 = in0.x;
22            ${OUTPUT}
23        }
24    ""
25  end
26
27  case mediump_vec2_xx
28    values
29    {
30        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
31        output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(-0.5, -0.5) | vec2(-32.0, -32.0) | vec2(-0.75, -0.75) ];
32    }
33
34    both ""
35        precision mediump float;
36
37        ${DECLARATIONS}
38
39        void main()
40        {
41            ${SETUP}
42            out0 = in0.xx;
43            ${OUTPUT}
44        }
45    ""
46  end
47
48  case mediump_vec2_xy
49    values
50    {
51        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
52        output vec2 out0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
53    }
54
55    both ""
56        precision mediump float;
57
58        ${DECLARATIONS}
59
60        void main()
61        {
62            ${SETUP}
63            out0 = in0.xy;
64            ${OUTPUT}
65        }
66    ""
67  end
68
69  case mediump_vec2_yx
70    values
71    {
72        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
73        output vec2 out0 = [ vec2(0.5, 0.0) | vec2(1.25, 1.0) | vec2(-2.25, -0.5) | vec2(64.0, -32.0) | vec2(-0.0322580645161, -0.75) ];
74    }
75
76    both ""
77        precision mediump float;
78
79        ${DECLARATIONS}
80
81        void main()
82        {
83            ${SETUP}
84            out0 = in0.yx;
85            ${OUTPUT}
86        }
87    ""
88  end
89
90  case mediump_vec2_yxy
91    values
92    {
93        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
94        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
95    }
96
97    both ""
98        precision mediump float;
99
100        ${DECLARATIONS}
101
102        void main()
103        {
104            ${SETUP}
105            out0 = in0.yxy;
106            ${OUTPUT}
107        }
108    ""
109  end
110
111  case mediump_vec2_xyxx
112    values
113    {
114        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
115        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
116    }
117
118    both ""
119        precision mediump float;
120
121        ${DECLARATIONS}
122
123        void main()
124        {
125            ${SETUP}
126            out0 = in0.xyxx;
127            ${OUTPUT}
128        }
129    ""
130  end
131
132  case mediump_vec2_yyyy
133    values
134    {
135        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
136        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
137    }
138
139    both ""
140        precision mediump float;
141
142        ${DECLARATIONS}
143
144        void main()
145        {
146            ${SETUP}
147            out0 = in0.yyyy;
148            ${OUTPUT}
149        }
150    ""
151  end
152
153  case mediump_vec2_s
154    values
155    {
156        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
157        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
158    }
159
160    both ""
161        precision mediump float;
162
163        ${DECLARATIONS}
164
165        void main()
166        {
167            ${SETUP}
168            out0 = in0.s;
169            ${OUTPUT}
170        }
171    ""
172  end
173
174  case mediump_vec2_ss
175    values
176    {
177        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
178        output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(-0.5, -0.5) | vec2(-32.0, -32.0) | vec2(-0.75, -0.75) ];
179    }
180
181    both ""
182        precision mediump float;
183
184        ${DECLARATIONS}
185
186        void main()
187        {
188            ${SETUP}
189            out0 = in0.ss;
190            ${OUTPUT}
191        }
192    ""
193  end
194
195  case mediump_vec2_st
196    values
197    {
198        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
199        output vec2 out0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
200    }
201
202    both ""
203        precision mediump float;
204
205        ${DECLARATIONS}
206
207        void main()
208        {
209            ${SETUP}
210            out0 = in0.st;
211            ${OUTPUT}
212        }
213    ""
214  end
215
216  case mediump_vec2_ts
217    values
218    {
219        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
220        output vec2 out0 = [ vec2(0.5, 0.0) | vec2(1.25, 1.0) | vec2(-2.25, -0.5) | vec2(64.0, -32.0) | vec2(-0.0322580645161, -0.75) ];
221    }
222
223    both ""
224        precision mediump float;
225
226        ${DECLARATIONS}
227
228        void main()
229        {
230            ${SETUP}
231            out0 = in0.ts;
232            ${OUTPUT}
233        }
234    ""
235  end
236
237  case mediump_vec2_tst
238    values
239    {
240        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
241        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
242    }
243
244    both ""
245        precision mediump float;
246
247        ${DECLARATIONS}
248
249        void main()
250        {
251            ${SETUP}
252            out0 = in0.tst;
253            ${OUTPUT}
254        }
255    ""
256  end
257
258  case mediump_vec2_stss
259    values
260    {
261        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
262        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
263    }
264
265    both ""
266        precision mediump float;
267
268        ${DECLARATIONS}
269
270        void main()
271        {
272            ${SETUP}
273            out0 = in0.stss;
274            ${OUTPUT}
275        }
276    ""
277  end
278
279  case mediump_vec2_tttt
280    values
281    {
282        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
283        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
284    }
285
286    both ""
287        precision mediump float;
288
289        ${DECLARATIONS}
290
291        void main()
292        {
293            ${SETUP}
294            out0 = in0.tttt;
295            ${OUTPUT}
296        }
297    ""
298  end
299
300  case mediump_vec2_r
301    values
302    {
303        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
304        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
305    }
306
307    both ""
308        precision mediump float;
309
310        ${DECLARATIONS}
311
312        void main()
313        {
314            ${SETUP}
315            out0 = in0.r;
316            ${OUTPUT}
317        }
318    ""
319  end
320
321  case mediump_vec2_rr
322    values
323    {
324        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
325        output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(-0.5, -0.5) | vec2(-32.0, -32.0) | vec2(-0.75, -0.75) ];
326    }
327
328    both ""
329        precision mediump float;
330
331        ${DECLARATIONS}
332
333        void main()
334        {
335            ${SETUP}
336            out0 = in0.rr;
337            ${OUTPUT}
338        }
339    ""
340  end
341
342  case mediump_vec2_rg
343    values
344    {
345        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
346        output vec2 out0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
347    }
348
349    both ""
350        precision mediump float;
351
352        ${DECLARATIONS}
353
354        void main()
355        {
356            ${SETUP}
357            out0 = in0.rg;
358            ${OUTPUT}
359        }
360    ""
361  end
362
363  case mediump_vec2_gr
364    values
365    {
366        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
367        output vec2 out0 = [ vec2(0.5, 0.0) | vec2(1.25, 1.0) | vec2(-2.25, -0.5) | vec2(64.0, -32.0) | vec2(-0.0322580645161, -0.75) ];
368    }
369
370    both ""
371        precision mediump float;
372
373        ${DECLARATIONS}
374
375        void main()
376        {
377            ${SETUP}
378            out0 = in0.gr;
379            ${OUTPUT}
380        }
381    ""
382  end
383
384  case mediump_vec2_grg
385    values
386    {
387        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
388        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
389    }
390
391    both ""
392        precision mediump float;
393
394        ${DECLARATIONS}
395
396        void main()
397        {
398            ${SETUP}
399            out0 = in0.grg;
400            ${OUTPUT}
401        }
402    ""
403  end
404
405  case mediump_vec2_rgrr
406    values
407    {
408        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
409        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
410    }
411
412    both ""
413        precision mediump float;
414
415        ${DECLARATIONS}
416
417        void main()
418        {
419            ${SETUP}
420            out0 = in0.rgrr;
421            ${OUTPUT}
422        }
423    ""
424  end
425
426  case mediump_vec2_gggg
427    values
428    {
429        input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
430        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
431    }
432
433    both ""
434        precision mediump float;
435
436        ${DECLARATIONS}
437
438        void main()
439        {
440            ${SETUP}
441            out0 = in0.gggg;
442            ${OUTPUT}
443        }
444    ""
445  end
446
447  case mediump_vec3_x
448    values
449    {
450        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
451        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
452    }
453
454    both ""
455        precision mediump float;
456
457        ${DECLARATIONS}
458
459        void main()
460        {
461            ${SETUP}
462            out0 = in0.x;
463            ${OUTPUT}
464        }
465    ""
466  end
467
468  case mediump_vec3_z
469    values
470    {
471        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
472        output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
473    }
474
475    both ""
476        precision mediump float;
477
478        ${DECLARATIONS}
479
480        void main()
481        {
482            ${SETUP}
483            out0 = in0.z;
484            ${OUTPUT}
485        }
486    ""
487  end
488
489  case mediump_vec3_xz
490    values
491    {
492        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
493        output vec2 out0 = [ vec2(0.0, 0.75) | vec2(1.0, 1.125) | vec2(-0.5, -4.875) | vec2(-32.0, -51.0) | vec2(-0.75, 0.0526315789474) ];
494    }
495
496    both ""
497        precision mediump float;
498
499        ${DECLARATIONS}
500
501        void main()
502        {
503            ${SETUP}
504            out0 = in0.xz;
505            ${OUTPUT}
506        }
507    ""
508  end
509
510  case mediump_vec3_zz
511    values
512    {
513        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
514        output vec2 out0 = [ vec2(0.75, 0.75) | vec2(1.125, 1.125) | vec2(-4.875, -4.875) | vec2(-51.0, -51.0) | vec2(0.0526315789474, 0.0526315789474) ];
515    }
516
517    both ""
518        precision mediump float;
519
520        ${DECLARATIONS}
521
522        void main()
523        {
524            ${SETUP}
525            out0 = in0.zz;
526            ${OUTPUT}
527        }
528    ""
529  end
530
531  case mediump_vec3_xyz
532    values
533    {
534        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
535        output vec3 out0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
536    }
537
538    both ""
539        precision mediump float;
540
541        ${DECLARATIONS}
542
543        void main()
544        {
545            ${SETUP}
546            out0 = in0.xyz;
547            ${OUTPUT}
548        }
549    ""
550  end
551
552  case mediump_vec3_zyx
553    values
554    {
555        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
556        output vec3 out0 = [ vec3(0.75, 0.5, 0.0) | vec3(1.125, 1.25, 1.0) | vec3(-4.875, -2.25, -0.5) | vec3(-51.0, 64.0, -32.0) | vec3(0.0526315789474, -0.0322580645161, -0.75) ];
557    }
558
559    both ""
560        precision mediump float;
561
562        ${DECLARATIONS}
563
564        void main()
565        {
566            ${SETUP}
567            out0 = in0.zyx;
568            ${OUTPUT}
569        }
570    ""
571  end
572
573  case mediump_vec3_xxx
574    values
575    {
576        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
577        output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(-0.5, -0.5, -0.5) | vec3(-32.0, -32.0, -32.0) | vec3(-0.75, -0.75, -0.75) ];
578    }
579
580    both ""
581        precision mediump float;
582
583        ${DECLARATIONS}
584
585        void main()
586        {
587            ${SETUP}
588            out0 = in0.xxx;
589            ${OUTPUT}
590        }
591    ""
592  end
593
594  case mediump_vec3_zzz
595    values
596    {
597        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
598        output vec3 out0 = [ vec3(0.75, 0.75, 0.75) | vec3(1.125, 1.125, 1.125) | vec3(-4.875, -4.875, -4.875) | vec3(-51.0, -51.0, -51.0) | vec3(0.0526315789474, 0.0526315789474, 0.0526315789474) ];
599    }
600
601    both ""
602        precision mediump float;
603
604        ${DECLARATIONS}
605
606        void main()
607        {
608            ${SETUP}
609            out0 = in0.zzz;
610            ${OUTPUT}
611        }
612    ""
613  end
614
615  case mediump_vec3_zzy
616    values
617    {
618        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
619        output vec3 out0 = [ vec3(0.75, 0.75, 0.5) | vec3(1.125, 1.125, 1.25) | vec3(-4.875, -4.875, -2.25) | vec3(-51.0, -51.0, 64.0) | vec3(0.0526315789474, 0.0526315789474, -0.0322580645161) ];
620    }
621
622    both ""
623        precision mediump float;
624
625        ${DECLARATIONS}
626
627        void main()
628        {
629            ${SETUP}
630            out0 = in0.zzy;
631            ${OUTPUT}
632        }
633    ""
634  end
635
636  case mediump_vec3_yxy
637    values
638    {
639        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
640        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
641    }
642
643    both ""
644        precision mediump float;
645
646        ${DECLARATIONS}
647
648        void main()
649        {
650            ${SETUP}
651            out0 = in0.yxy;
652            ${OUTPUT}
653        }
654    ""
655  end
656
657  case mediump_vec3_xzx
658    values
659    {
660        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
661        output vec3 out0 = [ vec3(0.0, 0.75, 0.0) | vec3(1.0, 1.125, 1.0) | vec3(-0.5, -4.875, -0.5) | vec3(-32.0, -51.0, -32.0) | vec3(-0.75, 0.0526315789474, -0.75) ];
662    }
663
664    both ""
665        precision mediump float;
666
667        ${DECLARATIONS}
668
669        void main()
670        {
671            ${SETUP}
672            out0 = in0.xzx;
673            ${OUTPUT}
674        }
675    ""
676  end
677
678  case mediump_vec3_xyyx
679    values
680    {
681        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
682        output vec4 out0 = [ vec4(0.0, 0.5, 0.5, 0.0) | vec4(1.0, 1.25, 1.25, 1.0) | vec4(-0.5, -2.25, -2.25, -0.5) | vec4(-32.0, 64.0, 64.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.0322580645161, -0.75) ];
683    }
684
685    both ""
686        precision mediump float;
687
688        ${DECLARATIONS}
689
690        void main()
691        {
692            ${SETUP}
693            out0 = in0.xyyx;
694            ${OUTPUT}
695        }
696    ""
697  end
698
699  case mediump_vec3_zzzz
700    values
701    {
702        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
703        output vec4 out0 = [ vec4(0.75, 0.75, 0.75, 0.75) | vec4(1.125, 1.125, 1.125, 1.125) | vec4(-4.875, -4.875, -4.875, -4.875) | vec4(-51.0, -51.0, -51.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.0526315789474, 0.0526315789474) ];
704    }
705
706    both ""
707        precision mediump float;
708
709        ${DECLARATIONS}
710
711        void main()
712        {
713            ${SETUP}
714            out0 = in0.zzzz;
715            ${OUTPUT}
716        }
717    ""
718  end
719
720  case mediump_vec3_s
721    values
722    {
723        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
724        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
725    }
726
727    both ""
728        precision mediump float;
729
730        ${DECLARATIONS}
731
732        void main()
733        {
734            ${SETUP}
735            out0 = in0.s;
736            ${OUTPUT}
737        }
738    ""
739  end
740
741  case mediump_vec3_p
742    values
743    {
744        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
745        output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
746    }
747
748    both ""
749        precision mediump float;
750
751        ${DECLARATIONS}
752
753        void main()
754        {
755            ${SETUP}
756            out0 = in0.p;
757            ${OUTPUT}
758        }
759    ""
760  end
761
762  case mediump_vec3_sp
763    values
764    {
765        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
766        output vec2 out0 = [ vec2(0.0, 0.75) | vec2(1.0, 1.125) | vec2(-0.5, -4.875) | vec2(-32.0, -51.0) | vec2(-0.75, 0.0526315789474) ];
767    }
768
769    both ""
770        precision mediump float;
771
772        ${DECLARATIONS}
773
774        void main()
775        {
776            ${SETUP}
777            out0 = in0.sp;
778            ${OUTPUT}
779        }
780    ""
781  end
782
783  case mediump_vec3_pp
784    values
785    {
786        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
787        output vec2 out0 = [ vec2(0.75, 0.75) | vec2(1.125, 1.125) | vec2(-4.875, -4.875) | vec2(-51.0, -51.0) | vec2(0.0526315789474, 0.0526315789474) ];
788    }
789
790    both ""
791        precision mediump float;
792
793        ${DECLARATIONS}
794
795        void main()
796        {
797            ${SETUP}
798            out0 = in0.pp;
799            ${OUTPUT}
800        }
801    ""
802  end
803
804  case mediump_vec3_stp
805    values
806    {
807        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
808        output vec3 out0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
809    }
810
811    both ""
812        precision mediump float;
813
814        ${DECLARATIONS}
815
816        void main()
817        {
818            ${SETUP}
819            out0 = in0.stp;
820            ${OUTPUT}
821        }
822    ""
823  end
824
825  case mediump_vec3_pts
826    values
827    {
828        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
829        output vec3 out0 = [ vec3(0.75, 0.5, 0.0) | vec3(1.125, 1.25, 1.0) | vec3(-4.875, -2.25, -0.5) | vec3(-51.0, 64.0, -32.0) | vec3(0.0526315789474, -0.0322580645161, -0.75) ];
830    }
831
832    both ""
833        precision mediump float;
834
835        ${DECLARATIONS}
836
837        void main()
838        {
839            ${SETUP}
840            out0 = in0.pts;
841            ${OUTPUT}
842        }
843    ""
844  end
845
846  case mediump_vec3_sss
847    values
848    {
849        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
850        output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(-0.5, -0.5, -0.5) | vec3(-32.0, -32.0, -32.0) | vec3(-0.75, -0.75, -0.75) ];
851    }
852
853    both ""
854        precision mediump float;
855
856        ${DECLARATIONS}
857
858        void main()
859        {
860            ${SETUP}
861            out0 = in0.sss;
862            ${OUTPUT}
863        }
864    ""
865  end
866
867  case mediump_vec3_ppp
868    values
869    {
870        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
871        output vec3 out0 = [ vec3(0.75, 0.75, 0.75) | vec3(1.125, 1.125, 1.125) | vec3(-4.875, -4.875, -4.875) | vec3(-51.0, -51.0, -51.0) | vec3(0.0526315789474, 0.0526315789474, 0.0526315789474) ];
872    }
873
874    both ""
875        precision mediump float;
876
877        ${DECLARATIONS}
878
879        void main()
880        {
881            ${SETUP}
882            out0 = in0.ppp;
883            ${OUTPUT}
884        }
885    ""
886  end
887
888  case mediump_vec3_ppt
889    values
890    {
891        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
892        output vec3 out0 = [ vec3(0.75, 0.75, 0.5) | vec3(1.125, 1.125, 1.25) | vec3(-4.875, -4.875, -2.25) | vec3(-51.0, -51.0, 64.0) | vec3(0.0526315789474, 0.0526315789474, -0.0322580645161) ];
893    }
894
895    both ""
896        precision mediump float;
897
898        ${DECLARATIONS}
899
900        void main()
901        {
902            ${SETUP}
903            out0 = in0.ppt;
904            ${OUTPUT}
905        }
906    ""
907  end
908
909  case mediump_vec3_tst
910    values
911    {
912        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
913        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
914    }
915
916    both ""
917        precision mediump float;
918
919        ${DECLARATIONS}
920
921        void main()
922        {
923            ${SETUP}
924            out0 = in0.tst;
925            ${OUTPUT}
926        }
927    ""
928  end
929
930  case mediump_vec3_sps
931    values
932    {
933        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
934        output vec3 out0 = [ vec3(0.0, 0.75, 0.0) | vec3(1.0, 1.125, 1.0) | vec3(-0.5, -4.875, -0.5) | vec3(-32.0, -51.0, -32.0) | vec3(-0.75, 0.0526315789474, -0.75) ];
935    }
936
937    both ""
938        precision mediump float;
939
940        ${DECLARATIONS}
941
942        void main()
943        {
944            ${SETUP}
945            out0 = in0.sps;
946            ${OUTPUT}
947        }
948    ""
949  end
950
951  case mediump_vec3_stts
952    values
953    {
954        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
955        output vec4 out0 = [ vec4(0.0, 0.5, 0.5, 0.0) | vec4(1.0, 1.25, 1.25, 1.0) | vec4(-0.5, -2.25, -2.25, -0.5) | vec4(-32.0, 64.0, 64.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.0322580645161, -0.75) ];
956    }
957
958    both ""
959        precision mediump float;
960
961        ${DECLARATIONS}
962
963        void main()
964        {
965            ${SETUP}
966            out0 = in0.stts;
967            ${OUTPUT}
968        }
969    ""
970  end
971
972  case mediump_vec3_pppp
973    values
974    {
975        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
976        output vec4 out0 = [ vec4(0.75, 0.75, 0.75, 0.75) | vec4(1.125, 1.125, 1.125, 1.125) | vec4(-4.875, -4.875, -4.875, -4.875) | vec4(-51.0, -51.0, -51.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.0526315789474, 0.0526315789474) ];
977    }
978
979    both ""
980        precision mediump float;
981
982        ${DECLARATIONS}
983
984        void main()
985        {
986            ${SETUP}
987            out0 = in0.pppp;
988            ${OUTPUT}
989        }
990    ""
991  end
992
993  case mediump_vec3_r
994    values
995    {
996        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
997        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
998    }
999
1000    both ""
1001        precision mediump float;
1002
1003        ${DECLARATIONS}
1004
1005        void main()
1006        {
1007            ${SETUP}
1008            out0 = in0.r;
1009            ${OUTPUT}
1010        }
1011    ""
1012  end
1013
1014  case mediump_vec3_b
1015    values
1016    {
1017        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1018        output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
1019    }
1020
1021    both ""
1022        precision mediump float;
1023
1024        ${DECLARATIONS}
1025
1026        void main()
1027        {
1028            ${SETUP}
1029            out0 = in0.b;
1030            ${OUTPUT}
1031        }
1032    ""
1033  end
1034
1035  case mediump_vec3_rb
1036    values
1037    {
1038        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1039        output vec2 out0 = [ vec2(0.0, 0.75) | vec2(1.0, 1.125) | vec2(-0.5, -4.875) | vec2(-32.0, -51.0) | vec2(-0.75, 0.0526315789474) ];
1040    }
1041
1042    both ""
1043        precision mediump float;
1044
1045        ${DECLARATIONS}
1046
1047        void main()
1048        {
1049            ${SETUP}
1050            out0 = in0.rb;
1051            ${OUTPUT}
1052        }
1053    ""
1054  end
1055
1056  case mediump_vec3_bb
1057    values
1058    {
1059        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1060        output vec2 out0 = [ vec2(0.75, 0.75) | vec2(1.125, 1.125) | vec2(-4.875, -4.875) | vec2(-51.0, -51.0) | vec2(0.0526315789474, 0.0526315789474) ];
1061    }
1062
1063    both ""
1064        precision mediump float;
1065
1066        ${DECLARATIONS}
1067
1068        void main()
1069        {
1070            ${SETUP}
1071            out0 = in0.bb;
1072            ${OUTPUT}
1073        }
1074    ""
1075  end
1076
1077  case mediump_vec3_rgb
1078    values
1079    {
1080        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1081        output vec3 out0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1082    }
1083
1084    both ""
1085        precision mediump float;
1086
1087        ${DECLARATIONS}
1088
1089        void main()
1090        {
1091            ${SETUP}
1092            out0 = in0.rgb;
1093            ${OUTPUT}
1094        }
1095    ""
1096  end
1097
1098  case mediump_vec3_bgr
1099    values
1100    {
1101        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1102        output vec3 out0 = [ vec3(0.75, 0.5, 0.0) | vec3(1.125, 1.25, 1.0) | vec3(-4.875, -2.25, -0.5) | vec3(-51.0, 64.0, -32.0) | vec3(0.0526315789474, -0.0322580645161, -0.75) ];
1103    }
1104
1105    both ""
1106        precision mediump float;
1107
1108        ${DECLARATIONS}
1109
1110        void main()
1111        {
1112            ${SETUP}
1113            out0 = in0.bgr;
1114            ${OUTPUT}
1115        }
1116    ""
1117  end
1118
1119  case mediump_vec3_rrr
1120    values
1121    {
1122        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1123        output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(-0.5, -0.5, -0.5) | vec3(-32.0, -32.0, -32.0) | vec3(-0.75, -0.75, -0.75) ];
1124    }
1125
1126    both ""
1127        precision mediump float;
1128
1129        ${DECLARATIONS}
1130
1131        void main()
1132        {
1133            ${SETUP}
1134            out0 = in0.rrr;
1135            ${OUTPUT}
1136        }
1137    ""
1138  end
1139
1140  case mediump_vec3_bbb
1141    values
1142    {
1143        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1144        output vec3 out0 = [ vec3(0.75, 0.75, 0.75) | vec3(1.125, 1.125, 1.125) | vec3(-4.875, -4.875, -4.875) | vec3(-51.0, -51.0, -51.0) | vec3(0.0526315789474, 0.0526315789474, 0.0526315789474) ];
1145    }
1146
1147    both ""
1148        precision mediump float;
1149
1150        ${DECLARATIONS}
1151
1152        void main()
1153        {
1154            ${SETUP}
1155            out0 = in0.bbb;
1156            ${OUTPUT}
1157        }
1158    ""
1159  end
1160
1161  case mediump_vec3_bbg
1162    values
1163    {
1164        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1165        output vec3 out0 = [ vec3(0.75, 0.75, 0.5) | vec3(1.125, 1.125, 1.25) | vec3(-4.875, -4.875, -2.25) | vec3(-51.0, -51.0, 64.0) | vec3(0.0526315789474, 0.0526315789474, -0.0322580645161) ];
1166    }
1167
1168    both ""
1169        precision mediump float;
1170
1171        ${DECLARATIONS}
1172
1173        void main()
1174        {
1175            ${SETUP}
1176            out0 = in0.bbg;
1177            ${OUTPUT}
1178        }
1179    ""
1180  end
1181
1182  case mediump_vec3_grg
1183    values
1184    {
1185        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1186        output vec3 out0 = [ vec3(0.5, 0.0, 0.5) | vec3(1.25, 1.0, 1.25) | vec3(-2.25, -0.5, -2.25) | vec3(64.0, -32.0, 64.0) | vec3(-0.0322580645161, -0.75, -0.0322580645161) ];
1187    }
1188
1189    both ""
1190        precision mediump float;
1191
1192        ${DECLARATIONS}
1193
1194        void main()
1195        {
1196            ${SETUP}
1197            out0 = in0.grg;
1198            ${OUTPUT}
1199        }
1200    ""
1201  end
1202
1203  case mediump_vec3_rbr
1204    values
1205    {
1206        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1207        output vec3 out0 = [ vec3(0.0, 0.75, 0.0) | vec3(1.0, 1.125, 1.0) | vec3(-0.5, -4.875, -0.5) | vec3(-32.0, -51.0, -32.0) | vec3(-0.75, 0.0526315789474, -0.75) ];
1208    }
1209
1210    both ""
1211        precision mediump float;
1212
1213        ${DECLARATIONS}
1214
1215        void main()
1216        {
1217            ${SETUP}
1218            out0 = in0.rbr;
1219            ${OUTPUT}
1220        }
1221    ""
1222  end
1223
1224  case mediump_vec3_rggr
1225    values
1226    {
1227        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1228        output vec4 out0 = [ vec4(0.0, 0.5, 0.5, 0.0) | vec4(1.0, 1.25, 1.25, 1.0) | vec4(-0.5, -2.25, -2.25, -0.5) | vec4(-32.0, 64.0, 64.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.0322580645161, -0.75) ];
1229    }
1230
1231    both ""
1232        precision mediump float;
1233
1234        ${DECLARATIONS}
1235
1236        void main()
1237        {
1238            ${SETUP}
1239            out0 = in0.rggr;
1240            ${OUTPUT}
1241        }
1242    ""
1243  end
1244
1245  case mediump_vec3_bbbb
1246    values
1247    {
1248        input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
1249        output vec4 out0 = [ vec4(0.75, 0.75, 0.75, 0.75) | vec4(1.125, 1.125, 1.125, 1.125) | vec4(-4.875, -4.875, -4.875, -4.875) | vec4(-51.0, -51.0, -51.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.0526315789474, 0.0526315789474) ];
1250    }
1251
1252    both ""
1253        precision mediump float;
1254
1255        ${DECLARATIONS}
1256
1257        void main()
1258        {
1259            ${SETUP}
1260            out0 = in0.bbbb;
1261            ${OUTPUT}
1262        }
1263    ""
1264  end
1265
1266  case mediump_vec4_x
1267    values
1268    {
1269        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1270        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1271    }
1272
1273    both ""
1274        precision mediump float;
1275
1276        ${DECLARATIONS}
1277
1278        void main()
1279        {
1280            ${SETUP}
1281            out0 = in0.x;
1282            ${OUTPUT}
1283        }
1284    ""
1285  end
1286
1287  case mediump_vec4_w
1288    values
1289    {
1290        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1291        output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
1292    }
1293
1294    both ""
1295        precision mediump float;
1296
1297        ${DECLARATIONS}
1298
1299        void main()
1300        {
1301            ${SETUP}
1302            out0 = in0.w;
1303            ${OUTPUT}
1304        }
1305    ""
1306  end
1307
1308  case mediump_vec4_wx
1309    values
1310    {
1311        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1312        output vec2 out0 = [ vec2(0.825, 0.0) | vec2(1.75, 1.0) | vec2(9.0, -0.5) | vec2(24.0, -32.0) | vec2(0.25, -0.75) ];
1313    }
1314
1315    both ""
1316        precision mediump float;
1317
1318        ${DECLARATIONS}
1319
1320        void main()
1321        {
1322            ${SETUP}
1323            out0 = in0.wx;
1324            ${OUTPUT}
1325        }
1326    ""
1327  end
1328
1329  case mediump_vec4_wz
1330    values
1331    {
1332        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1333        output vec2 out0 = [ vec2(0.825, 0.75) | vec2(1.75, 1.125) | vec2(9.0, -4.875) | vec2(24.0, -51.0) | vec2(0.25, 0.0526315789474) ];
1334    }
1335
1336    both ""
1337        precision mediump float;
1338
1339        ${DECLARATIONS}
1340
1341        void main()
1342        {
1343            ${SETUP}
1344            out0 = in0.wz;
1345            ${OUTPUT}
1346        }
1347    ""
1348  end
1349
1350  case mediump_vec4_www
1351    values
1352    {
1353        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1354        output vec3 out0 = [ vec3(0.825, 0.825, 0.825) | vec3(1.75, 1.75, 1.75) | vec3(9.0, 9.0, 9.0) | vec3(24.0, 24.0, 24.0) | vec3(0.25, 0.25, 0.25) ];
1355    }
1356
1357    both ""
1358        precision mediump float;
1359
1360        ${DECLARATIONS}
1361
1362        void main()
1363        {
1364            ${SETUP}
1365            out0 = in0.www;
1366            ${OUTPUT}
1367        }
1368    ""
1369  end
1370
1371  case mediump_vec4_yyw
1372    values
1373    {
1374        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1375        output vec3 out0 = [ vec3(0.5, 0.5, 0.825) | vec3(1.25, 1.25, 1.75) | vec3(-2.25, -2.25, 9.0) | vec3(64.0, 64.0, 24.0) | vec3(-0.0322580645161, -0.0322580645161, 0.25) ];
1376    }
1377
1378    both ""
1379        precision mediump float;
1380
1381        ${DECLARATIONS}
1382
1383        void main()
1384        {
1385            ${SETUP}
1386            out0 = in0.yyw;
1387            ${OUTPUT}
1388        }
1389    ""
1390  end
1391
1392  case mediump_vec4_wzy
1393    values
1394    {
1395        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1396        output vec3 out0 = [ vec3(0.825, 0.75, 0.5) | vec3(1.75, 1.125, 1.25) | vec3(9.0, -4.875, -2.25) | vec3(24.0, -51.0, 64.0) | vec3(0.25, 0.0526315789474, -0.0322580645161) ];
1397    }
1398
1399    both ""
1400        precision mediump float;
1401
1402        ${DECLARATIONS}
1403
1404        void main()
1405        {
1406            ${SETUP}
1407            out0 = in0.wzy;
1408            ${OUTPUT}
1409        }
1410    ""
1411  end
1412
1413  case mediump_vec4_xyzw
1414    values
1415    {
1416        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1417        output vec4 out0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1418    }
1419
1420    both ""
1421        precision mediump float;
1422
1423        ${DECLARATIONS}
1424
1425        void main()
1426        {
1427            ${SETUP}
1428            out0 = in0.xyzw;
1429            ${OUTPUT}
1430        }
1431    ""
1432  end
1433
1434  case mediump_vec4_wzyx
1435    values
1436    {
1437        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1438        output vec4 out0 = [ vec4(0.825, 0.75, 0.5, 0.0) | vec4(1.75, 1.125, 1.25, 1.0) | vec4(9.0, -4.875, -2.25, -0.5) | vec4(24.0, -51.0, 64.0, -32.0) | vec4(0.25, 0.0526315789474, -0.0322580645161, -0.75) ];
1439    }
1440
1441    both ""
1442        precision mediump float;
1443
1444        ${DECLARATIONS}
1445
1446        void main()
1447        {
1448            ${SETUP}
1449            out0 = in0.wzyx;
1450            ${OUTPUT}
1451        }
1452    ""
1453  end
1454
1455  case mediump_vec4_xxxx
1456    values
1457    {
1458        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1459        output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(-0.5, -0.5, -0.5, -0.5) | vec4(-32.0, -32.0, -32.0, -32.0) | vec4(-0.75, -0.75, -0.75, -0.75) ];
1460    }
1461
1462    both ""
1463        precision mediump float;
1464
1465        ${DECLARATIONS}
1466
1467        void main()
1468        {
1469            ${SETUP}
1470            out0 = in0.xxxx;
1471            ${OUTPUT}
1472        }
1473    ""
1474  end
1475
1476  case mediump_vec4_yyyy
1477    values
1478    {
1479        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1480        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
1481    }
1482
1483    both ""
1484        precision mediump float;
1485
1486        ${DECLARATIONS}
1487
1488        void main()
1489        {
1490            ${SETUP}
1491            out0 = in0.yyyy;
1492            ${OUTPUT}
1493        }
1494    ""
1495  end
1496
1497  case mediump_vec4_wwww
1498    values
1499    {
1500        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1501        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.825) | vec4(1.75, 1.75, 1.75, 1.75) | vec4(9.0, 9.0, 9.0, 9.0) | vec4(24.0, 24.0, 24.0, 24.0) | vec4(0.25, 0.25, 0.25, 0.25) ];
1502    }
1503
1504    both ""
1505        precision mediump float;
1506
1507        ${DECLARATIONS}
1508
1509        void main()
1510        {
1511            ${SETUP}
1512            out0 = in0.wwww;
1513            ${OUTPUT}
1514        }
1515    ""
1516  end
1517
1518  case mediump_vec4_wzzw
1519    values
1520    {
1521        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1522        output vec4 out0 = [ vec4(0.825, 0.75, 0.75, 0.825) | vec4(1.75, 1.125, 1.125, 1.75) | vec4(9.0, -4.875, -4.875, 9.0) | vec4(24.0, -51.0, -51.0, 24.0) | vec4(0.25, 0.0526315789474, 0.0526315789474, 0.25) ];
1523    }
1524
1525    both ""
1526        precision mediump float;
1527
1528        ${DECLARATIONS}
1529
1530        void main()
1531        {
1532            ${SETUP}
1533            out0 = in0.wzzw;
1534            ${OUTPUT}
1535        }
1536    ""
1537  end
1538
1539  case mediump_vec4_wwwy
1540    values
1541    {
1542        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1543        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.5) | vec4(1.75, 1.75, 1.75, 1.25) | vec4(9.0, 9.0, 9.0, -2.25) | vec4(24.0, 24.0, 24.0, 64.0) | vec4(0.25, 0.25, 0.25, -0.0322580645161) ];
1544    }
1545
1546    both ""
1547        precision mediump float;
1548
1549        ${DECLARATIONS}
1550
1551        void main()
1552        {
1553            ${SETUP}
1554            out0 = in0.wwwy;
1555            ${OUTPUT}
1556        }
1557    ""
1558  end
1559
1560  case mediump_vec4_xyxx
1561    values
1562    {
1563        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1564        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
1565    }
1566
1567    both ""
1568        precision mediump float;
1569
1570        ${DECLARATIONS}
1571
1572        void main()
1573        {
1574            ${SETUP}
1575            out0 = in0.xyxx;
1576            ${OUTPUT}
1577        }
1578    ""
1579  end
1580
1581  case mediump_vec4_zzwz
1582    values
1583    {
1584        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1585        output vec4 out0 = [ vec4(0.75, 0.75, 0.825, 0.75) | vec4(1.125, 1.125, 1.75, 1.125) | vec4(-4.875, -4.875, 9.0, -4.875) | vec4(-51.0, -51.0, 24.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.25, 0.0526315789474) ];
1586    }
1587
1588    both ""
1589        precision mediump float;
1590
1591        ${DECLARATIONS}
1592
1593        void main()
1594        {
1595            ${SETUP}
1596            out0 = in0.zzwz;
1597            ${OUTPUT}
1598        }
1599    ""
1600  end
1601
1602  case mediump_vec4_s
1603    values
1604    {
1605        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1606        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1607    }
1608
1609    both ""
1610        precision mediump float;
1611
1612        ${DECLARATIONS}
1613
1614        void main()
1615        {
1616            ${SETUP}
1617            out0 = in0.s;
1618            ${OUTPUT}
1619        }
1620    ""
1621  end
1622
1623  case mediump_vec4_q
1624    values
1625    {
1626        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1627        output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
1628    }
1629
1630    both ""
1631        precision mediump float;
1632
1633        ${DECLARATIONS}
1634
1635        void main()
1636        {
1637            ${SETUP}
1638            out0 = in0.q;
1639            ${OUTPUT}
1640        }
1641    ""
1642  end
1643
1644  case mediump_vec4_qs
1645    values
1646    {
1647        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1648        output vec2 out0 = [ vec2(0.825, 0.0) | vec2(1.75, 1.0) | vec2(9.0, -0.5) | vec2(24.0, -32.0) | vec2(0.25, -0.75) ];
1649    }
1650
1651    both ""
1652        precision mediump float;
1653
1654        ${DECLARATIONS}
1655
1656        void main()
1657        {
1658            ${SETUP}
1659            out0 = in0.qs;
1660            ${OUTPUT}
1661        }
1662    ""
1663  end
1664
1665  case mediump_vec4_qp
1666    values
1667    {
1668        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1669        output vec2 out0 = [ vec2(0.825, 0.75) | vec2(1.75, 1.125) | vec2(9.0, -4.875) | vec2(24.0, -51.0) | vec2(0.25, 0.0526315789474) ];
1670    }
1671
1672    both ""
1673        precision mediump float;
1674
1675        ${DECLARATIONS}
1676
1677        void main()
1678        {
1679            ${SETUP}
1680            out0 = in0.qp;
1681            ${OUTPUT}
1682        }
1683    ""
1684  end
1685
1686  case mediump_vec4_qqq
1687    values
1688    {
1689        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1690        output vec3 out0 = [ vec3(0.825, 0.825, 0.825) | vec3(1.75, 1.75, 1.75) | vec3(9.0, 9.0, 9.0) | vec3(24.0, 24.0, 24.0) | vec3(0.25, 0.25, 0.25) ];
1691    }
1692
1693    both ""
1694        precision mediump float;
1695
1696        ${DECLARATIONS}
1697
1698        void main()
1699        {
1700            ${SETUP}
1701            out0 = in0.qqq;
1702            ${OUTPUT}
1703        }
1704    ""
1705  end
1706
1707  case mediump_vec4_ttq
1708    values
1709    {
1710        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1711        output vec3 out0 = [ vec3(0.5, 0.5, 0.825) | vec3(1.25, 1.25, 1.75) | vec3(-2.25, -2.25, 9.0) | vec3(64.0, 64.0, 24.0) | vec3(-0.0322580645161, -0.0322580645161, 0.25) ];
1712    }
1713
1714    both ""
1715        precision mediump float;
1716
1717        ${DECLARATIONS}
1718
1719        void main()
1720        {
1721            ${SETUP}
1722            out0 = in0.ttq;
1723            ${OUTPUT}
1724        }
1725    ""
1726  end
1727
1728  case mediump_vec4_qpt
1729    values
1730    {
1731        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1732        output vec3 out0 = [ vec3(0.825, 0.75, 0.5) | vec3(1.75, 1.125, 1.25) | vec3(9.0, -4.875, -2.25) | vec3(24.0, -51.0, 64.0) | vec3(0.25, 0.0526315789474, -0.0322580645161) ];
1733    }
1734
1735    both ""
1736        precision mediump float;
1737
1738        ${DECLARATIONS}
1739
1740        void main()
1741        {
1742            ${SETUP}
1743            out0 = in0.qpt;
1744            ${OUTPUT}
1745        }
1746    ""
1747  end
1748
1749  case mediump_vec4_stpq
1750    values
1751    {
1752        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1753        output vec4 out0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1754    }
1755
1756    both ""
1757        precision mediump float;
1758
1759        ${DECLARATIONS}
1760
1761        void main()
1762        {
1763            ${SETUP}
1764            out0 = in0.stpq;
1765            ${OUTPUT}
1766        }
1767    ""
1768  end
1769
1770  case mediump_vec4_qpts
1771    values
1772    {
1773        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1774        output vec4 out0 = [ vec4(0.825, 0.75, 0.5, 0.0) | vec4(1.75, 1.125, 1.25, 1.0) | vec4(9.0, -4.875, -2.25, -0.5) | vec4(24.0, -51.0, 64.0, -32.0) | vec4(0.25, 0.0526315789474, -0.0322580645161, -0.75) ];
1775    }
1776
1777    both ""
1778        precision mediump float;
1779
1780        ${DECLARATIONS}
1781
1782        void main()
1783        {
1784            ${SETUP}
1785            out0 = in0.qpts;
1786            ${OUTPUT}
1787        }
1788    ""
1789  end
1790
1791  case mediump_vec4_ssss
1792    values
1793    {
1794        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1795        output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(-0.5, -0.5, -0.5, -0.5) | vec4(-32.0, -32.0, -32.0, -32.0) | vec4(-0.75, -0.75, -0.75, -0.75) ];
1796    }
1797
1798    both ""
1799        precision mediump float;
1800
1801        ${DECLARATIONS}
1802
1803        void main()
1804        {
1805            ${SETUP}
1806            out0 = in0.ssss;
1807            ${OUTPUT}
1808        }
1809    ""
1810  end
1811
1812  case mediump_vec4_tttt
1813    values
1814    {
1815        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1816        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
1817    }
1818
1819    both ""
1820        precision mediump float;
1821
1822        ${DECLARATIONS}
1823
1824        void main()
1825        {
1826            ${SETUP}
1827            out0 = in0.tttt;
1828            ${OUTPUT}
1829        }
1830    ""
1831  end
1832
1833  case mediump_vec4_qqqq
1834    values
1835    {
1836        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1837        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.825) | vec4(1.75, 1.75, 1.75, 1.75) | vec4(9.0, 9.0, 9.0, 9.0) | vec4(24.0, 24.0, 24.0, 24.0) | vec4(0.25, 0.25, 0.25, 0.25) ];
1838    }
1839
1840    both ""
1841        precision mediump float;
1842
1843        ${DECLARATIONS}
1844
1845        void main()
1846        {
1847            ${SETUP}
1848            out0 = in0.qqqq;
1849            ${OUTPUT}
1850        }
1851    ""
1852  end
1853
1854  case mediump_vec4_qppq
1855    values
1856    {
1857        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1858        output vec4 out0 = [ vec4(0.825, 0.75, 0.75, 0.825) | vec4(1.75, 1.125, 1.125, 1.75) | vec4(9.0, -4.875, -4.875, 9.0) | vec4(24.0, -51.0, -51.0, 24.0) | vec4(0.25, 0.0526315789474, 0.0526315789474, 0.25) ];
1859    }
1860
1861    both ""
1862        precision mediump float;
1863
1864        ${DECLARATIONS}
1865
1866        void main()
1867        {
1868            ${SETUP}
1869            out0 = in0.qppq;
1870            ${OUTPUT}
1871        }
1872    ""
1873  end
1874
1875  case mediump_vec4_qqqt
1876    values
1877    {
1878        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1879        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.5) | vec4(1.75, 1.75, 1.75, 1.25) | vec4(9.0, 9.0, 9.0, -2.25) | vec4(24.0, 24.0, 24.0, 64.0) | vec4(0.25, 0.25, 0.25, -0.0322580645161) ];
1880    }
1881
1882    both ""
1883        precision mediump float;
1884
1885        ${DECLARATIONS}
1886
1887        void main()
1888        {
1889            ${SETUP}
1890            out0 = in0.qqqt;
1891            ${OUTPUT}
1892        }
1893    ""
1894  end
1895
1896  case mediump_vec4_stss
1897    values
1898    {
1899        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1900        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
1901    }
1902
1903    both ""
1904        precision mediump float;
1905
1906        ${DECLARATIONS}
1907
1908        void main()
1909        {
1910            ${SETUP}
1911            out0 = in0.stss;
1912            ${OUTPUT}
1913        }
1914    ""
1915  end
1916
1917  case mediump_vec4_ppqp
1918    values
1919    {
1920        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1921        output vec4 out0 = [ vec4(0.75, 0.75, 0.825, 0.75) | vec4(1.125, 1.125, 1.75, 1.125) | vec4(-4.875, -4.875, 9.0, -4.875) | vec4(-51.0, -51.0, 24.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.25, 0.0526315789474) ];
1922    }
1923
1924    both ""
1925        precision mediump float;
1926
1927        ${DECLARATIONS}
1928
1929        void main()
1930        {
1931            ${SETUP}
1932            out0 = in0.ppqp;
1933            ${OUTPUT}
1934        }
1935    ""
1936  end
1937
1938  case mediump_vec4_r
1939    values
1940    {
1941        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1942        output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1943    }
1944
1945    both ""
1946        precision mediump float;
1947
1948        ${DECLARATIONS}
1949
1950        void main()
1951        {
1952            ${SETUP}
1953            out0 = in0.r;
1954            ${OUTPUT}
1955        }
1956    ""
1957  end
1958
1959  case mediump_vec4_a
1960    values
1961    {
1962        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1963        output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
1964    }
1965
1966    both ""
1967        precision mediump float;
1968
1969        ${DECLARATIONS}
1970
1971        void main()
1972        {
1973            ${SETUP}
1974            out0 = in0.a;
1975            ${OUTPUT}
1976        }
1977    ""
1978  end
1979
1980  case mediump_vec4_ar
1981    values
1982    {
1983        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
1984        output vec2 out0 = [ vec2(0.825, 0.0) | vec2(1.75, 1.0) | vec2(9.0, -0.5) | vec2(24.0, -32.0) | vec2(0.25, -0.75) ];
1985    }
1986
1987    both ""
1988        precision mediump float;
1989
1990        ${DECLARATIONS}
1991
1992        void main()
1993        {
1994            ${SETUP}
1995            out0 = in0.ar;
1996            ${OUTPUT}
1997        }
1998    ""
1999  end
2000
2001  case mediump_vec4_ab
2002    values
2003    {
2004        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2005        output vec2 out0 = [ vec2(0.825, 0.75) | vec2(1.75, 1.125) | vec2(9.0, -4.875) | vec2(24.0, -51.0) | vec2(0.25, 0.0526315789474) ];
2006    }
2007
2008    both ""
2009        precision mediump float;
2010
2011        ${DECLARATIONS}
2012
2013        void main()
2014        {
2015            ${SETUP}
2016            out0 = in0.ab;
2017            ${OUTPUT}
2018        }
2019    ""
2020  end
2021
2022  case mediump_vec4_aaa
2023    values
2024    {
2025        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2026        output vec3 out0 = [ vec3(0.825, 0.825, 0.825) | vec3(1.75, 1.75, 1.75) | vec3(9.0, 9.0, 9.0) | vec3(24.0, 24.0, 24.0) | vec3(0.25, 0.25, 0.25) ];
2027    }
2028
2029    both ""
2030        precision mediump float;
2031
2032        ${DECLARATIONS}
2033
2034        void main()
2035        {
2036            ${SETUP}
2037            out0 = in0.aaa;
2038            ${OUTPUT}
2039        }
2040    ""
2041  end
2042
2043  case mediump_vec4_gga
2044    values
2045    {
2046        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2047        output vec3 out0 = [ vec3(0.5, 0.5, 0.825) | vec3(1.25, 1.25, 1.75) | vec3(-2.25, -2.25, 9.0) | vec3(64.0, 64.0, 24.0) | vec3(-0.0322580645161, -0.0322580645161, 0.25) ];
2048    }
2049
2050    both ""
2051        precision mediump float;
2052
2053        ${DECLARATIONS}
2054
2055        void main()
2056        {
2057            ${SETUP}
2058            out0 = in0.gga;
2059            ${OUTPUT}
2060        }
2061    ""
2062  end
2063
2064  case mediump_vec4_abg
2065    values
2066    {
2067        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2068        output vec3 out0 = [ vec3(0.825, 0.75, 0.5) | vec3(1.75, 1.125, 1.25) | vec3(9.0, -4.875, -2.25) | vec3(24.0, -51.0, 64.0) | vec3(0.25, 0.0526315789474, -0.0322580645161) ];
2069    }
2070
2071    both ""
2072        precision mediump float;
2073
2074        ${DECLARATIONS}
2075
2076        void main()
2077        {
2078            ${SETUP}
2079            out0 = in0.abg;
2080            ${OUTPUT}
2081        }
2082    ""
2083  end
2084
2085  case mediump_vec4_rgba
2086    values
2087    {
2088        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2089        output vec4 out0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2090    }
2091
2092    both ""
2093        precision mediump float;
2094
2095        ${DECLARATIONS}
2096
2097        void main()
2098        {
2099            ${SETUP}
2100            out0 = in0.rgba;
2101            ${OUTPUT}
2102        }
2103    ""
2104  end
2105
2106  case mediump_vec4_abgr
2107    values
2108    {
2109        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2110        output vec4 out0 = [ vec4(0.825, 0.75, 0.5, 0.0) | vec4(1.75, 1.125, 1.25, 1.0) | vec4(9.0, -4.875, -2.25, -0.5) | vec4(24.0, -51.0, 64.0, -32.0) | vec4(0.25, 0.0526315789474, -0.0322580645161, -0.75) ];
2111    }
2112
2113    both ""
2114        precision mediump float;
2115
2116        ${DECLARATIONS}
2117
2118        void main()
2119        {
2120            ${SETUP}
2121            out0 = in0.abgr;
2122            ${OUTPUT}
2123        }
2124    ""
2125  end
2126
2127  case mediump_vec4_rrrr
2128    values
2129    {
2130        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2131        output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(-0.5, -0.5, -0.5, -0.5) | vec4(-32.0, -32.0, -32.0, -32.0) | vec4(-0.75, -0.75, -0.75, -0.75) ];
2132    }
2133
2134    both ""
2135        precision mediump float;
2136
2137        ${DECLARATIONS}
2138
2139        void main()
2140        {
2141            ${SETUP}
2142            out0 = in0.rrrr;
2143            ${OUTPUT}
2144        }
2145    ""
2146  end
2147
2148  case mediump_vec4_gggg
2149    values
2150    {
2151        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2152        output vec4 out0 = [ vec4(0.5, 0.5, 0.5, 0.5) | vec4(1.25, 1.25, 1.25, 1.25) | vec4(-2.25, -2.25, -2.25, -2.25) | vec4(64.0, 64.0, 64.0, 64.0) | vec4(-0.0322580645161, -0.0322580645161, -0.0322580645161, -0.0322580645161) ];
2153    }
2154
2155    both ""
2156        precision mediump float;
2157
2158        ${DECLARATIONS}
2159
2160        void main()
2161        {
2162            ${SETUP}
2163            out0 = in0.gggg;
2164            ${OUTPUT}
2165        }
2166    ""
2167  end
2168
2169  case mediump_vec4_aaaa
2170    values
2171    {
2172        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2173        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.825) | vec4(1.75, 1.75, 1.75, 1.75) | vec4(9.0, 9.0, 9.0, 9.0) | vec4(24.0, 24.0, 24.0, 24.0) | vec4(0.25, 0.25, 0.25, 0.25) ];
2174    }
2175
2176    both ""
2177        precision mediump float;
2178
2179        ${DECLARATIONS}
2180
2181        void main()
2182        {
2183            ${SETUP}
2184            out0 = in0.aaaa;
2185            ${OUTPUT}
2186        }
2187    ""
2188  end
2189
2190  case mediump_vec4_abba
2191    values
2192    {
2193        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2194        output vec4 out0 = [ vec4(0.825, 0.75, 0.75, 0.825) | vec4(1.75, 1.125, 1.125, 1.75) | vec4(9.0, -4.875, -4.875, 9.0) | vec4(24.0, -51.0, -51.0, 24.0) | vec4(0.25, 0.0526315789474, 0.0526315789474, 0.25) ];
2195    }
2196
2197    both ""
2198        precision mediump float;
2199
2200        ${DECLARATIONS}
2201
2202        void main()
2203        {
2204            ${SETUP}
2205            out0 = in0.abba;
2206            ${OUTPUT}
2207        }
2208    ""
2209  end
2210
2211  case mediump_vec4_aaag
2212    values
2213    {
2214        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2215        output vec4 out0 = [ vec4(0.825, 0.825, 0.825, 0.5) | vec4(1.75, 1.75, 1.75, 1.25) | vec4(9.0, 9.0, 9.0, -2.25) | vec4(24.0, 24.0, 24.0, 64.0) | vec4(0.25, 0.25, 0.25, -0.0322580645161) ];
2216    }
2217
2218    both ""
2219        precision mediump float;
2220
2221        ${DECLARATIONS}
2222
2223        void main()
2224        {
2225            ${SETUP}
2226            out0 = in0.aaag;
2227            ${OUTPUT}
2228        }
2229    ""
2230  end
2231
2232  case mediump_vec4_rgrr
2233    values
2234    {
2235        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2236        output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.5, -2.25, -0.5, -0.5) | vec4(-32.0, 64.0, -32.0, -32.0) | vec4(-0.75, -0.0322580645161, -0.75, -0.75) ];
2237    }
2238
2239    both ""
2240        precision mediump float;
2241
2242        ${DECLARATIONS}
2243
2244        void main()
2245        {
2246            ${SETUP}
2247            out0 = in0.rgrr;
2248            ${OUTPUT}
2249        }
2250    ""
2251  end
2252
2253  case mediump_vec4_bbab
2254    values
2255    {
2256        input vec4 in0 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
2257        output vec4 out0 = [ vec4(0.75, 0.75, 0.825, 0.75) | vec4(1.125, 1.125, 1.75, 1.125) | vec4(-4.875, -4.875, 9.0, -4.875) | vec4(-51.0, -51.0, 24.0, -51.0) | vec4(0.0526315789474, 0.0526315789474, 0.25, 0.0526315789474) ];
2258    }
2259
2260    both ""
2261        precision mediump float;
2262
2263        ${DECLARATIONS}
2264
2265        void main()
2266        {
2267            ${SETUP}
2268            out0 = in0.bbab;
2269            ${OUTPUT}
2270        }
2271    ""
2272  end
2273
2274  case mediump_ivec2_x
2275    values
2276    {
2277        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2278        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
2279    }
2280
2281    both ""
2282        precision mediump float;
2283
2284        ${DECLARATIONS}
2285
2286        void main()
2287        {
2288            ${SETUP}
2289            out0 = in0.x;
2290            ${OUTPUT}
2291        }
2292    ""
2293  end
2294
2295  case mediump_ivec2_xx
2296    values
2297    {
2298        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2299        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
2300    }
2301
2302    both ""
2303        precision mediump float;
2304
2305        ${DECLARATIONS}
2306
2307        void main()
2308        {
2309            ${SETUP}
2310            out0 = in0.xx;
2311            ${OUTPUT}
2312        }
2313    ""
2314  end
2315
2316  case mediump_ivec2_xy
2317    values
2318    {
2319        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2320        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2321    }
2322
2323    both ""
2324        precision mediump float;
2325
2326        ${DECLARATIONS}
2327
2328        void main()
2329        {
2330            ${SETUP}
2331            out0 = in0.xy;
2332            ${OUTPUT}
2333        }
2334    ""
2335  end
2336
2337  case mediump_ivec2_yx
2338    values
2339    {
2340        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2341        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
2342    }
2343
2344    both ""
2345        precision mediump float;
2346
2347        ${DECLARATIONS}
2348
2349        void main()
2350        {
2351            ${SETUP}
2352            out0 = in0.yx;
2353            ${OUTPUT}
2354        }
2355    ""
2356  end
2357
2358  case mediump_ivec2_yxy
2359    values
2360    {
2361        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2362        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
2363    }
2364
2365    both ""
2366        precision mediump float;
2367
2368        ${DECLARATIONS}
2369
2370        void main()
2371        {
2372            ${SETUP}
2373            out0 = in0.yxy;
2374            ${OUTPUT}
2375        }
2376    ""
2377  end
2378
2379  case mediump_ivec2_xyxx
2380    values
2381    {
2382        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2383        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
2384    }
2385
2386    both ""
2387        precision mediump float;
2388
2389        ${DECLARATIONS}
2390
2391        void main()
2392        {
2393            ${SETUP}
2394            out0 = in0.xyxx;
2395            ${OUTPUT}
2396        }
2397    ""
2398  end
2399
2400  case mediump_ivec2_yyyy
2401    values
2402    {
2403        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2404        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
2405    }
2406
2407    both ""
2408        precision mediump float;
2409
2410        ${DECLARATIONS}
2411
2412        void main()
2413        {
2414            ${SETUP}
2415            out0 = in0.yyyy;
2416            ${OUTPUT}
2417        }
2418    ""
2419  end
2420
2421  case mediump_ivec2_s
2422    values
2423    {
2424        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2425        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
2426    }
2427
2428    both ""
2429        precision mediump float;
2430
2431        ${DECLARATIONS}
2432
2433        void main()
2434        {
2435            ${SETUP}
2436            out0 = in0.s;
2437            ${OUTPUT}
2438        }
2439    ""
2440  end
2441
2442  case mediump_ivec2_ss
2443    values
2444    {
2445        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2446        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
2447    }
2448
2449    both ""
2450        precision mediump float;
2451
2452        ${DECLARATIONS}
2453
2454        void main()
2455        {
2456            ${SETUP}
2457            out0 = in0.ss;
2458            ${OUTPUT}
2459        }
2460    ""
2461  end
2462
2463  case mediump_ivec2_st
2464    values
2465    {
2466        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2467        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2468    }
2469
2470    both ""
2471        precision mediump float;
2472
2473        ${DECLARATIONS}
2474
2475        void main()
2476        {
2477            ${SETUP}
2478            out0 = in0.st;
2479            ${OUTPUT}
2480        }
2481    ""
2482  end
2483
2484  case mediump_ivec2_ts
2485    values
2486    {
2487        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2488        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
2489    }
2490
2491    both ""
2492        precision mediump float;
2493
2494        ${DECLARATIONS}
2495
2496        void main()
2497        {
2498            ${SETUP}
2499            out0 = in0.ts;
2500            ${OUTPUT}
2501        }
2502    ""
2503  end
2504
2505  case mediump_ivec2_tst
2506    values
2507    {
2508        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2509        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
2510    }
2511
2512    both ""
2513        precision mediump float;
2514
2515        ${DECLARATIONS}
2516
2517        void main()
2518        {
2519            ${SETUP}
2520            out0 = in0.tst;
2521            ${OUTPUT}
2522        }
2523    ""
2524  end
2525
2526  case mediump_ivec2_stss
2527    values
2528    {
2529        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2530        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
2531    }
2532
2533    both ""
2534        precision mediump float;
2535
2536        ${DECLARATIONS}
2537
2538        void main()
2539        {
2540            ${SETUP}
2541            out0 = in0.stss;
2542            ${OUTPUT}
2543        }
2544    ""
2545  end
2546
2547  case mediump_ivec2_tttt
2548    values
2549    {
2550        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2551        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
2552    }
2553
2554    both ""
2555        precision mediump float;
2556
2557        ${DECLARATIONS}
2558
2559        void main()
2560        {
2561            ${SETUP}
2562            out0 = in0.tttt;
2563            ${OUTPUT}
2564        }
2565    ""
2566  end
2567
2568  case mediump_ivec2_r
2569    values
2570    {
2571        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2572        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
2573    }
2574
2575    both ""
2576        precision mediump float;
2577
2578        ${DECLARATIONS}
2579
2580        void main()
2581        {
2582            ${SETUP}
2583            out0 = in0.r;
2584            ${OUTPUT}
2585        }
2586    ""
2587  end
2588
2589  case mediump_ivec2_rr
2590    values
2591    {
2592        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2593        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
2594    }
2595
2596    both ""
2597        precision mediump float;
2598
2599        ${DECLARATIONS}
2600
2601        void main()
2602        {
2603            ${SETUP}
2604            out0 = in0.rr;
2605            ${OUTPUT}
2606        }
2607    ""
2608  end
2609
2610  case mediump_ivec2_rg
2611    values
2612    {
2613        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2614        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2615    }
2616
2617    both ""
2618        precision mediump float;
2619
2620        ${DECLARATIONS}
2621
2622        void main()
2623        {
2624            ${SETUP}
2625            out0 = in0.rg;
2626            ${OUTPUT}
2627        }
2628    ""
2629  end
2630
2631  case mediump_ivec2_gr
2632    values
2633    {
2634        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2635        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
2636    }
2637
2638    both ""
2639        precision mediump float;
2640
2641        ${DECLARATIONS}
2642
2643        void main()
2644        {
2645            ${SETUP}
2646            out0 = in0.gr;
2647            ${OUTPUT}
2648        }
2649    ""
2650  end
2651
2652  case mediump_ivec2_grg
2653    values
2654    {
2655        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2656        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
2657    }
2658
2659    both ""
2660        precision mediump float;
2661
2662        ${DECLARATIONS}
2663
2664        void main()
2665        {
2666            ${SETUP}
2667            out0 = in0.grg;
2668            ${OUTPUT}
2669        }
2670    ""
2671  end
2672
2673  case mediump_ivec2_rgrr
2674    values
2675    {
2676        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2677        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
2678    }
2679
2680    both ""
2681        precision mediump float;
2682
2683        ${DECLARATIONS}
2684
2685        void main()
2686        {
2687            ${SETUP}
2688            out0 = in0.rgrr;
2689            ${OUTPUT}
2690        }
2691    ""
2692  end
2693
2694  case mediump_ivec2_gggg
2695    values
2696    {
2697        input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2698        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
2699    }
2700
2701    both ""
2702        precision mediump float;
2703
2704        ${DECLARATIONS}
2705
2706        void main()
2707        {
2708            ${SETUP}
2709            out0 = in0.gggg;
2710            ${OUTPUT}
2711        }
2712    ""
2713  end
2714
2715  case mediump_ivec3_x
2716    values
2717    {
2718        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2719        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
2720    }
2721
2722    both ""
2723        precision mediump float;
2724
2725        ${DECLARATIONS}
2726
2727        void main()
2728        {
2729            ${SETUP}
2730            out0 = in0.x;
2731            ${OUTPUT}
2732        }
2733    ""
2734  end
2735
2736  case mediump_ivec3_z
2737    values
2738    {
2739        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2740        output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
2741    }
2742
2743    both ""
2744        precision mediump float;
2745
2746        ${DECLARATIONS}
2747
2748        void main()
2749        {
2750            ${SETUP}
2751            out0 = in0.z;
2752            ${OUTPUT}
2753        }
2754    ""
2755  end
2756
2757  case mediump_ivec3_xz
2758    values
2759    {
2760        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2761        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
2762    }
2763
2764    both ""
2765        precision mediump float;
2766
2767        ${DECLARATIONS}
2768
2769        void main()
2770        {
2771            ${SETUP}
2772            out0 = in0.xz;
2773            ${OUTPUT}
2774        }
2775    ""
2776  end
2777
2778  case mediump_ivec3_zz
2779    values
2780    {
2781        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2782        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
2783    }
2784
2785    both ""
2786        precision mediump float;
2787
2788        ${DECLARATIONS}
2789
2790        void main()
2791        {
2792            ${SETUP}
2793            out0 = in0.zz;
2794            ${OUTPUT}
2795        }
2796    ""
2797  end
2798
2799  case mediump_ivec3_xyz
2800    values
2801    {
2802        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2803        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2804    }
2805
2806    both ""
2807        precision mediump float;
2808
2809        ${DECLARATIONS}
2810
2811        void main()
2812        {
2813            ${SETUP}
2814            out0 = in0.xyz;
2815            ${OUTPUT}
2816        }
2817    ""
2818  end
2819
2820  case mediump_ivec3_zyx
2821    values
2822    {
2823        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2824        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
2825    }
2826
2827    both ""
2828        precision mediump float;
2829
2830        ${DECLARATIONS}
2831
2832        void main()
2833        {
2834            ${SETUP}
2835            out0 = in0.zyx;
2836            ${OUTPUT}
2837        }
2838    ""
2839  end
2840
2841  case mediump_ivec3_xxx
2842    values
2843    {
2844        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2845        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
2846    }
2847
2848    both ""
2849        precision mediump float;
2850
2851        ${DECLARATIONS}
2852
2853        void main()
2854        {
2855            ${SETUP}
2856            out0 = in0.xxx;
2857            ${OUTPUT}
2858        }
2859    ""
2860  end
2861
2862  case mediump_ivec3_zzz
2863    values
2864    {
2865        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2866        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
2867    }
2868
2869    both ""
2870        precision mediump float;
2871
2872        ${DECLARATIONS}
2873
2874        void main()
2875        {
2876            ${SETUP}
2877            out0 = in0.zzz;
2878            ${OUTPUT}
2879        }
2880    ""
2881  end
2882
2883  case mediump_ivec3_zzy
2884    values
2885    {
2886        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2887        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
2888    }
2889
2890    both ""
2891        precision mediump float;
2892
2893        ${DECLARATIONS}
2894
2895        void main()
2896        {
2897            ${SETUP}
2898            out0 = in0.zzy;
2899            ${OUTPUT}
2900        }
2901    ""
2902  end
2903
2904  case mediump_ivec3_yxy
2905    values
2906    {
2907        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2908        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
2909    }
2910
2911    both ""
2912        precision mediump float;
2913
2914        ${DECLARATIONS}
2915
2916        void main()
2917        {
2918            ${SETUP}
2919            out0 = in0.yxy;
2920            ${OUTPUT}
2921        }
2922    ""
2923  end
2924
2925  case mediump_ivec3_xzx
2926    values
2927    {
2928        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2929        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
2930    }
2931
2932    both ""
2933        precision mediump float;
2934
2935        ${DECLARATIONS}
2936
2937        void main()
2938        {
2939            ${SETUP}
2940            out0 = in0.xzx;
2941            ${OUTPUT}
2942        }
2943    ""
2944  end
2945
2946  case mediump_ivec3_xyyx
2947    values
2948    {
2949        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2950        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -2, 0) | ivec4(-32, 64, 64, -32) | ivec4(0, 0, 0, 0) ];
2951    }
2952
2953    both ""
2954        precision mediump float;
2955
2956        ${DECLARATIONS}
2957
2958        void main()
2959        {
2960            ${SETUP}
2961            out0 = in0.xyyx;
2962            ${OUTPUT}
2963        }
2964    ""
2965  end
2966
2967  case mediump_ivec3_zzzz
2968    values
2969    {
2970        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2971        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, -4, -4) | ivec4(-51, -51, -51, -51) | ivec4(0, 0, 0, 0) ];
2972    }
2973
2974    both ""
2975        precision mediump float;
2976
2977        ${DECLARATIONS}
2978
2979        void main()
2980        {
2981            ${SETUP}
2982            out0 = in0.zzzz;
2983            ${OUTPUT}
2984        }
2985    ""
2986  end
2987
2988  case mediump_ivec3_s
2989    values
2990    {
2991        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2992        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
2993    }
2994
2995    both ""
2996        precision mediump float;
2997
2998        ${DECLARATIONS}
2999
3000        void main()
3001        {
3002            ${SETUP}
3003            out0 = in0.s;
3004            ${OUTPUT}
3005        }
3006    ""
3007  end
3008
3009  case mediump_ivec3_p
3010    values
3011    {
3012        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3013        output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
3014    }
3015
3016    both ""
3017        precision mediump float;
3018
3019        ${DECLARATIONS}
3020
3021        void main()
3022        {
3023            ${SETUP}
3024            out0 = in0.p;
3025            ${OUTPUT}
3026        }
3027    ""
3028  end
3029
3030  case mediump_ivec3_sp
3031    values
3032    {
3033        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3034        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
3035    }
3036
3037    both ""
3038        precision mediump float;
3039
3040        ${DECLARATIONS}
3041
3042        void main()
3043        {
3044            ${SETUP}
3045            out0 = in0.sp;
3046            ${OUTPUT}
3047        }
3048    ""
3049  end
3050
3051  case mediump_ivec3_pp
3052    values
3053    {
3054        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3055        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
3056    }
3057
3058    both ""
3059        precision mediump float;
3060
3061        ${DECLARATIONS}
3062
3063        void main()
3064        {
3065            ${SETUP}
3066            out0 = in0.pp;
3067            ${OUTPUT}
3068        }
3069    ""
3070  end
3071
3072  case mediump_ivec3_stp
3073    values
3074    {
3075        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3076        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3077    }
3078
3079    both ""
3080        precision mediump float;
3081
3082        ${DECLARATIONS}
3083
3084        void main()
3085        {
3086            ${SETUP}
3087            out0 = in0.stp;
3088            ${OUTPUT}
3089        }
3090    ""
3091  end
3092
3093  case mediump_ivec3_pts
3094    values
3095    {
3096        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3097        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
3098    }
3099
3100    both ""
3101        precision mediump float;
3102
3103        ${DECLARATIONS}
3104
3105        void main()
3106        {
3107            ${SETUP}
3108            out0 = in0.pts;
3109            ${OUTPUT}
3110        }
3111    ""
3112  end
3113
3114  case mediump_ivec3_sss
3115    values
3116    {
3117        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3118        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
3119    }
3120
3121    both ""
3122        precision mediump float;
3123
3124        ${DECLARATIONS}
3125
3126        void main()
3127        {
3128            ${SETUP}
3129            out0 = in0.sss;
3130            ${OUTPUT}
3131        }
3132    ""
3133  end
3134
3135  case mediump_ivec3_ppp
3136    values
3137    {
3138        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3139        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
3140    }
3141
3142    both ""
3143        precision mediump float;
3144
3145        ${DECLARATIONS}
3146
3147        void main()
3148        {
3149            ${SETUP}
3150            out0 = in0.ppp;
3151            ${OUTPUT}
3152        }
3153    ""
3154  end
3155
3156  case mediump_ivec3_ppt
3157    values
3158    {
3159        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3160        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
3161    }
3162
3163    both ""
3164        precision mediump float;
3165
3166        ${DECLARATIONS}
3167
3168        void main()
3169        {
3170            ${SETUP}
3171            out0 = in0.ppt;
3172            ${OUTPUT}
3173        }
3174    ""
3175  end
3176
3177  case mediump_ivec3_tst
3178    values
3179    {
3180        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3181        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
3182    }
3183
3184    both ""
3185        precision mediump float;
3186
3187        ${DECLARATIONS}
3188
3189        void main()
3190        {
3191            ${SETUP}
3192            out0 = in0.tst;
3193            ${OUTPUT}
3194        }
3195    ""
3196  end
3197
3198  case mediump_ivec3_sps
3199    values
3200    {
3201        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3202        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
3203    }
3204
3205    both ""
3206        precision mediump float;
3207
3208        ${DECLARATIONS}
3209
3210        void main()
3211        {
3212            ${SETUP}
3213            out0 = in0.sps;
3214            ${OUTPUT}
3215        }
3216    ""
3217  end
3218
3219  case mediump_ivec3_stts
3220    values
3221    {
3222        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3223        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -2, 0) | ivec4(-32, 64, 64, -32) | ivec4(0, 0, 0, 0) ];
3224    }
3225
3226    both ""
3227        precision mediump float;
3228
3229        ${DECLARATIONS}
3230
3231        void main()
3232        {
3233            ${SETUP}
3234            out0 = in0.stts;
3235            ${OUTPUT}
3236        }
3237    ""
3238  end
3239
3240  case mediump_ivec3_pppp
3241    values
3242    {
3243        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3244        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, -4, -4) | ivec4(-51, -51, -51, -51) | ivec4(0, 0, 0, 0) ];
3245    }
3246
3247    both ""
3248        precision mediump float;
3249
3250        ${DECLARATIONS}
3251
3252        void main()
3253        {
3254            ${SETUP}
3255            out0 = in0.pppp;
3256            ${OUTPUT}
3257        }
3258    ""
3259  end
3260
3261  case mediump_ivec3_r
3262    values
3263    {
3264        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3265        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
3266    }
3267
3268    both ""
3269        precision mediump float;
3270
3271        ${DECLARATIONS}
3272
3273        void main()
3274        {
3275            ${SETUP}
3276            out0 = in0.r;
3277            ${OUTPUT}
3278        }
3279    ""
3280  end
3281
3282  case mediump_ivec3_b
3283    values
3284    {
3285        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3286        output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
3287    }
3288
3289    both ""
3290        precision mediump float;
3291
3292        ${DECLARATIONS}
3293
3294        void main()
3295        {
3296            ${SETUP}
3297            out0 = in0.b;
3298            ${OUTPUT}
3299        }
3300    ""
3301  end
3302
3303  case mediump_ivec3_rb
3304    values
3305    {
3306        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3307        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
3308    }
3309
3310    both ""
3311        precision mediump float;
3312
3313        ${DECLARATIONS}
3314
3315        void main()
3316        {
3317            ${SETUP}
3318            out0 = in0.rb;
3319            ${OUTPUT}
3320        }
3321    ""
3322  end
3323
3324  case mediump_ivec3_bb
3325    values
3326    {
3327        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3328        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
3329    }
3330
3331    both ""
3332        precision mediump float;
3333
3334        ${DECLARATIONS}
3335
3336        void main()
3337        {
3338            ${SETUP}
3339            out0 = in0.bb;
3340            ${OUTPUT}
3341        }
3342    ""
3343  end
3344
3345  case mediump_ivec3_rgb
3346    values
3347    {
3348        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3349        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3350    }
3351
3352    both ""
3353        precision mediump float;
3354
3355        ${DECLARATIONS}
3356
3357        void main()
3358        {
3359            ${SETUP}
3360            out0 = in0.rgb;
3361            ${OUTPUT}
3362        }
3363    ""
3364  end
3365
3366  case mediump_ivec3_bgr
3367    values
3368    {
3369        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3370        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
3371    }
3372
3373    both ""
3374        precision mediump float;
3375
3376        ${DECLARATIONS}
3377
3378        void main()
3379        {
3380            ${SETUP}
3381            out0 = in0.bgr;
3382            ${OUTPUT}
3383        }
3384    ""
3385  end
3386
3387  case mediump_ivec3_rrr
3388    values
3389    {
3390        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3391        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
3392    }
3393
3394    both ""
3395        precision mediump float;
3396
3397        ${DECLARATIONS}
3398
3399        void main()
3400        {
3401            ${SETUP}
3402            out0 = in0.rrr;
3403            ${OUTPUT}
3404        }
3405    ""
3406  end
3407
3408  case mediump_ivec3_bbb
3409    values
3410    {
3411        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3412        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
3413    }
3414
3415    both ""
3416        precision mediump float;
3417
3418        ${DECLARATIONS}
3419
3420        void main()
3421        {
3422            ${SETUP}
3423            out0 = in0.bbb;
3424            ${OUTPUT}
3425        }
3426    ""
3427  end
3428
3429  case mediump_ivec3_bbg
3430    values
3431    {
3432        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3433        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
3434    }
3435
3436    both ""
3437        precision mediump float;
3438
3439        ${DECLARATIONS}
3440
3441        void main()
3442        {
3443            ${SETUP}
3444            out0 = in0.bbg;
3445            ${OUTPUT}
3446        }
3447    ""
3448  end
3449
3450  case mediump_ivec3_grg
3451    values
3452    {
3453        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3454        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
3455    }
3456
3457    both ""
3458        precision mediump float;
3459
3460        ${DECLARATIONS}
3461
3462        void main()
3463        {
3464            ${SETUP}
3465            out0 = in0.grg;
3466            ${OUTPUT}
3467        }
3468    ""
3469  end
3470
3471  case mediump_ivec3_rbr
3472    values
3473    {
3474        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3475        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
3476    }
3477
3478    both ""
3479        precision mediump float;
3480
3481        ${DECLARATIONS}
3482
3483        void main()
3484        {
3485            ${SETUP}
3486            out0 = in0.rbr;
3487            ${OUTPUT}
3488        }
3489    ""
3490  end
3491
3492  case mediump_ivec3_rggr
3493    values
3494    {
3495        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3496        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -2, 0) | ivec4(-32, 64, 64, -32) | ivec4(0, 0, 0, 0) ];
3497    }
3498
3499    both ""
3500        precision mediump float;
3501
3502        ${DECLARATIONS}
3503
3504        void main()
3505        {
3506            ${SETUP}
3507            out0 = in0.rggr;
3508            ${OUTPUT}
3509        }
3510    ""
3511  end
3512
3513  case mediump_ivec3_bbbb
3514    values
3515    {
3516        input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3517        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, -4, -4) | ivec4(-51, -51, -51, -51) | ivec4(0, 0, 0, 0) ];
3518    }
3519
3520    both ""
3521        precision mediump float;
3522
3523        ${DECLARATIONS}
3524
3525        void main()
3526        {
3527            ${SETUP}
3528            out0 = in0.bbbb;
3529            ${OUTPUT}
3530        }
3531    ""
3532  end
3533
3534  case mediump_ivec4_x
3535    values
3536    {
3537        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3538        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
3539    }
3540
3541    both ""
3542        precision mediump float;
3543
3544        ${DECLARATIONS}
3545
3546        void main()
3547        {
3548            ${SETUP}
3549            out0 = in0.x;
3550            ${OUTPUT}
3551        }
3552    ""
3553  end
3554
3555  case mediump_ivec4_w
3556    values
3557    {
3558        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3559        output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
3560    }
3561
3562    both ""
3563        precision mediump float;
3564
3565        ${DECLARATIONS}
3566
3567        void main()
3568        {
3569            ${SETUP}
3570            out0 = in0.w;
3571            ${OUTPUT}
3572        }
3573    ""
3574  end
3575
3576  case mediump_ivec4_wx
3577    values
3578    {
3579        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3580        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
3581    }
3582
3583    both ""
3584        precision mediump float;
3585
3586        ${DECLARATIONS}
3587
3588        void main()
3589        {
3590            ${SETUP}
3591            out0 = in0.wx;
3592            ${OUTPUT}
3593        }
3594    ""
3595  end
3596
3597  case mediump_ivec4_wz
3598    values
3599    {
3600        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3601        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
3602    }
3603
3604    both ""
3605        precision mediump float;
3606
3607        ${DECLARATIONS}
3608
3609        void main()
3610        {
3611            ${SETUP}
3612            out0 = in0.wz;
3613            ${OUTPUT}
3614        }
3615    ""
3616  end
3617
3618  case mediump_ivec4_www
3619    values
3620    {
3621        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3622        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
3623    }
3624
3625    both ""
3626        precision mediump float;
3627
3628        ${DECLARATIONS}
3629
3630        void main()
3631        {
3632            ${SETUP}
3633            out0 = in0.www;
3634            ${OUTPUT}
3635        }
3636    ""
3637  end
3638
3639  case mediump_ivec4_yyw
3640    values
3641    {
3642        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3643        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
3644    }
3645
3646    both ""
3647        precision mediump float;
3648
3649        ${DECLARATIONS}
3650
3651        void main()
3652        {
3653            ${SETUP}
3654            out0 = in0.yyw;
3655            ${OUTPUT}
3656        }
3657    ""
3658  end
3659
3660  case mediump_ivec4_wzy
3661    values
3662    {
3663        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3664        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
3665    }
3666
3667    both ""
3668        precision mediump float;
3669
3670        ${DECLARATIONS}
3671
3672        void main()
3673        {
3674            ${SETUP}
3675            out0 = in0.wzy;
3676            ${OUTPUT}
3677        }
3678    ""
3679  end
3680
3681  case mediump_ivec4_xyzw
3682    values
3683    {
3684        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3685        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3686    }
3687
3688    both ""
3689        precision mediump float;
3690
3691        ${DECLARATIONS}
3692
3693        void main()
3694        {
3695            ${SETUP}
3696            out0 = in0.xyzw;
3697            ${OUTPUT}
3698        }
3699    ""
3700  end
3701
3702  case mediump_ivec4_wzyx
3703    values
3704    {
3705        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3706        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -2, 0) | ivec4(24, -51, 64, -32) | ivec4(0, 0, 0, 0) ];
3707    }
3708
3709    both ""
3710        precision mediump float;
3711
3712        ${DECLARATIONS}
3713
3714        void main()
3715        {
3716            ${SETUP}
3717            out0 = in0.wzyx;
3718            ${OUTPUT}
3719        }
3720    ""
3721  end
3722
3723  case mediump_ivec4_xxxx
3724    values
3725    {
3726        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3727        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, -32, -32, -32) | ivec4(0, 0, 0, 0) ];
3728    }
3729
3730    both ""
3731        precision mediump float;
3732
3733        ${DECLARATIONS}
3734
3735        void main()
3736        {
3737            ${SETUP}
3738            out0 = in0.xxxx;
3739            ${OUTPUT}
3740        }
3741    ""
3742  end
3743
3744  case mediump_ivec4_yyyy
3745    values
3746    {
3747        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3748        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
3749    }
3750
3751    both ""
3752        precision mediump float;
3753
3754        ${DECLARATIONS}
3755
3756        void main()
3757        {
3758            ${SETUP}
3759            out0 = in0.yyyy;
3760            ${OUTPUT}
3761        }
3762    ""
3763  end
3764
3765  case mediump_ivec4_wwww
3766    values
3767    {
3768        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3769        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, 9) | ivec4(24, 24, 24, 24) | ivec4(0, 0, 0, 0) ];
3770    }
3771
3772    both ""
3773        precision mediump float;
3774
3775        ${DECLARATIONS}
3776
3777        void main()
3778        {
3779            ${SETUP}
3780            out0 = in0.wwww;
3781            ${OUTPUT}
3782        }
3783    ""
3784  end
3785
3786  case mediump_ivec4_wzzw
3787    values
3788    {
3789        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3790        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -4, 9) | ivec4(24, -51, -51, 24) | ivec4(0, 0, 0, 0) ];
3791    }
3792
3793    both ""
3794        precision mediump float;
3795
3796        ${DECLARATIONS}
3797
3798        void main()
3799        {
3800            ${SETUP}
3801            out0 = in0.wzzw;
3802            ${OUTPUT}
3803        }
3804    ""
3805  end
3806
3807  case mediump_ivec4_wwwy
3808    values
3809    {
3810        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3811        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, -2) | ivec4(24, 24, 24, 64) | ivec4(0, 0, 0, 0) ];
3812    }
3813
3814    both ""
3815        precision mediump float;
3816
3817        ${DECLARATIONS}
3818
3819        void main()
3820        {
3821            ${SETUP}
3822            out0 = in0.wwwy;
3823            ${OUTPUT}
3824        }
3825    ""
3826  end
3827
3828  case mediump_ivec4_xyxx
3829    values
3830    {
3831        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3832        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
3833    }
3834
3835    both ""
3836        precision mediump float;
3837
3838        ${DECLARATIONS}
3839
3840        void main()
3841        {
3842            ${SETUP}
3843            out0 = in0.xyxx;
3844            ${OUTPUT}
3845        }
3846    ""
3847  end
3848
3849  case mediump_ivec4_zzwz
3850    values
3851    {
3852        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3853        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, 9, -4) | ivec4(-51, -51, 24, -51) | ivec4(0, 0, 0, 0) ];
3854    }
3855
3856    both ""
3857        precision mediump float;
3858
3859        ${DECLARATIONS}
3860
3861        void main()
3862        {
3863            ${SETUP}
3864            out0 = in0.zzwz;
3865            ${OUTPUT}
3866        }
3867    ""
3868  end
3869
3870  case mediump_ivec4_s
3871    values
3872    {
3873        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3874        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
3875    }
3876
3877    both ""
3878        precision mediump float;
3879
3880        ${DECLARATIONS}
3881
3882        void main()
3883        {
3884            ${SETUP}
3885            out0 = in0.s;
3886            ${OUTPUT}
3887        }
3888    ""
3889  end
3890
3891  case mediump_ivec4_q
3892    values
3893    {
3894        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3895        output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
3896    }
3897
3898    both ""
3899        precision mediump float;
3900
3901        ${DECLARATIONS}
3902
3903        void main()
3904        {
3905            ${SETUP}
3906            out0 = in0.q;
3907            ${OUTPUT}
3908        }
3909    ""
3910  end
3911
3912  case mediump_ivec4_qs
3913    values
3914    {
3915        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3916        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
3917    }
3918
3919    both ""
3920        precision mediump float;
3921
3922        ${DECLARATIONS}
3923
3924        void main()
3925        {
3926            ${SETUP}
3927            out0 = in0.qs;
3928            ${OUTPUT}
3929        }
3930    ""
3931  end
3932
3933  case mediump_ivec4_qp
3934    values
3935    {
3936        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3937        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
3938    }
3939
3940    both ""
3941        precision mediump float;
3942
3943        ${DECLARATIONS}
3944
3945        void main()
3946        {
3947            ${SETUP}
3948            out0 = in0.qp;
3949            ${OUTPUT}
3950        }
3951    ""
3952  end
3953
3954  case mediump_ivec4_qqq
3955    values
3956    {
3957        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3958        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
3959    }
3960
3961    both ""
3962        precision mediump float;
3963
3964        ${DECLARATIONS}
3965
3966        void main()
3967        {
3968            ${SETUP}
3969            out0 = in0.qqq;
3970            ${OUTPUT}
3971        }
3972    ""
3973  end
3974
3975  case mediump_ivec4_ttq
3976    values
3977    {
3978        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
3979        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
3980    }
3981
3982    both ""
3983        precision mediump float;
3984
3985        ${DECLARATIONS}
3986
3987        void main()
3988        {
3989            ${SETUP}
3990            out0 = in0.ttq;
3991            ${OUTPUT}
3992        }
3993    ""
3994  end
3995
3996  case mediump_ivec4_qpt
3997    values
3998    {
3999        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4000        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
4001    }
4002
4003    both ""
4004        precision mediump float;
4005
4006        ${DECLARATIONS}
4007
4008        void main()
4009        {
4010            ${SETUP}
4011            out0 = in0.qpt;
4012            ${OUTPUT}
4013        }
4014    ""
4015  end
4016
4017  case mediump_ivec4_stpq
4018    values
4019    {
4020        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4021        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4022    }
4023
4024    both ""
4025        precision mediump float;
4026
4027        ${DECLARATIONS}
4028
4029        void main()
4030        {
4031            ${SETUP}
4032            out0 = in0.stpq;
4033            ${OUTPUT}
4034        }
4035    ""
4036  end
4037
4038  case mediump_ivec4_qpts
4039    values
4040    {
4041        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4042        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -2, 0) | ivec4(24, -51, 64, -32) | ivec4(0, 0, 0, 0) ];
4043    }
4044
4045    both ""
4046        precision mediump float;
4047
4048        ${DECLARATIONS}
4049
4050        void main()
4051        {
4052            ${SETUP}
4053            out0 = in0.qpts;
4054            ${OUTPUT}
4055        }
4056    ""
4057  end
4058
4059  case mediump_ivec4_ssss
4060    values
4061    {
4062        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4063        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, -32, -32, -32) | ivec4(0, 0, 0, 0) ];
4064    }
4065
4066    both ""
4067        precision mediump float;
4068
4069        ${DECLARATIONS}
4070
4071        void main()
4072        {
4073            ${SETUP}
4074            out0 = in0.ssss;
4075            ${OUTPUT}
4076        }
4077    ""
4078  end
4079
4080  case mediump_ivec4_tttt
4081    values
4082    {
4083        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4084        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
4085    }
4086
4087    both ""
4088        precision mediump float;
4089
4090        ${DECLARATIONS}
4091
4092        void main()
4093        {
4094            ${SETUP}
4095            out0 = in0.tttt;
4096            ${OUTPUT}
4097        }
4098    ""
4099  end
4100
4101  case mediump_ivec4_qqqq
4102    values
4103    {
4104        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4105        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, 9) | ivec4(24, 24, 24, 24) | ivec4(0, 0, 0, 0) ];
4106    }
4107
4108    both ""
4109        precision mediump float;
4110
4111        ${DECLARATIONS}
4112
4113        void main()
4114        {
4115            ${SETUP}
4116            out0 = in0.qqqq;
4117            ${OUTPUT}
4118        }
4119    ""
4120  end
4121
4122  case mediump_ivec4_qppq
4123    values
4124    {
4125        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4126        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -4, 9) | ivec4(24, -51, -51, 24) | ivec4(0, 0, 0, 0) ];
4127    }
4128
4129    both ""
4130        precision mediump float;
4131
4132        ${DECLARATIONS}
4133
4134        void main()
4135        {
4136            ${SETUP}
4137            out0 = in0.qppq;
4138            ${OUTPUT}
4139        }
4140    ""
4141  end
4142
4143  case mediump_ivec4_qqqt
4144    values
4145    {
4146        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4147        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, -2) | ivec4(24, 24, 24, 64) | ivec4(0, 0, 0, 0) ];
4148    }
4149
4150    both ""
4151        precision mediump float;
4152
4153        ${DECLARATIONS}
4154
4155        void main()
4156        {
4157            ${SETUP}
4158            out0 = in0.qqqt;
4159            ${OUTPUT}
4160        }
4161    ""
4162  end
4163
4164  case mediump_ivec4_stss
4165    values
4166    {
4167        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4168        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
4169    }
4170
4171    both ""
4172        precision mediump float;
4173
4174        ${DECLARATIONS}
4175
4176        void main()
4177        {
4178            ${SETUP}
4179            out0 = in0.stss;
4180            ${OUTPUT}
4181        }
4182    ""
4183  end
4184
4185  case mediump_ivec4_ppqp
4186    values
4187    {
4188        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4189        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, 9, -4) | ivec4(-51, -51, 24, -51) | ivec4(0, 0, 0, 0) ];
4190    }
4191
4192    both ""
4193        precision mediump float;
4194
4195        ${DECLARATIONS}
4196
4197        void main()
4198        {
4199            ${SETUP}
4200            out0 = in0.ppqp;
4201            ${OUTPUT}
4202        }
4203    ""
4204  end
4205
4206  case mediump_ivec4_r
4207    values
4208    {
4209        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4210        output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
4211    }
4212
4213    both ""
4214        precision mediump float;
4215
4216        ${DECLARATIONS}
4217
4218        void main()
4219        {
4220            ${SETUP}
4221            out0 = in0.r;
4222            ${OUTPUT}
4223        }
4224    ""
4225  end
4226
4227  case mediump_ivec4_a
4228    values
4229    {
4230        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4231        output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
4232    }
4233
4234    both ""
4235        precision mediump float;
4236
4237        ${DECLARATIONS}
4238
4239        void main()
4240        {
4241            ${SETUP}
4242            out0 = in0.a;
4243            ${OUTPUT}
4244        }
4245    ""
4246  end
4247
4248  case mediump_ivec4_ar
4249    values
4250    {
4251        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4252        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
4253    }
4254
4255    both ""
4256        precision mediump float;
4257
4258        ${DECLARATIONS}
4259
4260        void main()
4261        {
4262            ${SETUP}
4263            out0 = in0.ar;
4264            ${OUTPUT}
4265        }
4266    ""
4267  end
4268
4269  case mediump_ivec4_ab
4270    values
4271    {
4272        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4273        output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
4274    }
4275
4276    both ""
4277        precision mediump float;
4278
4279        ${DECLARATIONS}
4280
4281        void main()
4282        {
4283            ${SETUP}
4284            out0 = in0.ab;
4285            ${OUTPUT}
4286        }
4287    ""
4288  end
4289
4290  case mediump_ivec4_aaa
4291    values
4292    {
4293        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4294        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
4295    }
4296
4297    both ""
4298        precision mediump float;
4299
4300        ${DECLARATIONS}
4301
4302        void main()
4303        {
4304            ${SETUP}
4305            out0 = in0.aaa;
4306            ${OUTPUT}
4307        }
4308    ""
4309  end
4310
4311  case mediump_ivec4_gga
4312    values
4313    {
4314        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4315        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
4316    }
4317
4318    both ""
4319        precision mediump float;
4320
4321        ${DECLARATIONS}
4322
4323        void main()
4324        {
4325            ${SETUP}
4326            out0 = in0.gga;
4327            ${OUTPUT}
4328        }
4329    ""
4330  end
4331
4332  case mediump_ivec4_abg
4333    values
4334    {
4335        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4336        output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
4337    }
4338
4339    both ""
4340        precision mediump float;
4341
4342        ${DECLARATIONS}
4343
4344        void main()
4345        {
4346            ${SETUP}
4347            out0 = in0.abg;
4348            ${OUTPUT}
4349        }
4350    ""
4351  end
4352
4353  case mediump_ivec4_rgba
4354    values
4355    {
4356        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4357        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4358    }
4359
4360    both ""
4361        precision mediump float;
4362
4363        ${DECLARATIONS}
4364
4365        void main()
4366        {
4367            ${SETUP}
4368            out0 = in0.rgba;
4369            ${OUTPUT}
4370        }
4371    ""
4372  end
4373
4374  case mediump_ivec4_abgr
4375    values
4376    {
4377        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4378        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -2, 0) | ivec4(24, -51, 64, -32) | ivec4(0, 0, 0, 0) ];
4379    }
4380
4381    both ""
4382        precision mediump float;
4383
4384        ${DECLARATIONS}
4385
4386        void main()
4387        {
4388            ${SETUP}
4389            out0 = in0.abgr;
4390            ${OUTPUT}
4391        }
4392    ""
4393  end
4394
4395  case mediump_ivec4_rrrr
4396    values
4397    {
4398        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4399        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, -32, -32, -32) | ivec4(0, 0, 0, 0) ];
4400    }
4401
4402    both ""
4403        precision mediump float;
4404
4405        ${DECLARATIONS}
4406
4407        void main()
4408        {
4409            ${SETUP}
4410            out0 = in0.rrrr;
4411            ${OUTPUT}
4412        }
4413    ""
4414  end
4415
4416  case mediump_ivec4_gggg
4417    values
4418    {
4419        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4420        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-2, -2, -2, -2) | ivec4(64, 64, 64, 64) | ivec4(0, 0, 0, 0) ];
4421    }
4422
4423    both ""
4424        precision mediump float;
4425
4426        ${DECLARATIONS}
4427
4428        void main()
4429        {
4430            ${SETUP}
4431            out0 = in0.gggg;
4432            ${OUTPUT}
4433        }
4434    ""
4435  end
4436
4437  case mediump_ivec4_aaaa
4438    values
4439    {
4440        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4441        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, 9) | ivec4(24, 24, 24, 24) | ivec4(0, 0, 0, 0) ];
4442    }
4443
4444    both ""
4445        precision mediump float;
4446
4447        ${DECLARATIONS}
4448
4449        void main()
4450        {
4451            ${SETUP}
4452            out0 = in0.aaaa;
4453            ${OUTPUT}
4454        }
4455    ""
4456  end
4457
4458  case mediump_ivec4_abba
4459    values
4460    {
4461        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4462        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, -4, -4, 9) | ivec4(24, -51, -51, 24) | ivec4(0, 0, 0, 0) ];
4463    }
4464
4465    both ""
4466        precision mediump float;
4467
4468        ${DECLARATIONS}
4469
4470        void main()
4471        {
4472            ${SETUP}
4473            out0 = in0.abba;
4474            ${OUTPUT}
4475        }
4476    ""
4477  end
4478
4479  case mediump_ivec4_aaag
4480    values
4481    {
4482        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4483        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(9, 9, 9, -2) | ivec4(24, 24, 24, 64) | ivec4(0, 0, 0, 0) ];
4484    }
4485
4486    both ""
4487        precision mediump float;
4488
4489        ${DECLARATIONS}
4490
4491        void main()
4492        {
4493            ${SETUP}
4494            out0 = in0.aaag;
4495            ${OUTPUT}
4496        }
4497    ""
4498  end
4499
4500  case mediump_ivec4_rgrr
4501    values
4502    {
4503        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4504        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, -32) | ivec4(0, 0, 0, 0) ];
4505    }
4506
4507    both ""
4508        precision mediump float;
4509
4510        ${DECLARATIONS}
4511
4512        void main()
4513        {
4514            ${SETUP}
4515            out0 = in0.rgrr;
4516            ${OUTPUT}
4517        }
4518    ""
4519  end
4520
4521  case mediump_ivec4_bbab
4522    values
4523    {
4524        input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4525        output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(-4, -4, 9, -4) | ivec4(-51, -51, 24, -51) | ivec4(0, 0, 0, 0) ];
4526    }
4527
4528    both ""
4529        precision mediump float;
4530
4531        ${DECLARATIONS}
4532
4533        void main()
4534        {
4535            ${SETUP}
4536            out0 = in0.bbab;
4537            ${OUTPUT}
4538        }
4539    ""
4540  end
4541
4542  case mediump_bvec2_x
4543    values
4544    {
4545        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4546        output bool out0 = [ true | false | false | true | false ];
4547    }
4548
4549    both ""
4550        precision mediump float;
4551
4552        ${DECLARATIONS}
4553
4554        void main()
4555        {
4556            ${SETUP}
4557            out0 = in0.x;
4558            ${OUTPUT}
4559        }
4560    ""
4561  end
4562
4563  case mediump_bvec2_xx
4564    values
4565    {
4566        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4567        output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
4568    }
4569
4570    both ""
4571        precision mediump float;
4572
4573        ${DECLARATIONS}
4574
4575        void main()
4576        {
4577            ${SETUP}
4578            out0 = in0.xx;
4579            ${OUTPUT}
4580        }
4581    ""
4582  end
4583
4584  case mediump_bvec2_xy
4585    values
4586    {
4587        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4588        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4589    }
4590
4591    both ""
4592        precision mediump float;
4593
4594        ${DECLARATIONS}
4595
4596        void main()
4597        {
4598            ${SETUP}
4599            out0 = in0.xy;
4600            ${OUTPUT}
4601        }
4602    ""
4603  end
4604
4605  case mediump_bvec2_yx
4606    values
4607    {
4608        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4609        output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
4610    }
4611
4612    both ""
4613        precision mediump float;
4614
4615        ${DECLARATIONS}
4616
4617        void main()
4618        {
4619            ${SETUP}
4620            out0 = in0.yx;
4621            ${OUTPUT}
4622        }
4623    ""
4624  end
4625
4626  case mediump_bvec2_yxy
4627    values
4628    {
4629        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4630        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4631    }
4632
4633    both ""
4634        precision mediump float;
4635
4636        ${DECLARATIONS}
4637
4638        void main()
4639        {
4640            ${SETUP}
4641            out0 = in0.yxy;
4642            ${OUTPUT}
4643        }
4644    ""
4645  end
4646
4647  case mediump_bvec2_xyxx
4648    values
4649    {
4650        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4651        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4652    }
4653
4654    both ""
4655        precision mediump float;
4656
4657        ${DECLARATIONS}
4658
4659        void main()
4660        {
4661            ${SETUP}
4662            out0 = in0.xyxx;
4663            ${OUTPUT}
4664        }
4665    ""
4666  end
4667
4668  case mediump_bvec2_yyyy
4669    values
4670    {
4671        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4672        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4673    }
4674
4675    both ""
4676        precision mediump float;
4677
4678        ${DECLARATIONS}
4679
4680        void main()
4681        {
4682            ${SETUP}
4683            out0 = in0.yyyy;
4684            ${OUTPUT}
4685        }
4686    ""
4687  end
4688
4689  case mediump_bvec2_s
4690    values
4691    {
4692        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4693        output bool out0 = [ true | false | false | true | false ];
4694    }
4695
4696    both ""
4697        precision mediump float;
4698
4699        ${DECLARATIONS}
4700
4701        void main()
4702        {
4703            ${SETUP}
4704            out0 = in0.s;
4705            ${OUTPUT}
4706        }
4707    ""
4708  end
4709
4710  case mediump_bvec2_ss
4711    values
4712    {
4713        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4714        output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
4715    }
4716
4717    both ""
4718        precision mediump float;
4719
4720        ${DECLARATIONS}
4721
4722        void main()
4723        {
4724            ${SETUP}
4725            out0 = in0.ss;
4726            ${OUTPUT}
4727        }
4728    ""
4729  end
4730
4731  case mediump_bvec2_st
4732    values
4733    {
4734        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4735        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4736    }
4737
4738    both ""
4739        precision mediump float;
4740
4741        ${DECLARATIONS}
4742
4743        void main()
4744        {
4745            ${SETUP}
4746            out0 = in0.st;
4747            ${OUTPUT}
4748        }
4749    ""
4750  end
4751
4752  case mediump_bvec2_ts
4753    values
4754    {
4755        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4756        output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
4757    }
4758
4759    both ""
4760        precision mediump float;
4761
4762        ${DECLARATIONS}
4763
4764        void main()
4765        {
4766            ${SETUP}
4767            out0 = in0.ts;
4768            ${OUTPUT}
4769        }
4770    ""
4771  end
4772
4773  case mediump_bvec2_tst
4774    values
4775    {
4776        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4777        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4778    }
4779
4780    both ""
4781        precision mediump float;
4782
4783        ${DECLARATIONS}
4784
4785        void main()
4786        {
4787            ${SETUP}
4788            out0 = in0.tst;
4789            ${OUTPUT}
4790        }
4791    ""
4792  end
4793
4794  case mediump_bvec2_stss
4795    values
4796    {
4797        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4798        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4799    }
4800
4801    both ""
4802        precision mediump float;
4803
4804        ${DECLARATIONS}
4805
4806        void main()
4807        {
4808            ${SETUP}
4809            out0 = in0.stss;
4810            ${OUTPUT}
4811        }
4812    ""
4813  end
4814
4815  case mediump_bvec2_tttt
4816    values
4817    {
4818        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4819        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4820    }
4821
4822    both ""
4823        precision mediump float;
4824
4825        ${DECLARATIONS}
4826
4827        void main()
4828        {
4829            ${SETUP}
4830            out0 = in0.tttt;
4831            ${OUTPUT}
4832        }
4833    ""
4834  end
4835
4836  case mediump_bvec2_r
4837    values
4838    {
4839        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4840        output bool out0 = [ true | false | false | true | false ];
4841    }
4842
4843    both ""
4844        precision mediump float;
4845
4846        ${DECLARATIONS}
4847
4848        void main()
4849        {
4850            ${SETUP}
4851            out0 = in0.r;
4852            ${OUTPUT}
4853        }
4854    ""
4855  end
4856
4857  case mediump_bvec2_rr
4858    values
4859    {
4860        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4861        output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
4862    }
4863
4864    both ""
4865        precision mediump float;
4866
4867        ${DECLARATIONS}
4868
4869        void main()
4870        {
4871            ${SETUP}
4872            out0 = in0.rr;
4873            ${OUTPUT}
4874        }
4875    ""
4876  end
4877
4878  case mediump_bvec2_rg
4879    values
4880    {
4881        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4882        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4883    }
4884
4885    both ""
4886        precision mediump float;
4887
4888        ${DECLARATIONS}
4889
4890        void main()
4891        {
4892            ${SETUP}
4893            out0 = in0.rg;
4894            ${OUTPUT}
4895        }
4896    ""
4897  end
4898
4899  case mediump_bvec2_gr
4900    values
4901    {
4902        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4903        output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
4904    }
4905
4906    both ""
4907        precision mediump float;
4908
4909        ${DECLARATIONS}
4910
4911        void main()
4912        {
4913            ${SETUP}
4914            out0 = in0.gr;
4915            ${OUTPUT}
4916        }
4917    ""
4918  end
4919
4920  case mediump_bvec2_grg
4921    values
4922    {
4923        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4924        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4925    }
4926
4927    both ""
4928        precision mediump float;
4929
4930        ${DECLARATIONS}
4931
4932        void main()
4933        {
4934            ${SETUP}
4935            out0 = in0.grg;
4936            ${OUTPUT}
4937        }
4938    ""
4939  end
4940
4941  case mediump_bvec2_rgrr
4942    values
4943    {
4944        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4945        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4946    }
4947
4948    both ""
4949        precision mediump float;
4950
4951        ${DECLARATIONS}
4952
4953        void main()
4954        {
4955            ${SETUP}
4956            out0 = in0.rgrr;
4957            ${OUTPUT}
4958        }
4959    ""
4960  end
4961
4962  case mediump_bvec2_gggg
4963    values
4964    {
4965        input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4966        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
4967    }
4968
4969    both ""
4970        precision mediump float;
4971
4972        ${DECLARATIONS}
4973
4974        void main()
4975        {
4976            ${SETUP}
4977            out0 = in0.gggg;
4978            ${OUTPUT}
4979        }
4980    ""
4981  end
4982
4983  case mediump_bvec3_x
4984    values
4985    {
4986        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4987        output bool out0 = [ true | false | false | true | false ];
4988    }
4989
4990    both ""
4991        precision mediump float;
4992
4993        ${DECLARATIONS}
4994
4995        void main()
4996        {
4997            ${SETUP}
4998            out0 = in0.x;
4999            ${OUTPUT}
5000        }
5001    ""
5002  end
5003
5004  case mediump_bvec3_z
5005    values
5006    {
5007        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5008        output bool out0 = [ false | false | false | true | false ];
5009    }
5010
5011    both ""
5012        precision mediump float;
5013
5014        ${DECLARATIONS}
5015
5016        void main()
5017        {
5018            ${SETUP}
5019            out0 = in0.z;
5020            ${OUTPUT}
5021        }
5022    ""
5023  end
5024
5025  case mediump_bvec3_xz
5026    values
5027    {
5028        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5029        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5030    }
5031
5032    both ""
5033        precision mediump float;
5034
5035        ${DECLARATIONS}
5036
5037        void main()
5038        {
5039            ${SETUP}
5040            out0 = in0.xz;
5041            ${OUTPUT}
5042        }
5043    ""
5044  end
5045
5046  case mediump_bvec3_zz
5047    values
5048    {
5049        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5050        output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5051    }
5052
5053    both ""
5054        precision mediump float;
5055
5056        ${DECLARATIONS}
5057
5058        void main()
5059        {
5060            ${SETUP}
5061            out0 = in0.zz;
5062            ${OUTPUT}
5063        }
5064    ""
5065  end
5066
5067  case mediump_bvec3_xyz
5068    values
5069    {
5070        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5071        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5072    }
5073
5074    both ""
5075        precision mediump float;
5076
5077        ${DECLARATIONS}
5078
5079        void main()
5080        {
5081            ${SETUP}
5082            out0 = in0.xyz;
5083            ${OUTPUT}
5084        }
5085    ""
5086  end
5087
5088  case mediump_bvec3_zyx
5089    values
5090    {
5091        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5092        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5093    }
5094
5095    both ""
5096        precision mediump float;
5097
5098        ${DECLARATIONS}
5099
5100        void main()
5101        {
5102            ${SETUP}
5103            out0 = in0.zyx;
5104            ${OUTPUT}
5105        }
5106    ""
5107  end
5108
5109  case mediump_bvec3_xxx
5110    values
5111    {
5112        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5113        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5114    }
5115
5116    both ""
5117        precision mediump float;
5118
5119        ${DECLARATIONS}
5120
5121        void main()
5122        {
5123            ${SETUP}
5124            out0 = in0.xxx;
5125            ${OUTPUT}
5126        }
5127    ""
5128  end
5129
5130  case mediump_bvec3_zzz
5131    values
5132    {
5133        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5134        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5135    }
5136
5137    both ""
5138        precision mediump float;
5139
5140        ${DECLARATIONS}
5141
5142        void main()
5143        {
5144            ${SETUP}
5145            out0 = in0.zzz;
5146            ${OUTPUT}
5147        }
5148    ""
5149  end
5150
5151  case mediump_bvec3_zzy
5152    values
5153    {
5154        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5155        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5156    }
5157
5158    both ""
5159        precision mediump float;
5160
5161        ${DECLARATIONS}
5162
5163        void main()
5164        {
5165            ${SETUP}
5166            out0 = in0.zzy;
5167            ${OUTPUT}
5168        }
5169    ""
5170  end
5171
5172  case mediump_bvec3_yxy
5173    values
5174    {
5175        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5176        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5177    }
5178
5179    both ""
5180        precision mediump float;
5181
5182        ${DECLARATIONS}
5183
5184        void main()
5185        {
5186            ${SETUP}
5187            out0 = in0.yxy;
5188            ${OUTPUT}
5189        }
5190    ""
5191  end
5192
5193  case mediump_bvec3_xzx
5194    values
5195    {
5196        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5197        output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5198    }
5199
5200    both ""
5201        precision mediump float;
5202
5203        ${DECLARATIONS}
5204
5205        void main()
5206        {
5207            ${SETUP}
5208            out0 = in0.xzx;
5209            ${OUTPUT}
5210        }
5211    ""
5212  end
5213
5214  case mediump_bvec3_xyyx
5215    values
5216    {
5217        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5218        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5219    }
5220
5221    both ""
5222        precision mediump float;
5223
5224        ${DECLARATIONS}
5225
5226        void main()
5227        {
5228            ${SETUP}
5229            out0 = in0.xyyx;
5230            ${OUTPUT}
5231        }
5232    ""
5233  end
5234
5235  case mediump_bvec3_zzzz
5236    values
5237    {
5238        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5239        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5240    }
5241
5242    both ""
5243        precision mediump float;
5244
5245        ${DECLARATIONS}
5246
5247        void main()
5248        {
5249            ${SETUP}
5250            out0 = in0.zzzz;
5251            ${OUTPUT}
5252        }
5253    ""
5254  end
5255
5256  case mediump_bvec3_s
5257    values
5258    {
5259        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5260        output bool out0 = [ true | false | false | true | false ];
5261    }
5262
5263    both ""
5264        precision mediump float;
5265
5266        ${DECLARATIONS}
5267
5268        void main()
5269        {
5270            ${SETUP}
5271            out0 = in0.s;
5272            ${OUTPUT}
5273        }
5274    ""
5275  end
5276
5277  case mediump_bvec3_p
5278    values
5279    {
5280        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5281        output bool out0 = [ false | false | false | true | false ];
5282    }
5283
5284    both ""
5285        precision mediump float;
5286
5287        ${DECLARATIONS}
5288
5289        void main()
5290        {
5291            ${SETUP}
5292            out0 = in0.p;
5293            ${OUTPUT}
5294        }
5295    ""
5296  end
5297
5298  case mediump_bvec3_sp
5299    values
5300    {
5301        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5302        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5303    }
5304
5305    both ""
5306        precision mediump float;
5307
5308        ${DECLARATIONS}
5309
5310        void main()
5311        {
5312            ${SETUP}
5313            out0 = in0.sp;
5314            ${OUTPUT}
5315        }
5316    ""
5317  end
5318
5319  case mediump_bvec3_pp
5320    values
5321    {
5322        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5323        output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5324    }
5325
5326    both ""
5327        precision mediump float;
5328
5329        ${DECLARATIONS}
5330
5331        void main()
5332        {
5333            ${SETUP}
5334            out0 = in0.pp;
5335            ${OUTPUT}
5336        }
5337    ""
5338  end
5339
5340  case mediump_bvec3_stp
5341    values
5342    {
5343        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5344        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5345    }
5346
5347    both ""
5348        precision mediump float;
5349
5350        ${DECLARATIONS}
5351
5352        void main()
5353        {
5354            ${SETUP}
5355            out0 = in0.stp;
5356            ${OUTPUT}
5357        }
5358    ""
5359  end
5360
5361  case mediump_bvec3_pts
5362    values
5363    {
5364        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5365        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5366    }
5367
5368    both ""
5369        precision mediump float;
5370
5371        ${DECLARATIONS}
5372
5373        void main()
5374        {
5375            ${SETUP}
5376            out0 = in0.pts;
5377            ${OUTPUT}
5378        }
5379    ""
5380  end
5381
5382  case mediump_bvec3_sss
5383    values
5384    {
5385        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5386        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5387    }
5388
5389    both ""
5390        precision mediump float;
5391
5392        ${DECLARATIONS}
5393
5394        void main()
5395        {
5396            ${SETUP}
5397            out0 = in0.sss;
5398            ${OUTPUT}
5399        }
5400    ""
5401  end
5402
5403  case mediump_bvec3_ppp
5404    values
5405    {
5406        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5407        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5408    }
5409
5410    both ""
5411        precision mediump float;
5412
5413        ${DECLARATIONS}
5414
5415        void main()
5416        {
5417            ${SETUP}
5418            out0 = in0.ppp;
5419            ${OUTPUT}
5420        }
5421    ""
5422  end
5423
5424  case mediump_bvec3_ppt
5425    values
5426    {
5427        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5428        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5429    }
5430
5431    both ""
5432        precision mediump float;
5433
5434        ${DECLARATIONS}
5435
5436        void main()
5437        {
5438            ${SETUP}
5439            out0 = in0.ppt;
5440            ${OUTPUT}
5441        }
5442    ""
5443  end
5444
5445  case mediump_bvec3_tst
5446    values
5447    {
5448        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5449        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5450    }
5451
5452    both ""
5453        precision mediump float;
5454
5455        ${DECLARATIONS}
5456
5457        void main()
5458        {
5459            ${SETUP}
5460            out0 = in0.tst;
5461            ${OUTPUT}
5462        }
5463    ""
5464  end
5465
5466  case mediump_bvec3_sps
5467    values
5468    {
5469        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5470        output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5471    }
5472
5473    both ""
5474        precision mediump float;
5475
5476        ${DECLARATIONS}
5477
5478        void main()
5479        {
5480            ${SETUP}
5481            out0 = in0.sps;
5482            ${OUTPUT}
5483        }
5484    ""
5485  end
5486
5487  case mediump_bvec3_stts
5488    values
5489    {
5490        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5491        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5492    }
5493
5494    both ""
5495        precision mediump float;
5496
5497        ${DECLARATIONS}
5498
5499        void main()
5500        {
5501            ${SETUP}
5502            out0 = in0.stts;
5503            ${OUTPUT}
5504        }
5505    ""
5506  end
5507
5508  case mediump_bvec3_pppp
5509    values
5510    {
5511        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5512        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5513    }
5514
5515    both ""
5516        precision mediump float;
5517
5518        ${DECLARATIONS}
5519
5520        void main()
5521        {
5522            ${SETUP}
5523            out0 = in0.pppp;
5524            ${OUTPUT}
5525        }
5526    ""
5527  end
5528
5529  case mediump_bvec3_r
5530    values
5531    {
5532        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5533        output bool out0 = [ true | false | false | true | false ];
5534    }
5535
5536    both ""
5537        precision mediump float;
5538
5539        ${DECLARATIONS}
5540
5541        void main()
5542        {
5543            ${SETUP}
5544            out0 = in0.r;
5545            ${OUTPUT}
5546        }
5547    ""
5548  end
5549
5550  case mediump_bvec3_b
5551    values
5552    {
5553        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5554        output bool out0 = [ false | false | false | true | false ];
5555    }
5556
5557    both ""
5558        precision mediump float;
5559
5560        ${DECLARATIONS}
5561
5562        void main()
5563        {
5564            ${SETUP}
5565            out0 = in0.b;
5566            ${OUTPUT}
5567        }
5568    ""
5569  end
5570
5571  case mediump_bvec3_rb
5572    values
5573    {
5574        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5575        output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5576    }
5577
5578    both ""
5579        precision mediump float;
5580
5581        ${DECLARATIONS}
5582
5583        void main()
5584        {
5585            ${SETUP}
5586            out0 = in0.rb;
5587            ${OUTPUT}
5588        }
5589    ""
5590  end
5591
5592  case mediump_bvec3_bb
5593    values
5594    {
5595        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5596        output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5597    }
5598
5599    both ""
5600        precision mediump float;
5601
5602        ${DECLARATIONS}
5603
5604        void main()
5605        {
5606            ${SETUP}
5607            out0 = in0.bb;
5608            ${OUTPUT}
5609        }
5610    ""
5611  end
5612
5613  case mediump_bvec3_rgb
5614    values
5615    {
5616        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5617        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5618    }
5619
5620    both ""
5621        precision mediump float;
5622
5623        ${DECLARATIONS}
5624
5625        void main()
5626        {
5627            ${SETUP}
5628            out0 = in0.rgb;
5629            ${OUTPUT}
5630        }
5631    ""
5632  end
5633
5634  case mediump_bvec3_bgr
5635    values
5636    {
5637        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5638        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5639    }
5640
5641    both ""
5642        precision mediump float;
5643
5644        ${DECLARATIONS}
5645
5646        void main()
5647        {
5648            ${SETUP}
5649            out0 = in0.bgr;
5650            ${OUTPUT}
5651        }
5652    ""
5653  end
5654
5655  case mediump_bvec3_rrr
5656    values
5657    {
5658        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5659        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5660    }
5661
5662    both ""
5663        precision mediump float;
5664
5665        ${DECLARATIONS}
5666
5667        void main()
5668        {
5669            ${SETUP}
5670            out0 = in0.rrr;
5671            ${OUTPUT}
5672        }
5673    ""
5674  end
5675
5676  case mediump_bvec3_bbb
5677    values
5678    {
5679        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5680        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5681    }
5682
5683    both ""
5684        precision mediump float;
5685
5686        ${DECLARATIONS}
5687
5688        void main()
5689        {
5690            ${SETUP}
5691            out0 = in0.bbb;
5692            ${OUTPUT}
5693        }
5694    ""
5695  end
5696
5697  case mediump_bvec3_bbg
5698    values
5699    {
5700        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5701        output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5702    }
5703
5704    both ""
5705        precision mediump float;
5706
5707        ${DECLARATIONS}
5708
5709        void main()
5710        {
5711            ${SETUP}
5712            out0 = in0.bbg;
5713            ${OUTPUT}
5714        }
5715    ""
5716  end
5717
5718  case mediump_bvec3_grg
5719    values
5720    {
5721        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5722        output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5723    }
5724
5725    both ""
5726        precision mediump float;
5727
5728        ${DECLARATIONS}
5729
5730        void main()
5731        {
5732            ${SETUP}
5733            out0 = in0.grg;
5734            ${OUTPUT}
5735        }
5736    ""
5737  end
5738
5739  case mediump_bvec3_rbr
5740    values
5741    {
5742        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5743        output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5744    }
5745
5746    both ""
5747        precision mediump float;
5748
5749        ${DECLARATIONS}
5750
5751        void main()
5752        {
5753            ${SETUP}
5754            out0 = in0.rbr;
5755            ${OUTPUT}
5756        }
5757    ""
5758  end
5759
5760  case mediump_bvec3_rggr
5761    values
5762    {
5763        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5764        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5765    }
5766
5767    both ""
5768        precision mediump float;
5769
5770        ${DECLARATIONS}
5771
5772        void main()
5773        {
5774            ${SETUP}
5775            out0 = in0.rggr;
5776            ${OUTPUT}
5777        }
5778    ""
5779  end
5780
5781  case mediump_bvec3_bbbb
5782    values
5783    {
5784        input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5785        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5786    }
5787
5788    both ""
5789        precision mediump float;
5790
5791        ${DECLARATIONS}
5792
5793        void main()
5794        {
5795            ${SETUP}
5796            out0 = in0.bbbb;
5797            ${OUTPUT}
5798        }
5799    ""
5800  end
5801
5802  case mediump_bvec4_x
5803    values
5804    {
5805        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5806        output bool out0 = [ true | false | false | true | false ];
5807    }
5808
5809    both ""
5810        precision mediump float;
5811
5812        ${DECLARATIONS}
5813
5814        void main()
5815        {
5816            ${SETUP}
5817            out0 = in0.x;
5818            ${OUTPUT}
5819        }
5820    ""
5821  end
5822
5823  case mediump_bvec4_w
5824    values
5825    {
5826        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5827        output bool out0 = [ true | true | false | true | false ];
5828    }
5829
5830    both ""
5831        precision mediump float;
5832
5833        ${DECLARATIONS}
5834
5835        void main()
5836        {
5837            ${SETUP}
5838            out0 = in0.w;
5839            ${OUTPUT}
5840        }
5841    ""
5842  end
5843
5844  case mediump_bvec4_wx
5845    values
5846    {
5847        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5848        output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5849    }
5850
5851    both ""
5852        precision mediump float;
5853
5854        ${DECLARATIONS}
5855
5856        void main()
5857        {
5858            ${SETUP}
5859            out0 = in0.wx;
5860            ${OUTPUT}
5861        }
5862    ""
5863  end
5864
5865  case mediump_bvec4_wz
5866    values
5867    {
5868        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5869        output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
5870    }
5871
5872    both ""
5873        precision mediump float;
5874
5875        ${DECLARATIONS}
5876
5877        void main()
5878        {
5879            ${SETUP}
5880            out0 = in0.wz;
5881            ${OUTPUT}
5882        }
5883    ""
5884  end
5885
5886  case mediump_bvec4_www
5887    values
5888    {
5889        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5890        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5891    }
5892
5893    both ""
5894        precision mediump float;
5895
5896        ${DECLARATIONS}
5897
5898        void main()
5899        {
5900            ${SETUP}
5901            out0 = in0.www;
5902            ${OUTPUT}
5903        }
5904    ""
5905  end
5906
5907  case mediump_bvec4_yyw
5908    values
5909    {
5910        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5911        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5912    }
5913
5914    both ""
5915        precision mediump float;
5916
5917        ${DECLARATIONS}
5918
5919        void main()
5920        {
5921            ${SETUP}
5922            out0 = in0.yyw;
5923            ${OUTPUT}
5924        }
5925    ""
5926  end
5927
5928  case mediump_bvec4_wzy
5929    values
5930    {
5931        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5932        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5933    }
5934
5935    both ""
5936        precision mediump float;
5937
5938        ${DECLARATIONS}
5939
5940        void main()
5941        {
5942            ${SETUP}
5943            out0 = in0.wzy;
5944            ${OUTPUT}
5945        }
5946    ""
5947  end
5948
5949  case mediump_bvec4_xyzw
5950    values
5951    {
5952        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5953        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5954    }
5955
5956    both ""
5957        precision mediump float;
5958
5959        ${DECLARATIONS}
5960
5961        void main()
5962        {
5963            ${SETUP}
5964            out0 = in0.xyzw;
5965            ${OUTPUT}
5966        }
5967    ""
5968  end
5969
5970  case mediump_bvec4_wzyx
5971    values
5972    {
5973        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5974        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, false) | bvec4(false, false, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5975    }
5976
5977    both ""
5978        precision mediump float;
5979
5980        ${DECLARATIONS}
5981
5982        void main()
5983        {
5984            ${SETUP}
5985            out0 = in0.wzyx;
5986            ${OUTPUT}
5987        }
5988    ""
5989  end
5990
5991  case mediump_bvec4_xxxx
5992    values
5993    {
5994        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5995        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
5996    }
5997
5998    both ""
5999        precision mediump float;
6000
6001        ${DECLARATIONS}
6002
6003        void main()
6004        {
6005            ${SETUP}
6006            out0 = in0.xxxx;
6007            ${OUTPUT}
6008        }
6009    ""
6010  end
6011
6012  case mediump_bvec4_yyyy
6013    values
6014    {
6015        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6016        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6017    }
6018
6019    both ""
6020        precision mediump float;
6021
6022        ${DECLARATIONS}
6023
6024        void main()
6025        {
6026            ${SETUP}
6027            out0 = in0.yyyy;
6028            ${OUTPUT}
6029        }
6030    ""
6031  end
6032
6033  case mediump_bvec4_wwww
6034    values
6035    {
6036        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6037        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6038    }
6039
6040    both ""
6041        precision mediump float;
6042
6043        ${DECLARATIONS}
6044
6045        void main()
6046        {
6047            ${SETUP}
6048            out0 = in0.wwww;
6049            ${OUTPUT}
6050        }
6051    ""
6052  end
6053
6054  case mediump_bvec4_wzzw
6055    values
6056    {
6057        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6058        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6059    }
6060
6061    both ""
6062        precision mediump float;
6063
6064        ${DECLARATIONS}
6065
6066        void main()
6067        {
6068            ${SETUP}
6069            out0 = in0.wzzw;
6070            ${OUTPUT}
6071        }
6072    ""
6073  end
6074
6075  case mediump_bvec4_wwwy
6076    values
6077    {
6078        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6079        output bvec4 out0 = [ bvec4(true, true, true, false) | bvec4(true, true, true, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6080    }
6081
6082    both ""
6083        precision mediump float;
6084
6085        ${DECLARATIONS}
6086
6087        void main()
6088        {
6089            ${SETUP}
6090            out0 = in0.wwwy;
6091            ${OUTPUT}
6092        }
6093    ""
6094  end
6095
6096  case mediump_bvec4_xyxx
6097    values
6098    {
6099        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6100        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6101    }
6102
6103    both ""
6104        precision mediump float;
6105
6106        ${DECLARATIONS}
6107
6108        void main()
6109        {
6110            ${SETUP}
6111            out0 = in0.xyxx;
6112            ${OUTPUT}
6113        }
6114    ""
6115  end
6116
6117  case mediump_bvec4_zzwz
6118    values
6119    {
6120        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6121        output bvec4 out0 = [ bvec4(false, false, true, false) | bvec4(false, false, true, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6122    }
6123
6124    both ""
6125        precision mediump float;
6126
6127        ${DECLARATIONS}
6128
6129        void main()
6130        {
6131            ${SETUP}
6132            out0 = in0.zzwz;
6133            ${OUTPUT}
6134        }
6135    ""
6136  end
6137
6138  case mediump_bvec4_s
6139    values
6140    {
6141        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6142        output bool out0 = [ true | false | false | true | false ];
6143    }
6144
6145    both ""
6146        precision mediump float;
6147
6148        ${DECLARATIONS}
6149
6150        void main()
6151        {
6152            ${SETUP}
6153            out0 = in0.s;
6154            ${OUTPUT}
6155        }
6156    ""
6157  end
6158
6159  case mediump_bvec4_q
6160    values
6161    {
6162        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6163        output bool out0 = [ true | true | false | true | false ];
6164    }
6165
6166    both ""
6167        precision mediump float;
6168
6169        ${DECLARATIONS}
6170
6171        void main()
6172        {
6173            ${SETUP}
6174            out0 = in0.q;
6175            ${OUTPUT}
6176        }
6177    ""
6178  end
6179
6180  case mediump_bvec4_qs
6181    values
6182    {
6183        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6184        output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
6185    }
6186
6187    both ""
6188        precision mediump float;
6189
6190        ${DECLARATIONS}
6191
6192        void main()
6193        {
6194            ${SETUP}
6195            out0 = in0.qs;
6196            ${OUTPUT}
6197        }
6198    ""
6199  end
6200
6201  case mediump_bvec4_qp
6202    values
6203    {
6204        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6205        output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
6206    }
6207
6208    both ""
6209        precision mediump float;
6210
6211        ${DECLARATIONS}
6212
6213        void main()
6214        {
6215            ${SETUP}
6216            out0 = in0.qp;
6217            ${OUTPUT}
6218        }
6219    ""
6220  end
6221
6222  case mediump_bvec4_qqq
6223    values
6224    {
6225        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6226        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
6227    }
6228
6229    both ""
6230        precision mediump float;
6231
6232        ${DECLARATIONS}
6233
6234        void main()
6235        {
6236            ${SETUP}
6237            out0 = in0.qqq;
6238            ${OUTPUT}
6239        }
6240    ""
6241  end
6242
6243  case mediump_bvec4_ttq
6244    values
6245    {
6246        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6247        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
6248    }
6249
6250    both ""
6251        precision mediump float;
6252
6253        ${DECLARATIONS}
6254
6255        void main()
6256        {
6257            ${SETUP}
6258            out0 = in0.ttq;
6259            ${OUTPUT}
6260        }
6261    ""
6262  end
6263
6264  case mediump_bvec4_qpt
6265    values
6266    {
6267        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6268        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
6269    }
6270
6271    both ""
6272        precision mediump float;
6273
6274        ${DECLARATIONS}
6275
6276        void main()
6277        {
6278            ${SETUP}
6279            out0 = in0.qpt;
6280            ${OUTPUT}
6281        }
6282    ""
6283  end
6284
6285  case mediump_bvec4_stpq
6286    values
6287    {
6288        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6289        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6290    }
6291
6292    both ""
6293        precision mediump float;
6294
6295        ${DECLARATIONS}
6296
6297        void main()
6298        {
6299            ${SETUP}
6300            out0 = in0.stpq;
6301            ${OUTPUT}
6302        }
6303    ""
6304  end
6305
6306  case mediump_bvec4_qpts
6307    values
6308    {
6309        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6310        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, false) | bvec4(false, false, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6311    }
6312
6313    both ""
6314        precision mediump float;
6315
6316        ${DECLARATIONS}
6317
6318        void main()
6319        {
6320            ${SETUP}
6321            out0 = in0.qpts;
6322            ${OUTPUT}
6323        }
6324    ""
6325  end
6326
6327  case mediump_bvec4_ssss
6328    values
6329    {
6330        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6331        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6332    }
6333
6334    both ""
6335        precision mediump float;
6336
6337        ${DECLARATIONS}
6338
6339        void main()
6340        {
6341            ${SETUP}
6342            out0 = in0.ssss;
6343            ${OUTPUT}
6344        }
6345    ""
6346  end
6347
6348  case mediump_bvec4_tttt
6349    values
6350    {
6351        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6352        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6353    }
6354
6355    both ""
6356        precision mediump float;
6357
6358        ${DECLARATIONS}
6359
6360        void main()
6361        {
6362            ${SETUP}
6363            out0 = in0.tttt;
6364            ${OUTPUT}
6365        }
6366    ""
6367  end
6368
6369  case mediump_bvec4_qqqq
6370    values
6371    {
6372        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6373        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6374    }
6375
6376    both ""
6377        precision mediump float;
6378
6379        ${DECLARATIONS}
6380
6381        void main()
6382        {
6383            ${SETUP}
6384            out0 = in0.qqqq;
6385            ${OUTPUT}
6386        }
6387    ""
6388  end
6389
6390  case mediump_bvec4_qppq
6391    values
6392    {
6393        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6394        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6395    }
6396
6397    both ""
6398        precision mediump float;
6399
6400        ${DECLARATIONS}
6401
6402        void main()
6403        {
6404            ${SETUP}
6405            out0 = in0.qppq;
6406            ${OUTPUT}
6407        }
6408    ""
6409  end
6410
6411  case mediump_bvec4_qqqt
6412    values
6413    {
6414        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6415        output bvec4 out0 = [ bvec4(true, true, true, false) | bvec4(true, true, true, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6416    }
6417
6418    both ""
6419        precision mediump float;
6420
6421        ${DECLARATIONS}
6422
6423        void main()
6424        {
6425            ${SETUP}
6426            out0 = in0.qqqt;
6427            ${OUTPUT}
6428        }
6429    ""
6430  end
6431
6432  case mediump_bvec4_stss
6433    values
6434    {
6435        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6436        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6437    }
6438
6439    both ""
6440        precision mediump float;
6441
6442        ${DECLARATIONS}
6443
6444        void main()
6445        {
6446            ${SETUP}
6447            out0 = in0.stss;
6448            ${OUTPUT}
6449        }
6450    ""
6451  end
6452
6453  case mediump_bvec4_ppqp
6454    values
6455    {
6456        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6457        output bvec4 out0 = [ bvec4(false, false, true, false) | bvec4(false, false, true, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6458    }
6459
6460    both ""
6461        precision mediump float;
6462
6463        ${DECLARATIONS}
6464
6465        void main()
6466        {
6467            ${SETUP}
6468            out0 = in0.ppqp;
6469            ${OUTPUT}
6470        }
6471    ""
6472  end
6473
6474  case mediump_bvec4_r
6475    values
6476    {
6477        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6478        output bool out0 = [ true | false | false | true | false ];
6479    }
6480
6481    both ""
6482        precision mediump float;
6483
6484        ${DECLARATIONS}
6485
6486        void main()
6487        {
6488            ${SETUP}
6489            out0 = in0.r;
6490            ${OUTPUT}
6491        }
6492    ""
6493  end
6494
6495  case mediump_bvec4_a
6496    values
6497    {
6498        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6499        output bool out0 = [ true | true | false | true | false ];
6500    }
6501
6502    both ""
6503        precision mediump float;
6504
6505        ${DECLARATIONS}
6506
6507        void main()
6508        {
6509            ${SETUP}
6510            out0 = in0.a;
6511            ${OUTPUT}
6512        }
6513    ""
6514  end
6515
6516  case mediump_bvec4_ar
6517    values
6518    {
6519        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6520        output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
6521    }
6522
6523    both ""
6524        precision mediump float;
6525
6526        ${DECLARATIONS}
6527
6528        void main()
6529        {
6530            ${SETUP}
6531            out0 = in0.ar;
6532            ${OUTPUT}
6533        }
6534    ""
6535  end
6536
6537  case mediump_bvec4_ab
6538    values
6539    {
6540        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6541        output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
6542    }
6543
6544    both ""
6545        precision mediump float;
6546
6547        ${DECLARATIONS}
6548
6549        void main()
6550        {
6551            ${SETUP}
6552            out0 = in0.ab;
6553            ${OUTPUT}
6554        }
6555    ""
6556  end
6557
6558  case mediump_bvec4_aaa
6559    values
6560    {
6561        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6562        output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
6563    }
6564
6565    both ""
6566        precision mediump float;
6567
6568        ${DECLARATIONS}
6569
6570        void main()
6571        {
6572            ${SETUP}
6573            out0 = in0.aaa;
6574            ${OUTPUT}
6575        }
6576    ""
6577  end
6578
6579  case mediump_bvec4_gga
6580    values
6581    {
6582        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6583        output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
6584    }
6585
6586    both ""
6587        precision mediump float;
6588
6589        ${DECLARATIONS}
6590
6591        void main()
6592        {
6593            ${SETUP}
6594            out0 = in0.gga;
6595            ${OUTPUT}
6596        }
6597    ""
6598  end
6599
6600  case mediump_bvec4_abg
6601    values
6602    {
6603        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6604        output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
6605    }
6606
6607    both ""
6608        precision mediump float;
6609
6610        ${DECLARATIONS}
6611
6612        void main()
6613        {
6614            ${SETUP}
6615            out0 = in0.abg;
6616            ${OUTPUT}
6617        }
6618    ""
6619  end
6620
6621  case mediump_bvec4_rgba
6622    values
6623    {
6624        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6625        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6626    }
6627
6628    both ""
6629        precision mediump float;
6630
6631        ${DECLARATIONS}
6632
6633        void main()
6634        {
6635            ${SETUP}
6636            out0 = in0.rgba;
6637            ${OUTPUT}
6638        }
6639    ""
6640  end
6641
6642  case mediump_bvec4_abgr
6643    values
6644    {
6645        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6646        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, false) | bvec4(false, false, true, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6647    }
6648
6649    both ""
6650        precision mediump float;
6651
6652        ${DECLARATIONS}
6653
6654        void main()
6655        {
6656            ${SETUP}
6657            out0 = in0.abgr;
6658            ${OUTPUT}
6659        }
6660    ""
6661  end
6662
6663  case mediump_bvec4_rrrr
6664    values
6665    {
6666        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6667        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6668    }
6669
6670    both ""
6671        precision mediump float;
6672
6673        ${DECLARATIONS}
6674
6675        void main()
6676        {
6677            ${SETUP}
6678            out0 = in0.rrrr;
6679            ${OUTPUT}
6680        }
6681    ""
6682  end
6683
6684  case mediump_bvec4_gggg
6685    values
6686    {
6687        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6688        output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6689    }
6690
6691    both ""
6692        precision mediump float;
6693
6694        ${DECLARATIONS}
6695
6696        void main()
6697        {
6698            ${SETUP}
6699            out0 = in0.gggg;
6700            ${OUTPUT}
6701        }
6702    ""
6703  end
6704
6705  case mediump_bvec4_aaaa
6706    values
6707    {
6708        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6709        output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6710    }
6711
6712    both ""
6713        precision mediump float;
6714
6715        ${DECLARATIONS}
6716
6717        void main()
6718        {
6719            ${SETUP}
6720            out0 = in0.aaaa;
6721            ${OUTPUT}
6722        }
6723    ""
6724  end
6725
6726  case mediump_bvec4_abba
6727    values
6728    {
6729        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6730        output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6731    }
6732
6733    both ""
6734        precision mediump float;
6735
6736        ${DECLARATIONS}
6737
6738        void main()
6739        {
6740            ${SETUP}
6741            out0 = in0.abba;
6742            ${OUTPUT}
6743        }
6744    ""
6745  end
6746
6747  case mediump_bvec4_aaag
6748    values
6749    {
6750        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6751        output bvec4 out0 = [ bvec4(true, true, true, false) | bvec4(true, true, true, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6752    }
6753
6754    both ""
6755        precision mediump float;
6756
6757        ${DECLARATIONS}
6758
6759        void main()
6760        {
6761            ${SETUP}
6762            out0 = in0.aaag;
6763            ${OUTPUT}
6764        }
6765    ""
6766  end
6767
6768  case mediump_bvec4_rgrr
6769    values
6770    {
6771        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6772        output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6773    }
6774
6775    both ""
6776        precision mediump float;
6777
6778        ${DECLARATIONS}
6779
6780        void main()
6781        {
6782            ${SETUP}
6783            out0 = in0.rgrr;
6784            ${OUTPUT}
6785        }
6786    ""
6787  end
6788
6789  case mediump_bvec4_bbab
6790    values
6791    {
6792        input bvec4 in0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6793        output bvec4 out0 = [ bvec4(false, false, true, false) | bvec4(false, false, true, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
6794    }
6795
6796    both ""
6797        precision mediump float;
6798
6799        ${DECLARATIONS}
6800
6801        void main()
6802        {
6803            ${SETUP}
6804            out0 = in0.bbab;
6805            ${OUTPUT}
6806        }
6807    ""
6808  end
6809
6810
6811end # vector_swizzles
6812