Merge "Add triangle edge guardband for Tex2D lookup diff" am: da231f19ab
[platform/upstream/VK-GL-CTS.git] / data / gles2 / shaders / swizzles.test
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
4 group 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
6811 end # vector_swizzles