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