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