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 scalar_to_scalar "Scalar to Scalar Conversions"
5
6	case float_to_float
7		version 310 es
8		values
9		{
10			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
11			output float out0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
12		}
13
14		both ""
15			#version 310 es
16			precision highp float;
17			precision highp int;
18
19			${DECLARATIONS}
20
21			void main()
22			{
23				${SETUP}
24				out0 = float(in0);
25				${OUTPUT}
26			}
27		""
28	end
29
30	case float_to_int
31		version 310 es
32		values
33		{
34			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
35			output int out0 = [ 0 | 1 | 2 | 3 | 0 | -8 | -20 | 36 ];
36		}
37
38		both ""
39			#version 310 es
40			precision highp float;
41			precision highp int;
42
43			${DECLARATIONS}
44
45			void main()
46			{
47				${SETUP}
48				out0 = int(in0);
49				${OUTPUT}
50			}
51		""
52	end
53
54	case float_to_bool
55		version 310 es
56		values
57		{
58			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
59			output bool out0 = [ false | true | true | true | true | true | true | true ];
60		}
61
62		both ""
63			#version 310 es
64			precision highp float;
65			precision highp int;
66
67			${DECLARATIONS}
68
69			void main()
70			{
71				${SETUP}
72				out0 = bool(in0);
73				${OUTPUT}
74			}
75		""
76	end
77
78	case int_to_float
79		version 310 es
80		values
81		{
82			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
83			output float out0 = [ 0.0 | 1.0 | 2.0 | 5.0 | 8.0 | 11.0 | -12.0 | -66.0 | -192.0 | 255.0 ];
84		}
85
86		both ""
87			#version 310 es
88			precision highp float;
89			precision highp int;
90
91			${DECLARATIONS}
92
93			void main()
94			{
95				${SETUP}
96				out0 = float(in0);
97				${OUTPUT}
98			}
99		""
100	end
101
102	case int_to_int
103		version 310 es
104		values
105		{
106			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
107			output int out0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
108		}
109
110		both ""
111			#version 310 es
112			precision highp float;
113			precision highp int;
114
115			${DECLARATIONS}
116
117			void main()
118			{
119				${SETUP}
120				out0 = int(in0);
121				${OUTPUT}
122			}
123		""
124	end
125
126	case int_to_bool
127		version 310 es
128		values
129		{
130			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
131			output bool out0 = [ false | true | true | true | true | true | true | true | true | true ];
132		}
133
134		both ""
135			#version 310 es
136			precision highp float;
137			precision highp int;
138
139			${DECLARATIONS}
140
141			void main()
142			{
143				${SETUP}
144				out0 = bool(in0);
145				${OUTPUT}
146			}
147		""
148	end
149
150	case uint_to_float
151		version 310 es
152		values
153		{
154			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
155			output float out0 = [ 0.0 | 2.0 | 3.0 | 8.0 | 9.0 | 12.0 | 10.0 | 45.0 | 193.0 | 255.0 ];
156		}
157
158		both ""
159			#version 310 es
160			precision highp float;
161			precision highp int;
162
163			${DECLARATIONS}
164
165			void main()
166			{
167				${SETUP}
168				out0 = float(in0);
169				${OUTPUT}
170			}
171		""
172	end
173
174	case uint_to_int
175		version 310 es
176		values
177		{
178			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
179			output int out0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
180		}
181
182		both ""
183			#version 310 es
184			precision highp float;
185			precision highp int;
186
187			${DECLARATIONS}
188
189			void main()
190			{
191				${SETUP}
192				out0 = int(in0);
193				${OUTPUT}
194			}
195		""
196	end
197
198	case uint_to_bool
199		version 310 es
200		values
201		{
202			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
203			output bool out0 = [ false | true | true | true | true | true | true | true | true | true ];
204		}
205
206		both ""
207			#version 310 es
208			precision highp float;
209			precision highp int;
210
211			${DECLARATIONS}
212
213			void main()
214			{
215				${SETUP}
216				out0 = bool(in0);
217				${OUTPUT}
218			}
219		""
220	end
221
222	case bool_to_float
223		version 310 es
224		values
225		{
226			input bool in0 = [ true | false ];
227			output float out0 = [ 1.0 | 0.0 ];
228		}
229
230		both ""
231			#version 310 es
232			precision highp float;
233			precision highp int;
234
235			${DECLARATIONS}
236
237			void main()
238			{
239				${SETUP}
240				out0 = float(in0);
241				${OUTPUT}
242			}
243		""
244	end
245
246	case bool_to_int
247		version 310 es
248		values
249		{
250			input bool in0 = [ true | false ];
251			output int out0 = [ 1 | 0 ];
252		}
253
254		both ""
255			#version 310 es
256			precision highp float;
257			precision highp int;
258
259			${DECLARATIONS}
260
261			void main()
262			{
263				${SETUP}
264				out0 = int(in0);
265				${OUTPUT}
266			}
267		""
268	end
269
270	case bool_to_bool
271		version 310 es
272		values
273		{
274			input bool in0 = [ true | false ];
275			output bool out0 = [ true | false ];
276		}
277
278		both ""
279			#version 310 es
280			precision highp float;
281			precision highp int;
282
283			${DECLARATIONS}
284
285			void main()
286			{
287				${SETUP}
288				out0 = bool(in0);
289				${OUTPUT}
290			}
291		""
292	end
293
294	case float_to_uint
295		version 310 es
296		values
297		{
298			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | 0.5 | 8.25 | 20.125 | 36.8125 ];
299			output uint out0 = [ 0 | 1 | 2 | 3 | 0 | 8 | 20 | 36 ];
300		}
301
302		both ""
303			#version 310 es
304			precision highp float;
305			precision highp int;
306
307			${DECLARATIONS}
308
309			void main()
310			{
311				${SETUP}
312				out0 = uint(in0);
313				${OUTPUT}
314			}
315		""
316	end
317
318	case int_to_uint
319		version 310 es
320		values
321		{
322			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | 12 | 66 | 192 | 255 ];
323			output uint out0 = [ 0 | 1 | 2 | 5 | 8 | 11 | 12 | 66 | 192 | 255 ];
324		}
325
326		both ""
327			#version 310 es
328			precision highp float;
329			precision highp int;
330
331			${DECLARATIONS}
332
333			void main()
334			{
335				${SETUP}
336				out0 = uint(in0);
337				${OUTPUT}
338			}
339		""
340	end
341
342	case uint_to_uint
343		version 310 es
344		values
345		{
346			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
347			output uint out0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
348		}
349
350		both ""
351			#version 310 es
352			precision highp float;
353			precision highp int;
354
355			${DECLARATIONS}
356
357			void main()
358			{
359				${SETUP}
360				out0 = uint(in0);
361				${OUTPUT}
362			}
363		""
364	end
365
366	case bool_to_uint
367		version 310 es
368		values
369		{
370			input bool in0 = [ true | false ];
371			output uint out0 = [ 1 | 0 ];
372		}
373
374		both ""
375			#version 310 es
376			precision highp float;
377			precision highp int;
378
379			${DECLARATIONS}
380
381			void main()
382			{
383				${SETUP}
384				out0 = uint(in0);
385				${OUTPUT}
386			}
387		""
388	end
389
390
391end # scalar_to_scalar
392group scalar_to_vector "Scalar to Vector Conversions"
393
394	case float_to_vec2
395		version 310 es
396		values
397		{
398			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
399			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(2.0, 2.0) | vec2(3.5, 3.5) | vec2(-0.5, -0.5) | vec2(-8.25, -8.25) | vec2(-20.125, -20.125) | vec2(36.8125, 36.8125) ];
400		}
401
402		both ""
403			#version 310 es
404			precision highp float;
405			precision highp int;
406
407			${DECLARATIONS}
408
409			void main()
410			{
411				${SETUP}
412				out0 = vec2(in0);
413				${OUTPUT}
414			}
415		""
416	end
417
418	case float_to_vec3
419		version 310 es
420		values
421		{
422			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
423			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(2.0, 2.0, 2.0) | vec3(3.5, 3.5, 3.5) | vec3(-0.5, -0.5, -0.5) | vec3(-8.25, -8.25, -8.25) | vec3(-20.125, -20.125, -20.125) | vec3(36.8125, 36.8125, 36.8125) ];
424		}
425
426		both ""
427			#version 310 es
428			precision highp float;
429			precision highp int;
430
431			${DECLARATIONS}
432
433			void main()
434			{
435				${SETUP}
436				out0 = vec3(in0);
437				${OUTPUT}
438			}
439		""
440	end
441
442	case float_to_vec4
443		version 310 es
444		values
445		{
446			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
447			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 2.0, 2.0, 2.0) | vec4(3.5, 3.5, 3.5, 3.5) | vec4(-0.5, -0.5, -0.5, -0.5) | vec4(-8.25, -8.25, -8.25, -8.25) | vec4(-20.125, -20.125, -20.125, -20.125) | vec4(36.8125, 36.8125, 36.8125, 36.8125) ];
448		}
449
450		both ""
451			#version 310 es
452			precision highp float;
453			precision highp int;
454
455			${DECLARATIONS}
456
457			void main()
458			{
459				${SETUP}
460				out0 = vec4(in0);
461				${OUTPUT}
462			}
463		""
464	end
465
466	case float_to_ivec2
467		version 310 es
468		values
469		{
470			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
471			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(2, 2) | ivec2(3, 3) | ivec2(0, 0) | ivec2(-8, -8) | ivec2(-20, -20) | ivec2(36, 36) ];
472		}
473
474		both ""
475			#version 310 es
476			precision highp float;
477			precision highp int;
478
479			${DECLARATIONS}
480
481			void main()
482			{
483				${SETUP}
484				out0 = ivec2(in0);
485				${OUTPUT}
486			}
487		""
488	end
489
490	case float_to_ivec3
491		version 310 es
492		values
493		{
494			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
495			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(2, 2, 2) | ivec3(3, 3, 3) | ivec3(0, 0, 0) | ivec3(-8, -8, -8) | ivec3(-20, -20, -20) | ivec3(36, 36, 36) ];
496		}
497
498		both ""
499			#version 310 es
500			precision highp float;
501			precision highp int;
502
503			${DECLARATIONS}
504
505			void main()
506			{
507				${SETUP}
508				out0 = ivec3(in0);
509				${OUTPUT}
510			}
511		""
512	end
513
514	case float_to_ivec4
515		version 310 es
516		values
517		{
518			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
519			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(2, 2, 2, 2) | ivec4(3, 3, 3, 3) | ivec4(0, 0, 0, 0) | ivec4(-8, -8, -8, -8) | ivec4(-20, -20, -20, -20) | ivec4(36, 36, 36, 36) ];
520		}
521
522		both ""
523			#version 310 es
524			precision highp float;
525			precision highp int;
526
527			${DECLARATIONS}
528
529			void main()
530			{
531				${SETUP}
532				out0 = ivec4(in0);
533				${OUTPUT}
534			}
535		""
536	end
537
538	case float_to_bvec2
539		version 310 es
540		values
541		{
542			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
543			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
544		}
545
546		both ""
547			#version 310 es
548			precision highp float;
549			precision highp int;
550
551			${DECLARATIONS}
552
553			void main()
554			{
555				${SETUP}
556				out0 = bvec2(in0);
557				${OUTPUT}
558			}
559		""
560	end
561
562	case float_to_bvec3
563		version 310 es
564		values
565		{
566			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
567			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
568		}
569
570		both ""
571			#version 310 es
572			precision highp float;
573			precision highp int;
574
575			${DECLARATIONS}
576
577			void main()
578			{
579				${SETUP}
580				out0 = bvec3(in0);
581				${OUTPUT}
582			}
583		""
584	end
585
586	case float_to_bvec4
587		version 310 es
588		values
589		{
590			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
591			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
592		}
593
594		both ""
595			#version 310 es
596			precision highp float;
597			precision highp int;
598
599			${DECLARATIONS}
600
601			void main()
602			{
603				${SETUP}
604				out0 = bvec4(in0);
605				${OUTPUT}
606			}
607		""
608	end
609
610	case int_to_vec2
611		version 310 es
612		values
613		{
614			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
615			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(2.0, 2.0) | vec2(5.0, 5.0) | vec2(8.0, 8.0) | vec2(11.0, 11.0) | vec2(-12.0, -12.0) | vec2(-66.0, -66.0) | vec2(-192.0, -192.0) | vec2(255.0, 255.0) ];
616		}
617
618		both ""
619			#version 310 es
620			precision highp float;
621			precision highp int;
622
623			${DECLARATIONS}
624
625			void main()
626			{
627				${SETUP}
628				out0 = vec2(in0);
629				${OUTPUT}
630			}
631		""
632	end
633
634	case int_to_vec3
635		version 310 es
636		values
637		{
638			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
639			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(2.0, 2.0, 2.0) | vec3(5.0, 5.0, 5.0) | vec3(8.0, 8.0, 8.0) | vec3(11.0, 11.0, 11.0) | vec3(-12.0, -12.0, -12.0) | vec3(-66.0, -66.0, -66.0) | vec3(-192.0, -192.0, -192.0) | vec3(255.0, 255.0, 255.0) ];
640		}
641
642		both ""
643			#version 310 es
644			precision highp float;
645			precision highp int;
646
647			${DECLARATIONS}
648
649			void main()
650			{
651				${SETUP}
652				out0 = vec3(in0);
653				${OUTPUT}
654			}
655		""
656	end
657
658	case int_to_vec4
659		version 310 es
660		values
661		{
662			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
663			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 2.0, 2.0, 2.0) | vec4(5.0, 5.0, 5.0, 5.0) | vec4(8.0, 8.0, 8.0, 8.0) | vec4(11.0, 11.0, 11.0, 11.0) | vec4(-12.0, -12.0, -12.0, -12.0) | vec4(-66.0, -66.0, -66.0, -66.0) | vec4(-192.0, -192.0, -192.0, -192.0) | vec4(255.0, 255.0, 255.0, 255.0) ];
664		}
665
666		both ""
667			#version 310 es
668			precision highp float;
669			precision highp int;
670
671			${DECLARATIONS}
672
673			void main()
674			{
675				${SETUP}
676				out0 = vec4(in0);
677				${OUTPUT}
678			}
679		""
680	end
681
682	case int_to_ivec2
683		version 310 es
684		values
685		{
686			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
687			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(2, 2) | ivec2(5, 5) | ivec2(8, 8) | ivec2(11, 11) | ivec2(-12, -12) | ivec2(-66, -66) | ivec2(-192, -192) | ivec2(255, 255) ];
688		}
689
690		both ""
691			#version 310 es
692			precision highp float;
693			precision highp int;
694
695			${DECLARATIONS}
696
697			void main()
698			{
699				${SETUP}
700				out0 = ivec2(in0);
701				${OUTPUT}
702			}
703		""
704	end
705
706	case int_to_ivec3
707		version 310 es
708		values
709		{
710			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
711			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(2, 2, 2) | ivec3(5, 5, 5) | ivec3(8, 8, 8) | ivec3(11, 11, 11) | ivec3(-12, -12, -12) | ivec3(-66, -66, -66) | ivec3(-192, -192, -192) | ivec3(255, 255, 255) ];
712		}
713
714		both ""
715			#version 310 es
716			precision highp float;
717			precision highp int;
718
719			${DECLARATIONS}
720
721			void main()
722			{
723				${SETUP}
724				out0 = ivec3(in0);
725				${OUTPUT}
726			}
727		""
728	end
729
730	case int_to_ivec4
731		version 310 es
732		values
733		{
734			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
735			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(2, 2, 2, 2) | ivec4(5, 5, 5, 5) | ivec4(8, 8, 8, 8) | ivec4(11, 11, 11, 11) | ivec4(-12, -12, -12, -12) | ivec4(-66, -66, -66, -66) | ivec4(-192, -192, -192, -192) | ivec4(255, 255, 255, 255) ];
736		}
737
738		both ""
739			#version 310 es
740			precision highp float;
741			precision highp int;
742
743			${DECLARATIONS}
744
745			void main()
746			{
747				${SETUP}
748				out0 = ivec4(in0);
749				${OUTPUT}
750			}
751		""
752	end
753
754	case int_to_bvec2
755		version 310 es
756		values
757		{
758			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
759			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
760		}
761
762		both ""
763			#version 310 es
764			precision highp float;
765			precision highp int;
766
767			${DECLARATIONS}
768
769			void main()
770			{
771				${SETUP}
772				out0 = bvec2(in0);
773				${OUTPUT}
774			}
775		""
776	end
777
778	case int_to_bvec3
779		version 310 es
780		values
781		{
782			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
783			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
784		}
785
786		both ""
787			#version 310 es
788			precision highp float;
789			precision highp int;
790
791			${DECLARATIONS}
792
793			void main()
794			{
795				${SETUP}
796				out0 = bvec3(in0);
797				${OUTPUT}
798			}
799		""
800	end
801
802	case int_to_bvec4
803		version 310 es
804		values
805		{
806			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
807			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
808		}
809
810		both ""
811			#version 310 es
812			precision highp float;
813			precision highp int;
814
815			${DECLARATIONS}
816
817			void main()
818			{
819				${SETUP}
820				out0 = bvec4(in0);
821				${OUTPUT}
822			}
823		""
824	end
825
826	case uint_to_vec2
827		version 310 es
828		values
829		{
830			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
831			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(2.0, 2.0) | vec2(3.0, 3.0) | vec2(8.0, 8.0) | vec2(9.0, 9.0) | vec2(12.0, 12.0) | vec2(10.0, 10.0) | vec2(45.0, 45.0) | vec2(193.0, 193.0) | vec2(255.0, 255.0) ];
832		}
833
834		both ""
835			#version 310 es
836			precision highp float;
837			precision highp int;
838
839			${DECLARATIONS}
840
841			void main()
842			{
843				${SETUP}
844				out0 = vec2(in0);
845				${OUTPUT}
846			}
847		""
848	end
849
850	case uint_to_vec3
851		version 310 es
852		values
853		{
854			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
855			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(2.0, 2.0, 2.0) | vec3(3.0, 3.0, 3.0) | vec3(8.0, 8.0, 8.0) | vec3(9.0, 9.0, 9.0) | vec3(12.0, 12.0, 12.0) | vec3(10.0, 10.0, 10.0) | vec3(45.0, 45.0, 45.0) | vec3(193.0, 193.0, 193.0) | vec3(255.0, 255.0, 255.0) ];
856		}
857
858		both ""
859			#version 310 es
860			precision highp float;
861			precision highp int;
862
863			${DECLARATIONS}
864
865			void main()
866			{
867				${SETUP}
868				out0 = vec3(in0);
869				${OUTPUT}
870			}
871		""
872	end
873
874	case uint_to_vec4
875		version 310 es
876		values
877		{
878			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
879			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(2.0, 2.0, 2.0, 2.0) | vec4(3.0, 3.0, 3.0, 3.0) | vec4(8.0, 8.0, 8.0, 8.0) | vec4(9.0, 9.0, 9.0, 9.0) | vec4(12.0, 12.0, 12.0, 12.0) | vec4(10.0, 10.0, 10.0, 10.0) | vec4(45.0, 45.0, 45.0, 45.0) | vec4(193.0, 193.0, 193.0, 193.0) | vec4(255.0, 255.0, 255.0, 255.0) ];
880		}
881
882		both ""
883			#version 310 es
884			precision highp float;
885			precision highp int;
886
887			${DECLARATIONS}
888
889			void main()
890			{
891				${SETUP}
892				out0 = vec4(in0);
893				${OUTPUT}
894			}
895		""
896	end
897
898	case uint_to_ivec2
899		version 310 es
900		values
901		{
902			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
903			output ivec2 out0 = [ ivec2(0, 0) | ivec2(2, 2) | ivec2(3, 3) | ivec2(8, 8) | ivec2(9, 9) | ivec2(12, 12) | ivec2(10, 10) | ivec2(45, 45) | ivec2(193, 193) | ivec2(255, 255) ];
904		}
905
906		both ""
907			#version 310 es
908			precision highp float;
909			precision highp int;
910
911			${DECLARATIONS}
912
913			void main()
914			{
915				${SETUP}
916				out0 = ivec2(in0);
917				${OUTPUT}
918			}
919		""
920	end
921
922	case uint_to_ivec3
923		version 310 es
924		values
925		{
926			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
927			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(2, 2, 2) | ivec3(3, 3, 3) | ivec3(8, 8, 8) | ivec3(9, 9, 9) | ivec3(12, 12, 12) | ivec3(10, 10, 10) | ivec3(45, 45, 45) | ivec3(193, 193, 193) | ivec3(255, 255, 255) ];
928		}
929
930		both ""
931			#version 310 es
932			precision highp float;
933			precision highp int;
934
935			${DECLARATIONS}
936
937			void main()
938			{
939				${SETUP}
940				out0 = ivec3(in0);
941				${OUTPUT}
942			}
943		""
944	end
945
946	case uint_to_ivec4
947		version 310 es
948		values
949		{
950			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
951			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(2, 2, 2, 2) | ivec4(3, 3, 3, 3) | ivec4(8, 8, 8, 8) | ivec4(9, 9, 9, 9) | ivec4(12, 12, 12, 12) | ivec4(10, 10, 10, 10) | ivec4(45, 45, 45, 45) | ivec4(193, 193, 193, 193) | ivec4(255, 255, 255, 255) ];
952		}
953
954		both ""
955			#version 310 es
956			precision highp float;
957			precision highp int;
958
959			${DECLARATIONS}
960
961			void main()
962			{
963				${SETUP}
964				out0 = ivec4(in0);
965				${OUTPUT}
966			}
967		""
968	end
969
970	case uint_to_bvec2
971		version 310 es
972		values
973		{
974			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
975			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
976		}
977
978		both ""
979			#version 310 es
980			precision highp float;
981			precision highp int;
982
983			${DECLARATIONS}
984
985			void main()
986			{
987				${SETUP}
988				out0 = bvec2(in0);
989				${OUTPUT}
990			}
991		""
992	end
993
994	case uint_to_bvec3
995		version 310 es
996		values
997		{
998			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
999			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
1000		}
1001
1002		both ""
1003			#version 310 es
1004			precision highp float;
1005			precision highp int;
1006
1007			${DECLARATIONS}
1008
1009			void main()
1010			{
1011				${SETUP}
1012				out0 = bvec3(in0);
1013				${OUTPUT}
1014			}
1015		""
1016	end
1017
1018	case uint_to_bvec4
1019		version 310 es
1020		values
1021		{
1022			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
1023			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
1024		}
1025
1026		both ""
1027			#version 310 es
1028			precision highp float;
1029			precision highp int;
1030
1031			${DECLARATIONS}
1032
1033			void main()
1034			{
1035				${SETUP}
1036				out0 = bvec4(in0);
1037				${OUTPUT}
1038			}
1039		""
1040	end
1041
1042	case bool_to_vec2
1043		version 310 es
1044		values
1045		{
1046			input bool in0 = [ true | false ];
1047			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
1048		}
1049
1050		both ""
1051			#version 310 es
1052			precision highp float;
1053			precision highp int;
1054
1055			${DECLARATIONS}
1056
1057			void main()
1058			{
1059				${SETUP}
1060				out0 = vec2(in0);
1061				${OUTPUT}
1062			}
1063		""
1064	end
1065
1066	case bool_to_vec3
1067		version 310 es
1068		values
1069		{
1070			input bool in0 = [ true | false ];
1071			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
1072		}
1073
1074		both ""
1075			#version 310 es
1076			precision highp float;
1077			precision highp int;
1078
1079			${DECLARATIONS}
1080
1081			void main()
1082			{
1083				${SETUP}
1084				out0 = vec3(in0);
1085				${OUTPUT}
1086			}
1087		""
1088	end
1089
1090	case bool_to_vec4
1091		version 310 es
1092		values
1093		{
1094			input bool in0 = [ true | false ];
1095			output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
1096		}
1097
1098		both ""
1099			#version 310 es
1100			precision highp float;
1101			precision highp int;
1102
1103			${DECLARATIONS}
1104
1105			void main()
1106			{
1107				${SETUP}
1108				out0 = vec4(in0);
1109				${OUTPUT}
1110			}
1111		""
1112	end
1113
1114	case bool_to_ivec2
1115		version 310 es
1116		values
1117		{
1118			input bool in0 = [ true | false ];
1119			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
1120		}
1121
1122		both ""
1123			#version 310 es
1124			precision highp float;
1125			precision highp int;
1126
1127			${DECLARATIONS}
1128
1129			void main()
1130			{
1131				${SETUP}
1132				out0 = ivec2(in0);
1133				${OUTPUT}
1134			}
1135		""
1136	end
1137
1138	case bool_to_ivec3
1139		version 310 es
1140		values
1141		{
1142			input bool in0 = [ true | false ];
1143			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
1144		}
1145
1146		both ""
1147			#version 310 es
1148			precision highp float;
1149			precision highp int;
1150
1151			${DECLARATIONS}
1152
1153			void main()
1154			{
1155				${SETUP}
1156				out0 = ivec3(in0);
1157				${OUTPUT}
1158			}
1159		""
1160	end
1161
1162	case bool_to_ivec4
1163		version 310 es
1164		values
1165		{
1166			input bool in0 = [ true | false ];
1167			output ivec4 out0 = [ ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
1168		}
1169
1170		both ""
1171			#version 310 es
1172			precision highp float;
1173			precision highp int;
1174
1175			${DECLARATIONS}
1176
1177			void main()
1178			{
1179				${SETUP}
1180				out0 = ivec4(in0);
1181				${OUTPUT}
1182			}
1183		""
1184	end
1185
1186	case bool_to_bvec2
1187		version 310 es
1188		values
1189		{
1190			input bool in0 = [ true | false ];
1191			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
1192		}
1193
1194		both ""
1195			#version 310 es
1196			precision highp float;
1197			precision highp int;
1198
1199			${DECLARATIONS}
1200
1201			void main()
1202			{
1203				${SETUP}
1204				out0 = bvec2(in0);
1205				${OUTPUT}
1206			}
1207		""
1208	end
1209
1210	case bool_to_bvec3
1211		version 310 es
1212		values
1213		{
1214			input bool in0 = [ true | false ];
1215			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) ];
1216		}
1217
1218		both ""
1219			#version 310 es
1220			precision highp float;
1221			precision highp int;
1222
1223			${DECLARATIONS}
1224
1225			void main()
1226			{
1227				${SETUP}
1228				out0 = bvec3(in0);
1229				${OUTPUT}
1230			}
1231		""
1232	end
1233
1234	case bool_to_bvec4
1235		version 310 es
1236		values
1237		{
1238			input bool in0 = [ true | false ];
1239			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
1240		}
1241
1242		both ""
1243			#version 310 es
1244			precision highp float;
1245			precision highp int;
1246
1247			${DECLARATIONS}
1248
1249			void main()
1250			{
1251				${SETUP}
1252				out0 = bvec4(in0);
1253				${OUTPUT}
1254			}
1255		""
1256	end
1257
1258	case float_to_uvec2
1259		version 310 es
1260		values
1261		{
1262			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | 0.5 | 8.25 | 20.125 | 36.8125 ];
1263			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(2, 2) | uvec2(3, 3) | uvec2(0, 0) | uvec2(8, 8) | uvec2(20, 20) | uvec2(36, 36) ];
1264		}
1265
1266		both ""
1267			#version 310 es
1268			precision highp float;
1269			precision highp int;
1270
1271			${DECLARATIONS}
1272
1273			void main()
1274			{
1275				${SETUP}
1276				out0 = uvec2(in0);
1277				${OUTPUT}
1278			}
1279		""
1280	end
1281
1282	case float_to_uvec3
1283		version 310 es
1284		values
1285		{
1286			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | 0.5 | 8.25 | 20.125 | 36.8125 ];
1287			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(2, 2, 2) | uvec3(3, 3, 3) | uvec3(0, 0, 0) | uvec3(8, 8, 8) | uvec3(20, 20, 20) | uvec3(36, 36, 36) ];
1288		}
1289
1290		both ""
1291			#version 310 es
1292			precision highp float;
1293			precision highp int;
1294
1295			${DECLARATIONS}
1296
1297			void main()
1298			{
1299				${SETUP}
1300				out0 = uvec3(in0);
1301				${OUTPUT}
1302			}
1303		""
1304	end
1305
1306	case float_to_uvec4
1307		version 310 es
1308		values
1309		{
1310			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | 0.5 | 8.25 | 20.125 | 36.8125 ];
1311			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(2, 2, 2, 2) | uvec4(3, 3, 3, 3) | uvec4(0, 0, 0, 0) | uvec4(8, 8, 8, 8) | uvec4(20, 20, 20, 20) | uvec4(36, 36, 36, 36) ];
1312		}
1313
1314		both ""
1315			#version 310 es
1316			precision highp float;
1317			precision highp int;
1318
1319			${DECLARATIONS}
1320
1321			void main()
1322			{
1323				${SETUP}
1324				out0 = uvec4(in0);
1325				${OUTPUT}
1326			}
1327		""
1328	end
1329
1330	case int_to_uvec2
1331		version 310 es
1332		values
1333		{
1334			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | 12 | 66 | 192 | 255 ];
1335			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(2, 2) | uvec2(5, 5) | uvec2(8, 8) | uvec2(11, 11) | uvec2(12, 12) | uvec2(66, 66) | uvec2(192, 192) | uvec2(255, 255) ];
1336		}
1337
1338		both ""
1339			#version 310 es
1340			precision highp float;
1341			precision highp int;
1342
1343			${DECLARATIONS}
1344
1345			void main()
1346			{
1347				${SETUP}
1348				out0 = uvec2(in0);
1349				${OUTPUT}
1350			}
1351		""
1352	end
1353
1354	case int_to_uvec3
1355		version 310 es
1356		values
1357		{
1358			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | 12 | 66 | 192 | 255 ];
1359			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(2, 2, 2) | uvec3(5, 5, 5) | uvec3(8, 8, 8) | uvec3(11, 11, 11) | uvec3(12, 12, 12) | uvec3(66, 66, 66) | uvec3(192, 192, 192) | uvec3(255, 255, 255) ];
1360		}
1361
1362		both ""
1363			#version 310 es
1364			precision highp float;
1365			precision highp int;
1366
1367			${DECLARATIONS}
1368
1369			void main()
1370			{
1371				${SETUP}
1372				out0 = uvec3(in0);
1373				${OUTPUT}
1374			}
1375		""
1376	end
1377
1378	case int_to_uvec4
1379		version 310 es
1380		values
1381		{
1382			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | 12 | 66 | 192 | 255 ];
1383			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(2, 2, 2, 2) | uvec4(5, 5, 5, 5) | uvec4(8, 8, 8, 8) | uvec4(11, 11, 11, 11) | uvec4(12, 12, 12, 12) | uvec4(66, 66, 66, 66) | uvec4(192, 192, 192, 192) | uvec4(255, 255, 255, 255) ];
1384		}
1385
1386		both ""
1387			#version 310 es
1388			precision highp float;
1389			precision highp int;
1390
1391			${DECLARATIONS}
1392
1393			void main()
1394			{
1395				${SETUP}
1396				out0 = uvec4(in0);
1397				${OUTPUT}
1398			}
1399		""
1400	end
1401
1402	case uint_to_uvec2
1403		version 310 es
1404		values
1405		{
1406			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
1407			output uvec2 out0 = [ uvec2(0, 0) | uvec2(2, 2) | uvec2(3, 3) | uvec2(8, 8) | uvec2(9, 9) | uvec2(12, 12) | uvec2(10, 10) | uvec2(45, 45) | uvec2(193, 193) | uvec2(255, 255) ];
1408		}
1409
1410		both ""
1411			#version 310 es
1412			precision highp float;
1413			precision highp int;
1414
1415			${DECLARATIONS}
1416
1417			void main()
1418			{
1419				${SETUP}
1420				out0 = uvec2(in0);
1421				${OUTPUT}
1422			}
1423		""
1424	end
1425
1426	case uint_to_uvec3
1427		version 310 es
1428		values
1429		{
1430			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
1431			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(2, 2, 2) | uvec3(3, 3, 3) | uvec3(8, 8, 8) | uvec3(9, 9, 9) | uvec3(12, 12, 12) | uvec3(10, 10, 10) | uvec3(45, 45, 45) | uvec3(193, 193, 193) | uvec3(255, 255, 255) ];
1432		}
1433
1434		both ""
1435			#version 310 es
1436			precision highp float;
1437			precision highp int;
1438
1439			${DECLARATIONS}
1440
1441			void main()
1442			{
1443				${SETUP}
1444				out0 = uvec3(in0);
1445				${OUTPUT}
1446			}
1447		""
1448	end
1449
1450	case uint_to_uvec4
1451		version 310 es
1452		values
1453		{
1454			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
1455			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(2, 2, 2, 2) | uvec4(3, 3, 3, 3) | uvec4(8, 8, 8, 8) | uvec4(9, 9, 9, 9) | uvec4(12, 12, 12, 12) | uvec4(10, 10, 10, 10) | uvec4(45, 45, 45, 45) | uvec4(193, 193, 193, 193) | uvec4(255, 255, 255, 255) ];
1456		}
1457
1458		both ""
1459			#version 310 es
1460			precision highp float;
1461			precision highp int;
1462
1463			${DECLARATIONS}
1464
1465			void main()
1466			{
1467				${SETUP}
1468				out0 = uvec4(in0);
1469				${OUTPUT}
1470			}
1471		""
1472	end
1473
1474	case bool_to_uvec2
1475		version 310 es
1476		values
1477		{
1478			input bool in0 = [ true | false ];
1479			output uvec2 out0 = [ uvec2(1, 1) | uvec2(0, 0) ];
1480		}
1481
1482		both ""
1483			#version 310 es
1484			precision highp float;
1485			precision highp int;
1486
1487			${DECLARATIONS}
1488
1489			void main()
1490			{
1491				${SETUP}
1492				out0 = uvec2(in0);
1493				${OUTPUT}
1494			}
1495		""
1496	end
1497
1498	case bool_to_uvec3
1499		version 310 es
1500		values
1501		{
1502			input bool in0 = [ true | false ];
1503			output uvec3 out0 = [ uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
1504		}
1505
1506		both ""
1507			#version 310 es
1508			precision highp float;
1509			precision highp int;
1510
1511			${DECLARATIONS}
1512
1513			void main()
1514			{
1515				${SETUP}
1516				out0 = uvec3(in0);
1517				${OUTPUT}
1518			}
1519		""
1520	end
1521
1522	case bool_to_uvec4
1523		version 310 es
1524		values
1525		{
1526			input bool in0 = [ true | false ];
1527			output uvec4 out0 = [ uvec4(1, 1, 1, 1) | uvec4(0, 0, 0, 0) ];
1528		}
1529
1530		both ""
1531			#version 310 es
1532			precision highp float;
1533			precision highp int;
1534
1535			${DECLARATIONS}
1536
1537			void main()
1538			{
1539				${SETUP}
1540				out0 = uvec4(in0);
1541				${OUTPUT}
1542			}
1543		""
1544	end
1545
1546
1547end # scalar_to_vector
1548group vector_to_scalar "Vector to Scalar Conversions"
1549
1550	case vec2_to_float
1551		version 310 es
1552		values
1553		{
1554			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) ];
1555			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1556		}
1557
1558		both ""
1559			#version 310 es
1560			precision highp float;
1561			precision highp int;
1562
1563			${DECLARATIONS}
1564
1565			void main()
1566			{
1567				${SETUP}
1568				out0 = float(in0);
1569				${OUTPUT}
1570			}
1571		""
1572	end
1573
1574	case vec2_to_int
1575		version 310 es
1576		values
1577		{
1578			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) ];
1579			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1580		}
1581
1582		both ""
1583			#version 310 es
1584			precision highp float;
1585			precision highp int;
1586
1587			${DECLARATIONS}
1588
1589			void main()
1590			{
1591				${SETUP}
1592				out0 = int(in0);
1593				${OUTPUT}
1594			}
1595		""
1596	end
1597
1598	case vec2_to_bool
1599		version 310 es
1600		values
1601		{
1602			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) ];
1603			output bool out0 = [ false | true | true | true | true ];
1604		}
1605
1606		both ""
1607			#version 310 es
1608			precision highp float;
1609			precision highp int;
1610
1611			${DECLARATIONS}
1612
1613			void main()
1614			{
1615				${SETUP}
1616				out0 = bool(in0);
1617				${OUTPUT}
1618			}
1619		""
1620	end
1621
1622	case vec3_to_float
1623		version 310 es
1624		values
1625		{
1626			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) ];
1627			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1628		}
1629
1630		both ""
1631			#version 310 es
1632			precision highp float;
1633			precision highp int;
1634
1635			${DECLARATIONS}
1636
1637			void main()
1638			{
1639				${SETUP}
1640				out0 = float(in0);
1641				${OUTPUT}
1642			}
1643		""
1644	end
1645
1646	case vec3_to_int
1647		version 310 es
1648		values
1649		{
1650			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) ];
1651			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1652		}
1653
1654		both ""
1655			#version 310 es
1656			precision highp float;
1657			precision highp int;
1658
1659			${DECLARATIONS}
1660
1661			void main()
1662			{
1663				${SETUP}
1664				out0 = int(in0);
1665				${OUTPUT}
1666			}
1667		""
1668	end
1669
1670	case vec3_to_bool
1671		version 310 es
1672		values
1673		{
1674			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) ];
1675			output bool out0 = [ false | true | true | true | true ];
1676		}
1677
1678		both ""
1679			#version 310 es
1680			precision highp float;
1681			precision highp int;
1682
1683			${DECLARATIONS}
1684
1685			void main()
1686			{
1687				${SETUP}
1688				out0 = bool(in0);
1689				${OUTPUT}
1690			}
1691		""
1692	end
1693
1694	case vec4_to_float
1695		version 310 es
1696		values
1697		{
1698			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) ];
1699			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1700		}
1701
1702		both ""
1703			#version 310 es
1704			precision highp float;
1705			precision highp int;
1706
1707			${DECLARATIONS}
1708
1709			void main()
1710			{
1711				${SETUP}
1712				out0 = float(in0);
1713				${OUTPUT}
1714			}
1715		""
1716	end
1717
1718	case vec4_to_int
1719		version 310 es
1720		values
1721		{
1722			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) ];
1723			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1724		}
1725
1726		both ""
1727			#version 310 es
1728			precision highp float;
1729			precision highp int;
1730
1731			${DECLARATIONS}
1732
1733			void main()
1734			{
1735				${SETUP}
1736				out0 = int(in0);
1737				${OUTPUT}
1738			}
1739		""
1740	end
1741
1742	case vec4_to_bool
1743		version 310 es
1744		values
1745		{
1746			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) ];
1747			output bool out0 = [ false | true | true | true | true ];
1748		}
1749
1750		both ""
1751			#version 310 es
1752			precision highp float;
1753			precision highp int;
1754
1755			${DECLARATIONS}
1756
1757			void main()
1758			{
1759				${SETUP}
1760				out0 = bool(in0);
1761				${OUTPUT}
1762			}
1763		""
1764	end
1765
1766	case ivec2_to_float
1767		version 310 es
1768		values
1769		{
1770			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
1771			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
1772		}
1773
1774		both ""
1775			#version 310 es
1776			precision highp float;
1777			precision highp int;
1778
1779			${DECLARATIONS}
1780
1781			void main()
1782			{
1783				${SETUP}
1784				out0 = float(in0);
1785				${OUTPUT}
1786			}
1787		""
1788	end
1789
1790	case ivec2_to_int
1791		version 310 es
1792		values
1793		{
1794			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
1795			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1796		}
1797
1798		both ""
1799			#version 310 es
1800			precision highp float;
1801			precision highp int;
1802
1803			${DECLARATIONS}
1804
1805			void main()
1806			{
1807				${SETUP}
1808				out0 = int(in0);
1809				${OUTPUT}
1810			}
1811		""
1812	end
1813
1814	case ivec2_to_bool
1815		version 310 es
1816		values
1817		{
1818			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
1819			output bool out0 = [ false | true | false | true | false ];
1820		}
1821
1822		both ""
1823			#version 310 es
1824			precision highp float;
1825			precision highp int;
1826
1827			${DECLARATIONS}
1828
1829			void main()
1830			{
1831				${SETUP}
1832				out0 = bool(in0);
1833				${OUTPUT}
1834			}
1835		""
1836	end
1837
1838	case ivec3_to_float
1839		version 310 es
1840		values
1841		{
1842			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
1843			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
1844		}
1845
1846		both ""
1847			#version 310 es
1848			precision highp float;
1849			precision highp int;
1850
1851			${DECLARATIONS}
1852
1853			void main()
1854			{
1855				${SETUP}
1856				out0 = float(in0);
1857				${OUTPUT}
1858			}
1859		""
1860	end
1861
1862	case ivec3_to_int
1863		version 310 es
1864		values
1865		{
1866			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
1867			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1868		}
1869
1870		both ""
1871			#version 310 es
1872			precision highp float;
1873			precision highp int;
1874
1875			${DECLARATIONS}
1876
1877			void main()
1878			{
1879				${SETUP}
1880				out0 = int(in0);
1881				${OUTPUT}
1882			}
1883		""
1884	end
1885
1886	case ivec3_to_bool
1887		version 310 es
1888		values
1889		{
1890			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
1891			output bool out0 = [ false | true | false | true | false ];
1892		}
1893
1894		both ""
1895			#version 310 es
1896			precision highp float;
1897			precision highp int;
1898
1899			${DECLARATIONS}
1900
1901			void main()
1902			{
1903				${SETUP}
1904				out0 = bool(in0);
1905				${OUTPUT}
1906			}
1907		""
1908	end
1909
1910	case ivec4_to_float
1911		version 310 es
1912		values
1913		{
1914			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) ];
1915			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
1916		}
1917
1918		both ""
1919			#version 310 es
1920			precision highp float;
1921			precision highp int;
1922
1923			${DECLARATIONS}
1924
1925			void main()
1926			{
1927				${SETUP}
1928				out0 = float(in0);
1929				${OUTPUT}
1930			}
1931		""
1932	end
1933
1934	case ivec4_to_int
1935		version 310 es
1936		values
1937		{
1938			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) ];
1939			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
1940		}
1941
1942		both ""
1943			#version 310 es
1944			precision highp float;
1945			precision highp int;
1946
1947			${DECLARATIONS}
1948
1949			void main()
1950			{
1951				${SETUP}
1952				out0 = int(in0);
1953				${OUTPUT}
1954			}
1955		""
1956	end
1957
1958	case ivec4_to_bool
1959		version 310 es
1960		values
1961		{
1962			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) ];
1963			output bool out0 = [ false | true | false | true | false ];
1964		}
1965
1966		both ""
1967			#version 310 es
1968			precision highp float;
1969			precision highp int;
1970
1971			${DECLARATIONS}
1972
1973			void main()
1974			{
1975				${SETUP}
1976				out0 = bool(in0);
1977				${OUTPUT}
1978			}
1979		""
1980	end
1981
1982	case uvec2_to_float
1983		version 310 es
1984		values
1985		{
1986			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
1987			output float out0 = [ 0.0 | 1.0 | 0.0 | 32.0 | 0.0 ];
1988		}
1989
1990		both ""
1991			#version 310 es
1992			precision highp float;
1993			precision highp int;
1994
1995			${DECLARATIONS}
1996
1997			void main()
1998			{
1999				${SETUP}
2000				out0 = float(in0);
2001				${OUTPUT}
2002			}
2003		""
2004	end
2005
2006	case uvec2_to_int
2007		version 310 es
2008		values
2009		{
2010			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
2011			output int out0 = [ 0 | 1 | 0 | 32 | 0 ];
2012		}
2013
2014		both ""
2015			#version 310 es
2016			precision highp float;
2017			precision highp int;
2018
2019			${DECLARATIONS}
2020
2021			void main()
2022			{
2023				${SETUP}
2024				out0 = int(in0);
2025				${OUTPUT}
2026			}
2027		""
2028	end
2029
2030	case uvec2_to_bool
2031		version 310 es
2032		values
2033		{
2034			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
2035			output bool out0 = [ false | true | false | true | false ];
2036		}
2037
2038		both ""
2039			#version 310 es
2040			precision highp float;
2041			precision highp int;
2042
2043			${DECLARATIONS}
2044
2045			void main()
2046			{
2047				${SETUP}
2048				out0 = bool(in0);
2049				${OUTPUT}
2050			}
2051		""
2052	end
2053
2054	case uvec3_to_float
2055		version 310 es
2056		values
2057		{
2058			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
2059			output float out0 = [ 0.0 | 1.0 | 0.0 | 32.0 | 0.0 ];
2060		}
2061
2062		both ""
2063			#version 310 es
2064			precision highp float;
2065			precision highp int;
2066
2067			${DECLARATIONS}
2068
2069			void main()
2070			{
2071				${SETUP}
2072				out0 = float(in0);
2073				${OUTPUT}
2074			}
2075		""
2076	end
2077
2078	case uvec3_to_int
2079		version 310 es
2080		values
2081		{
2082			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
2083			output int out0 = [ 0 | 1 | 0 | 32 | 0 ];
2084		}
2085
2086		both ""
2087			#version 310 es
2088			precision highp float;
2089			precision highp int;
2090
2091			${DECLARATIONS}
2092
2093			void main()
2094			{
2095				${SETUP}
2096				out0 = int(in0);
2097				${OUTPUT}
2098			}
2099		""
2100	end
2101
2102	case uvec3_to_bool
2103		version 310 es
2104		values
2105		{
2106			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
2107			output bool out0 = [ false | true | false | true | false ];
2108		}
2109
2110		both ""
2111			#version 310 es
2112			precision highp float;
2113			precision highp int;
2114
2115			${DECLARATIONS}
2116
2117			void main()
2118			{
2119				${SETUP}
2120				out0 = bool(in0);
2121				${OUTPUT}
2122			}
2123		""
2124	end
2125
2126	case uvec4_to_float
2127		version 310 es
2128		values
2129		{
2130			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
2131			output float out0 = [ 0.0 | 1.0 | 0.0 | 32.0 | 0.0 ];
2132		}
2133
2134		both ""
2135			#version 310 es
2136			precision highp float;
2137			precision highp int;
2138
2139			${DECLARATIONS}
2140
2141			void main()
2142			{
2143				${SETUP}
2144				out0 = float(in0);
2145				${OUTPUT}
2146			}
2147		""
2148	end
2149
2150	case uvec4_to_int
2151		version 310 es
2152		values
2153		{
2154			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
2155			output int out0 = [ 0 | 1 | 0 | 32 | 0 ];
2156		}
2157
2158		both ""
2159			#version 310 es
2160			precision highp float;
2161			precision highp int;
2162
2163			${DECLARATIONS}
2164
2165			void main()
2166			{
2167				${SETUP}
2168				out0 = int(in0);
2169				${OUTPUT}
2170			}
2171		""
2172	end
2173
2174	case uvec4_to_bool
2175		version 310 es
2176		values
2177		{
2178			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
2179			output bool out0 = [ false | true | false | true | false ];
2180		}
2181
2182		both ""
2183			#version 310 es
2184			precision highp float;
2185			precision highp int;
2186
2187			${DECLARATIONS}
2188
2189			void main()
2190			{
2191				${SETUP}
2192				out0 = bool(in0);
2193				${OUTPUT}
2194			}
2195		""
2196	end
2197
2198	case bvec2_to_float
2199		version 310 es
2200		values
2201		{
2202			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
2203			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
2204		}
2205
2206		both ""
2207			#version 310 es
2208			precision highp float;
2209			precision highp int;
2210
2211			${DECLARATIONS}
2212
2213			void main()
2214			{
2215				${SETUP}
2216				out0 = float(in0);
2217				${OUTPUT}
2218			}
2219		""
2220	end
2221
2222	case bvec2_to_int
2223		version 310 es
2224		values
2225		{
2226			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
2227			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
2228		}
2229
2230		both ""
2231			#version 310 es
2232			precision highp float;
2233			precision highp int;
2234
2235			${DECLARATIONS}
2236
2237			void main()
2238			{
2239				${SETUP}
2240				out0 = int(in0);
2241				${OUTPUT}
2242			}
2243		""
2244	end
2245
2246	case bvec2_to_bool
2247		version 310 es
2248		values
2249		{
2250			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
2251			output bool out0 = [ true | false | false | true | false ];
2252		}
2253
2254		both ""
2255			#version 310 es
2256			precision highp float;
2257			precision highp int;
2258
2259			${DECLARATIONS}
2260
2261			void main()
2262			{
2263				${SETUP}
2264				out0 = bool(in0);
2265				${OUTPUT}
2266			}
2267		""
2268	end
2269
2270	case bvec3_to_float
2271		version 310 es
2272		values
2273		{
2274			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
2275			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
2276		}
2277
2278		both ""
2279			#version 310 es
2280			precision highp float;
2281			precision highp int;
2282
2283			${DECLARATIONS}
2284
2285			void main()
2286			{
2287				${SETUP}
2288				out0 = float(in0);
2289				${OUTPUT}
2290			}
2291		""
2292	end
2293
2294	case bvec3_to_int
2295		version 310 es
2296		values
2297		{
2298			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
2299			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
2300		}
2301
2302		both ""
2303			#version 310 es
2304			precision highp float;
2305			precision highp int;
2306
2307			${DECLARATIONS}
2308
2309			void main()
2310			{
2311				${SETUP}
2312				out0 = int(in0);
2313				${OUTPUT}
2314			}
2315		""
2316	end
2317
2318	case bvec3_to_bool
2319		version 310 es
2320		values
2321		{
2322			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
2323			output bool out0 = [ true | false | false | true | false ];
2324		}
2325
2326		both ""
2327			#version 310 es
2328			precision highp float;
2329			precision highp int;
2330
2331			${DECLARATIONS}
2332
2333			void main()
2334			{
2335				${SETUP}
2336				out0 = bool(in0);
2337				${OUTPUT}
2338			}
2339		""
2340	end
2341
2342	case bvec4_to_float
2343		version 310 es
2344		values
2345		{
2346			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) ];
2347			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
2348		}
2349
2350		both ""
2351			#version 310 es
2352			precision highp float;
2353			precision highp int;
2354
2355			${DECLARATIONS}
2356
2357			void main()
2358			{
2359				${SETUP}
2360				out0 = float(in0);
2361				${OUTPUT}
2362			}
2363		""
2364	end
2365
2366	case bvec4_to_int
2367		version 310 es
2368		values
2369		{
2370			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) ];
2371			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
2372		}
2373
2374		both ""
2375			#version 310 es
2376			precision highp float;
2377			precision highp int;
2378
2379			${DECLARATIONS}
2380
2381			void main()
2382			{
2383				${SETUP}
2384				out0 = int(in0);
2385				${OUTPUT}
2386			}
2387		""
2388	end
2389
2390	case bvec4_to_bool
2391		version 310 es
2392		values
2393		{
2394			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) ];
2395			output bool out0 = [ true | false | false | true | false ];
2396		}
2397
2398		both ""
2399			#version 310 es
2400			precision highp float;
2401			precision highp int;
2402
2403			${DECLARATIONS}
2404
2405			void main()
2406			{
2407				${SETUP}
2408				out0 = bool(in0);
2409				${OUTPUT}
2410			}
2411		""
2412	end
2413
2414	case vec2_to_uint
2415		version 310 es
2416		values
2417		{
2418			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) ];
2419			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2420		}
2421
2422		both ""
2423			#version 310 es
2424			precision highp float;
2425			precision highp int;
2426
2427			${DECLARATIONS}
2428
2429			void main()
2430			{
2431				${SETUP}
2432				out0 = uint(in0);
2433				${OUTPUT}
2434			}
2435		""
2436	end
2437
2438	case vec3_to_uint
2439		version 310 es
2440		values
2441		{
2442			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) ];
2443			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2444		}
2445
2446		both ""
2447			#version 310 es
2448			precision highp float;
2449			precision highp int;
2450
2451			${DECLARATIONS}
2452
2453			void main()
2454			{
2455				${SETUP}
2456				out0 = uint(in0);
2457				${OUTPUT}
2458			}
2459		""
2460	end
2461
2462	case vec4_to_uint
2463		version 310 es
2464		values
2465		{
2466			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) ];
2467			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2468		}
2469
2470		both ""
2471			#version 310 es
2472			precision highp float;
2473			precision highp int;
2474
2475			${DECLARATIONS}
2476
2477			void main()
2478			{
2479				${SETUP}
2480				out0 = uint(in0);
2481				${OUTPUT}
2482			}
2483		""
2484	end
2485
2486	case ivec2_to_uint
2487		version 310 es
2488		values
2489		{
2490			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
2491			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2492		}
2493
2494		both ""
2495			#version 310 es
2496			precision highp float;
2497			precision highp int;
2498
2499			${DECLARATIONS}
2500
2501			void main()
2502			{
2503				${SETUP}
2504				out0 = uint(in0);
2505				${OUTPUT}
2506			}
2507		""
2508	end
2509
2510	case ivec3_to_uint
2511		version 310 es
2512		values
2513		{
2514			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
2515			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2516		}
2517
2518		both ""
2519			#version 310 es
2520			precision highp float;
2521			precision highp int;
2522
2523			${DECLARATIONS}
2524
2525			void main()
2526			{
2527				${SETUP}
2528				out0 = uint(in0);
2529				${OUTPUT}
2530			}
2531		""
2532	end
2533
2534	case ivec4_to_uint
2535		version 310 es
2536		values
2537		{
2538			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) ];
2539			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2540		}
2541
2542		both ""
2543			#version 310 es
2544			precision highp float;
2545			precision highp int;
2546
2547			${DECLARATIONS}
2548
2549			void main()
2550			{
2551				${SETUP}
2552				out0 = uint(in0);
2553				${OUTPUT}
2554			}
2555		""
2556	end
2557
2558	case uvec2_to_uint
2559		version 310 es
2560		values
2561		{
2562			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
2563			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2564		}
2565
2566		both ""
2567			#version 310 es
2568			precision highp float;
2569			precision highp int;
2570
2571			${DECLARATIONS}
2572
2573			void main()
2574			{
2575				${SETUP}
2576				out0 = uint(in0);
2577				${OUTPUT}
2578			}
2579		""
2580	end
2581
2582	case uvec3_to_uint
2583		version 310 es
2584		values
2585		{
2586			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
2587			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2588		}
2589
2590		both ""
2591			#version 310 es
2592			precision highp float;
2593			precision highp int;
2594
2595			${DECLARATIONS}
2596
2597			void main()
2598			{
2599				${SETUP}
2600				out0 = uint(in0);
2601				${OUTPUT}
2602			}
2603		""
2604	end
2605
2606	case uvec4_to_uint
2607		version 310 es
2608		values
2609		{
2610			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
2611			output uint out0 = [ 0 | 1 | 0 | 32 | 0 ];
2612		}
2613
2614		both ""
2615			#version 310 es
2616			precision highp float;
2617			precision highp int;
2618
2619			${DECLARATIONS}
2620
2621			void main()
2622			{
2623				${SETUP}
2624				out0 = uint(in0);
2625				${OUTPUT}
2626			}
2627		""
2628	end
2629
2630	case bvec2_to_uint
2631		version 310 es
2632		values
2633		{
2634			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
2635			output uint out0 = [ 1 | 0 | 0 | 1 | 0 ];
2636		}
2637
2638		both ""
2639			#version 310 es
2640			precision highp float;
2641			precision highp int;
2642
2643			${DECLARATIONS}
2644
2645			void main()
2646			{
2647				${SETUP}
2648				out0 = uint(in0);
2649				${OUTPUT}
2650			}
2651		""
2652	end
2653
2654	case bvec3_to_uint
2655		version 310 es
2656		values
2657		{
2658			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
2659			output uint out0 = [ 1 | 0 | 0 | 1 | 0 ];
2660		}
2661
2662		both ""
2663			#version 310 es
2664			precision highp float;
2665			precision highp int;
2666
2667			${DECLARATIONS}
2668
2669			void main()
2670			{
2671				${SETUP}
2672				out0 = uint(in0);
2673				${OUTPUT}
2674			}
2675		""
2676	end
2677
2678	case bvec4_to_uint
2679		version 310 es
2680		values
2681		{
2682			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) ];
2683			output uint out0 = [ 1 | 0 | 0 | 1 | 0 ];
2684		}
2685
2686		both ""
2687			#version 310 es
2688			precision highp float;
2689			precision highp int;
2690
2691			${DECLARATIONS}
2692
2693			void main()
2694			{
2695				${SETUP}
2696				out0 = uint(in0);
2697				${OUTPUT}
2698			}
2699		""
2700	end
2701
2702end # vector_to_scalar
2703
2704group vector_to_vector "Vector to Vector Conversions"
2705
2706	case vec4_to_vec4
2707		version 310 es
2708		values
2709		{
2710			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) ];
2711			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) ];
2712		}
2713
2714		both ""
2715			#version 310 es
2716			precision highp float;
2717			precision highp int;
2718
2719			${DECLARATIONS}
2720
2721			void main()
2722			{
2723				${SETUP}
2724				out0 = vec4(in0);
2725				${OUTPUT}
2726			}
2727		""
2728	end
2729
2730	case vec4_to_vec3
2731		version 310 es
2732		values
2733		{
2734			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) ];
2735			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) ];
2736		}
2737
2738		both ""
2739			#version 310 es
2740			precision highp float;
2741			precision highp int;
2742
2743			${DECLARATIONS}
2744
2745			void main()
2746			{
2747				${SETUP}
2748				out0 = vec3(in0);
2749				${OUTPUT}
2750			}
2751		""
2752	end
2753
2754	case vec4_to_vec2
2755		version 310 es
2756		values
2757		{
2758			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) ];
2759			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) ];
2760		}
2761
2762		both ""
2763			#version 310 es
2764			precision highp float;
2765			precision highp int;
2766
2767			${DECLARATIONS}
2768
2769			void main()
2770			{
2771				${SETUP}
2772				out0 = vec2(in0);
2773				${OUTPUT}
2774			}
2775		""
2776	end
2777
2778	case vec4_to_ivec4
2779		version 310 es
2780		values
2781		{
2782			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) ];
2783			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) ];
2784		}
2785
2786		both ""
2787			#version 310 es
2788			precision highp float;
2789			precision highp int;
2790
2791			${DECLARATIONS}
2792
2793			void main()
2794			{
2795				${SETUP}
2796				out0 = ivec4(in0);
2797				${OUTPUT}
2798			}
2799		""
2800	end
2801
2802	case vec4_to_ivec3
2803		version 310 es
2804		values
2805		{
2806			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) ];
2807			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
2808		}
2809
2810		both ""
2811			#version 310 es
2812			precision highp float;
2813			precision highp int;
2814
2815			${DECLARATIONS}
2816
2817			void main()
2818			{
2819				${SETUP}
2820				out0 = ivec3(in0);
2821				${OUTPUT}
2822			}
2823		""
2824	end
2825
2826	case vec4_to_ivec2
2827		version 310 es
2828		values
2829		{
2830			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) ];
2831			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
2832		}
2833
2834		both ""
2835			#version 310 es
2836			precision highp float;
2837			precision highp int;
2838
2839			${DECLARATIONS}
2840
2841			void main()
2842			{
2843				${SETUP}
2844				out0 = ivec2(in0);
2845				${OUTPUT}
2846			}
2847		""
2848	end
2849
2850	case vec4_to_bvec4
2851		version 310 es
2852		values
2853		{
2854			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) ];
2855			output bvec4 out0 = [ bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
2856		}
2857
2858		both ""
2859			#version 310 es
2860			precision highp float;
2861			precision highp int;
2862
2863			${DECLARATIONS}
2864
2865			void main()
2866			{
2867				${SETUP}
2868				out0 = bvec4(in0);
2869				${OUTPUT}
2870			}
2871		""
2872	end
2873
2874	case vec4_to_bvec3
2875		version 310 es
2876		values
2877		{
2878			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) ];
2879			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
2880		}
2881
2882		both ""
2883			#version 310 es
2884			precision highp float;
2885			precision highp int;
2886
2887			${DECLARATIONS}
2888
2889			void main()
2890			{
2891				${SETUP}
2892				out0 = bvec3(in0);
2893				${OUTPUT}
2894			}
2895		""
2896	end
2897
2898	case vec4_to_bvec2
2899		version 310 es
2900		values
2901		{
2902			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) ];
2903			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
2904		}
2905
2906		both ""
2907			#version 310 es
2908			precision highp float;
2909			precision highp int;
2910
2911			${DECLARATIONS}
2912
2913			void main()
2914			{
2915				${SETUP}
2916				out0 = bvec2(in0);
2917				${OUTPUT}
2918			}
2919		""
2920	end
2921
2922	case ivec4_to_vec4
2923		version 310 es
2924		values
2925		{
2926			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) ];
2927			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, -2.0, -4.0, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
2928		}
2929
2930		both ""
2931			#version 310 es
2932			precision highp float;
2933			precision highp int;
2934
2935			${DECLARATIONS}
2936
2937			void main()
2938			{
2939				${SETUP}
2940				out0 = vec4(in0);
2941				${OUTPUT}
2942			}
2943		""
2944	end
2945
2946	case ivec4_to_vec3
2947		version 310 es
2948		values
2949		{
2950			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) ];
2951			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, -2.0, -4.0) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.0, 0.0) ];
2952		}
2953
2954		both ""
2955			#version 310 es
2956			precision highp float;
2957			precision highp int;
2958
2959			${DECLARATIONS}
2960
2961			void main()
2962			{
2963				${SETUP}
2964				out0 = vec3(in0);
2965				${OUTPUT}
2966			}
2967		""
2968	end
2969
2970	case ivec4_to_vec2
2971		version 310 es
2972		values
2973		{
2974			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) ];
2975			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
2976		}
2977
2978		both ""
2979			#version 310 es
2980			precision highp float;
2981			precision highp int;
2982
2983			${DECLARATIONS}
2984
2985			void main()
2986			{
2987				${SETUP}
2988				out0 = vec2(in0);
2989				${OUTPUT}
2990			}
2991		""
2992	end
2993
2994	case ivec4_to_ivec4
2995		version 310 es
2996		values
2997		{
2998			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) ];
2999			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) ];
3000		}
3001
3002		both ""
3003			#version 310 es
3004			precision highp float;
3005			precision highp int;
3006
3007			${DECLARATIONS}
3008
3009			void main()
3010			{
3011				${SETUP}
3012				out0 = ivec4(in0);
3013				${OUTPUT}
3014			}
3015		""
3016	end
3017
3018	case ivec4_to_ivec3
3019		version 310 es
3020		values
3021		{
3022			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) ];
3023			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3024		}
3025
3026		both ""
3027			#version 310 es
3028			precision highp float;
3029			precision highp int;
3030
3031			${DECLARATIONS}
3032
3033			void main()
3034			{
3035				${SETUP}
3036				out0 = ivec3(in0);
3037				${OUTPUT}
3038			}
3039		""
3040	end
3041
3042	case ivec4_to_ivec2
3043		version 310 es
3044		values
3045		{
3046			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) ];
3047			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
3048		}
3049
3050		both ""
3051			#version 310 es
3052			precision highp float;
3053			precision highp int;
3054
3055			${DECLARATIONS}
3056
3057			void main()
3058			{
3059				${SETUP}
3060				out0 = ivec2(in0);
3061				${OUTPUT}
3062			}
3063		""
3064	end
3065
3066	case ivec4_to_bvec4
3067		version 310 es
3068		values
3069		{
3070			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) ];
3071			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
3072		}
3073
3074		both ""
3075			#version 310 es
3076			precision highp float;
3077			precision highp int;
3078
3079			${DECLARATIONS}
3080
3081			void main()
3082			{
3083				${SETUP}
3084				out0 = bvec4(in0);
3085				${OUTPUT}
3086			}
3087		""
3088	end
3089
3090	case ivec4_to_bvec3
3091		version 310 es
3092		values
3093		{
3094			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) ];
3095			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
3096		}
3097
3098		both ""
3099			#version 310 es
3100			precision highp float;
3101			precision highp int;
3102
3103			${DECLARATIONS}
3104
3105			void main()
3106			{
3107				${SETUP}
3108				out0 = bvec3(in0);
3109				${OUTPUT}
3110			}
3111		""
3112	end
3113
3114	case ivec4_to_bvec2
3115		version 310 es
3116		values
3117		{
3118			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) ];
3119			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
3120		}
3121
3122		both ""
3123			#version 310 es
3124			precision highp float;
3125			precision highp int;
3126
3127			${DECLARATIONS}
3128
3129			void main()
3130			{
3131				${SETUP}
3132				out0 = bvec2(in0);
3133				${OUTPUT}
3134			}
3135		""
3136	end
3137
3138	case uvec4_to_vec4
3139		version 310 es
3140		values
3141		{
3142			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3143			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 2.0, 4.0, 9.0) | vec4(32.0, 64.0, 51.0, 24.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
3144		}
3145
3146		both ""
3147			#version 310 es
3148			precision highp float;
3149			precision highp int;
3150
3151			${DECLARATIONS}
3152
3153			void main()
3154			{
3155				${SETUP}
3156				out0 = vec4(in0);
3157				${OUTPUT}
3158			}
3159		""
3160	end
3161
3162	case uvec4_to_vec3
3163		version 310 es
3164		values
3165		{
3166			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3167			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 2.0, 4.0) | vec3(32.0, 64.0, 51.0) | vec3(0.0, 0.0, 0.0) ];
3168		}
3169
3170		both ""
3171			#version 310 es
3172			precision highp float;
3173			precision highp int;
3174
3175			${DECLARATIONS}
3176
3177			void main()
3178			{
3179				${SETUP}
3180				out0 = vec3(in0);
3181				${OUTPUT}
3182			}
3183		""
3184	end
3185
3186	case uvec4_to_vec2
3187		version 310 es
3188		values
3189		{
3190			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3191			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, 2.0) | vec2(32.0, 64.0) | vec2(0.0, 0.0) ];
3192		}
3193
3194		both ""
3195			#version 310 es
3196			precision highp float;
3197			precision highp int;
3198
3199			${DECLARATIONS}
3200
3201			void main()
3202			{
3203				${SETUP}
3204				out0 = vec2(in0);
3205				${OUTPUT}
3206			}
3207		""
3208	end
3209
3210	case uvec4_to_ivec4
3211		version 310 es
3212		values
3213		{
3214			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3215			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) ];
3216		}
3217
3218		both ""
3219			#version 310 es
3220			precision highp float;
3221			precision highp int;
3222
3223			${DECLARATIONS}
3224
3225			void main()
3226			{
3227				${SETUP}
3228				out0 = ivec4(in0);
3229				${OUTPUT}
3230			}
3231		""
3232	end
3233
3234	case uvec4_to_ivec3
3235		version 310 es
3236		values
3237		{
3238			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3239			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
3240		}
3241
3242		both ""
3243			#version 310 es
3244			precision highp float;
3245			precision highp int;
3246
3247			${DECLARATIONS}
3248
3249			void main()
3250			{
3251				${SETUP}
3252				out0 = ivec3(in0);
3253				${OUTPUT}
3254			}
3255		""
3256	end
3257
3258	case uvec4_to_ivec2
3259		version 310 es
3260		values
3261		{
3262			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3263			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
3264		}
3265
3266		both ""
3267			#version 310 es
3268			precision highp float;
3269			precision highp int;
3270
3271			${DECLARATIONS}
3272
3273			void main()
3274			{
3275				${SETUP}
3276				out0 = ivec2(in0);
3277				${OUTPUT}
3278			}
3279		""
3280	end
3281
3282	case uvec4_to_bvec4
3283		version 310 es
3284		values
3285		{
3286			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3287			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
3288		}
3289
3290		both ""
3291			#version 310 es
3292			precision highp float;
3293			precision highp int;
3294
3295			${DECLARATIONS}
3296
3297			void main()
3298			{
3299				${SETUP}
3300				out0 = bvec4(in0);
3301				${OUTPUT}
3302			}
3303		""
3304	end
3305
3306	case uvec4_to_bvec3
3307		version 310 es
3308		values
3309		{
3310			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3311			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
3312		}
3313
3314		both ""
3315			#version 310 es
3316			precision highp float;
3317			precision highp int;
3318
3319			${DECLARATIONS}
3320
3321			void main()
3322			{
3323				${SETUP}
3324				out0 = bvec3(in0);
3325				${OUTPUT}
3326			}
3327		""
3328	end
3329
3330	case uvec4_to_bvec2
3331		version 310 es
3332		values
3333		{
3334			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3335			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
3336		}
3337
3338		both ""
3339			#version 310 es
3340			precision highp float;
3341			precision highp int;
3342
3343			${DECLARATIONS}
3344
3345			void main()
3346			{
3347				${SETUP}
3348				out0 = bvec2(in0);
3349				${OUTPUT}
3350			}
3351		""
3352	end
3353
3354	case bvec4_to_vec4
3355		version 310 es
3356		values
3357		{
3358			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) ];
3359			output vec4 out0 = [ vec4(1.0, 0.0, 0.0, 1.0) | vec4(0.0, 0.0, 0.0, 1.0) | vec4(0.0, 1.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
3360		}
3361
3362		both ""
3363			#version 310 es
3364			precision highp float;
3365			precision highp int;
3366
3367			${DECLARATIONS}
3368
3369			void main()
3370			{
3371				${SETUP}
3372				out0 = vec4(in0);
3373				${OUTPUT}
3374			}
3375		""
3376	end
3377
3378	case bvec4_to_vec3
3379		version 310 es
3380		values
3381		{
3382			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) ];
3383			output vec3 out0 = [ vec3(1.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 1.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
3384		}
3385
3386		both ""
3387			#version 310 es
3388			precision highp float;
3389			precision highp int;
3390
3391			${DECLARATIONS}
3392
3393			void main()
3394			{
3395				${SETUP}
3396				out0 = vec3(in0);
3397				${OUTPUT}
3398			}
3399		""
3400	end
3401
3402	case bvec4_to_vec2
3403		version 310 es
3404		values
3405		{
3406			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) ];
3407			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
3408		}
3409
3410		both ""
3411			#version 310 es
3412			precision highp float;
3413			precision highp int;
3414
3415			${DECLARATIONS}
3416
3417			void main()
3418			{
3419				${SETUP}
3420				out0 = vec2(in0);
3421				${OUTPUT}
3422			}
3423		""
3424	end
3425
3426	case bvec4_to_ivec4
3427		version 310 es
3428		values
3429		{
3430			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) ];
3431			output ivec4 out0 = [ ivec4(1, 0, 0, 1) | ivec4(0, 0, 0, 1) | ivec4(0, 1, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
3432		}
3433
3434		both ""
3435			#version 310 es
3436			precision highp float;
3437			precision highp int;
3438
3439			${DECLARATIONS}
3440
3441			void main()
3442			{
3443				${SETUP}
3444				out0 = ivec4(in0);
3445				${OUTPUT}
3446			}
3447		""
3448	end
3449
3450	case bvec4_to_ivec3
3451		version 310 es
3452		values
3453		{
3454			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) ];
3455			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
3456		}
3457
3458		both ""
3459			#version 310 es
3460			precision highp float;
3461			precision highp int;
3462
3463			${DECLARATIONS}
3464
3465			void main()
3466			{
3467				${SETUP}
3468				out0 = ivec3(in0);
3469				${OUTPUT}
3470			}
3471		""
3472	end
3473
3474	case bvec4_to_ivec2
3475		version 310 es
3476		values
3477		{
3478			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) ];
3479			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
3480		}
3481
3482		both ""
3483			#version 310 es
3484			precision highp float;
3485			precision highp int;
3486
3487			${DECLARATIONS}
3488
3489			void main()
3490			{
3491				${SETUP}
3492				out0 = ivec2(in0);
3493				${OUTPUT}
3494			}
3495		""
3496	end
3497
3498	case bvec4_to_bvec4
3499		version 310 es
3500		values
3501		{
3502			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) ];
3503			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) ];
3504		}
3505
3506		both ""
3507			#version 310 es
3508			precision highp float;
3509			precision highp int;
3510
3511			${DECLARATIONS}
3512
3513			void main()
3514			{
3515				${SETUP}
3516				out0 = bvec4(in0);
3517				${OUTPUT}
3518			}
3519		""
3520	end
3521
3522	case bvec4_to_bvec3
3523		version 310 es
3524		values
3525		{
3526			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) ];
3527			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
3528		}
3529
3530		both ""
3531			#version 310 es
3532			precision highp float;
3533			precision highp int;
3534
3535			${DECLARATIONS}
3536
3537			void main()
3538			{
3539				${SETUP}
3540				out0 = bvec3(in0);
3541				${OUTPUT}
3542			}
3543		""
3544	end
3545
3546	case bvec4_to_bvec2
3547		version 310 es
3548		values
3549		{
3550			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) ];
3551			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
3552		}
3553
3554		both ""
3555			#version 310 es
3556			precision highp float;
3557			precision highp int;
3558
3559			${DECLARATIONS}
3560
3561			void main()
3562			{
3563				${SETUP}
3564				out0 = bvec2(in0);
3565				${OUTPUT}
3566			}
3567		""
3568	end
3569
3570	case vec4_to_uvec4
3571		version 310 es
3572		values
3573		{
3574			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) ];
3575			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3576		}
3577
3578		both ""
3579			#version 310 es
3580			precision highp float;
3581			precision highp int;
3582
3583			${DECLARATIONS}
3584
3585			void main()
3586			{
3587				${SETUP}
3588				out0 = uvec4(in0);
3589				${OUTPUT}
3590			}
3591		""
3592	end
3593
3594	case vec4_to_uvec3
3595		version 310 es
3596		values
3597		{
3598			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) ];
3599			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
3600		}
3601
3602		both ""
3603			#version 310 es
3604			precision highp float;
3605			precision highp int;
3606
3607			${DECLARATIONS}
3608
3609			void main()
3610			{
3611				${SETUP}
3612				out0 = uvec3(in0);
3613				${OUTPUT}
3614			}
3615		""
3616	end
3617
3618	case vec4_to_uvec2
3619		version 310 es
3620		values
3621		{
3622			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) ];
3623			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
3624		}
3625
3626		both ""
3627			#version 310 es
3628			precision highp float;
3629			precision highp int;
3630
3631			${DECLARATIONS}
3632
3633			void main()
3634			{
3635				${SETUP}
3636				out0 = uvec2(in0);
3637				${OUTPUT}
3638			}
3639		""
3640	end
3641
3642	case ivec4_to_uvec4
3643		version 310 es
3644		values
3645		{
3646			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) ];
3647			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3648		}
3649
3650		both ""
3651			#version 310 es
3652			precision highp float;
3653			precision highp int;
3654
3655			${DECLARATIONS}
3656
3657			void main()
3658			{
3659				${SETUP}
3660				out0 = uvec4(in0);
3661				${OUTPUT}
3662			}
3663		""
3664	end
3665
3666	case ivec4_to_uvec3
3667		version 310 es
3668		values
3669		{
3670			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) ];
3671			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
3672		}
3673
3674		both ""
3675			#version 310 es
3676			precision highp float;
3677			precision highp int;
3678
3679			${DECLARATIONS}
3680
3681			void main()
3682			{
3683				${SETUP}
3684				out0 = uvec3(in0);
3685				${OUTPUT}
3686			}
3687		""
3688	end
3689
3690	case ivec4_to_uvec2
3691		version 310 es
3692		values
3693		{
3694			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) ];
3695			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
3696		}
3697
3698		both ""
3699			#version 310 es
3700			precision highp float;
3701			precision highp int;
3702
3703			${DECLARATIONS}
3704
3705			void main()
3706			{
3707				${SETUP}
3708				out0 = uvec2(in0);
3709				${OUTPUT}
3710			}
3711		""
3712	end
3713
3714	case uvec4_to_uvec4
3715		version 310 es
3716		values
3717		{
3718			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3719			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3720		}
3721
3722		both ""
3723			#version 310 es
3724			precision highp float;
3725			precision highp int;
3726
3727			${DECLARATIONS}
3728
3729			void main()
3730			{
3731				${SETUP}
3732				out0 = uvec4(in0);
3733				${OUTPUT}
3734			}
3735		""
3736	end
3737
3738	case uvec4_to_uvec3
3739		version 310 es
3740		values
3741		{
3742			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3743			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
3744		}
3745
3746		both ""
3747			#version 310 es
3748			precision highp float;
3749			precision highp int;
3750
3751			${DECLARATIONS}
3752
3753			void main()
3754			{
3755				${SETUP}
3756				out0 = uvec3(in0);
3757				${OUTPUT}
3758			}
3759		""
3760	end
3761
3762	case uvec4_to_uvec2
3763		version 310 es
3764		values
3765		{
3766			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
3767			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
3768		}
3769
3770		both ""
3771			#version 310 es
3772			precision highp float;
3773			precision highp int;
3774
3775			${DECLARATIONS}
3776
3777			void main()
3778			{
3779				${SETUP}
3780				out0 = uvec2(in0);
3781				${OUTPUT}
3782			}
3783		""
3784	end
3785
3786	case bvec4_to_uvec4
3787		version 310 es
3788		values
3789		{
3790			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) ];
3791			output uvec4 out0 = [ uvec4(1, 0, 0, 1) | uvec4(0, 0, 0, 1) | uvec4(0, 1, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 0, 0, 0) ];
3792		}
3793
3794		both ""
3795			#version 310 es
3796			precision highp float;
3797			precision highp int;
3798
3799			${DECLARATIONS}
3800
3801			void main()
3802			{
3803				${SETUP}
3804				out0 = uvec4(in0);
3805				${OUTPUT}
3806			}
3807		""
3808	end
3809
3810	case bvec4_to_uvec3
3811		version 310 es
3812		values
3813		{
3814			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) ];
3815			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
3816		}
3817
3818		both ""
3819			#version 310 es
3820			precision highp float;
3821			precision highp int;
3822
3823			${DECLARATIONS}
3824
3825			void main()
3826			{
3827				${SETUP}
3828				out0 = uvec3(in0);
3829				${OUTPUT}
3830			}
3831		""
3832	end
3833
3834	case bvec4_to_uvec2
3835		version 310 es
3836		values
3837		{
3838			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) ];
3839			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
3840		}
3841
3842		both ""
3843			#version 310 es
3844			precision highp float;
3845			precision highp int;
3846
3847			${DECLARATIONS}
3848
3849			void main()
3850			{
3851				${SETUP}
3852				out0 = uvec2(in0);
3853				${OUTPUT}
3854			}
3855		""
3856	end
3857
3858	case vec3_to_vec3
3859		version 310 es
3860		values
3861		{
3862			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) ];
3863			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) ];
3864		}
3865
3866		both ""
3867			#version 310 es
3868			precision highp float;
3869			precision highp int;
3870
3871			${DECLARATIONS}
3872
3873			void main()
3874			{
3875				${SETUP}
3876				out0 = vec3(in0);
3877				${OUTPUT}
3878			}
3879		""
3880	end
3881
3882	case vec3_to_vec2
3883		version 310 es
3884		values
3885		{
3886			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) ];
3887			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) ];
3888		}
3889
3890		both ""
3891			#version 310 es
3892			precision highp float;
3893			precision highp int;
3894
3895			${DECLARATIONS}
3896
3897			void main()
3898			{
3899				${SETUP}
3900				out0 = vec2(in0);
3901				${OUTPUT}
3902			}
3903		""
3904	end
3905
3906	case vec3_to_ivec3
3907		version 310 es
3908		values
3909		{
3910			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) ];
3911			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3912		}
3913
3914		both ""
3915			#version 310 es
3916			precision highp float;
3917			precision highp int;
3918
3919			${DECLARATIONS}
3920
3921			void main()
3922			{
3923				${SETUP}
3924				out0 = ivec3(in0);
3925				${OUTPUT}
3926			}
3927		""
3928	end
3929
3930	case vec3_to_ivec2
3931		version 310 es
3932		values
3933		{
3934			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) ];
3935			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
3936		}
3937
3938		both ""
3939			#version 310 es
3940			precision highp float;
3941			precision highp int;
3942
3943			${DECLARATIONS}
3944
3945			void main()
3946			{
3947				${SETUP}
3948				out0 = ivec2(in0);
3949				${OUTPUT}
3950			}
3951		""
3952	end
3953
3954	case vec3_to_bvec3
3955		version 310 es
3956		values
3957		{
3958			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) ];
3959			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
3960		}
3961
3962		both ""
3963			#version 310 es
3964			precision highp float;
3965			precision highp int;
3966
3967			${DECLARATIONS}
3968
3969			void main()
3970			{
3971				${SETUP}
3972				out0 = bvec3(in0);
3973				${OUTPUT}
3974			}
3975		""
3976	end
3977
3978	case vec3_to_bvec2
3979		version 310 es
3980		values
3981		{
3982			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) ];
3983			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
3984		}
3985
3986		both ""
3987			#version 310 es
3988			precision highp float;
3989			precision highp int;
3990
3991			${DECLARATIONS}
3992
3993			void main()
3994			{
3995				${SETUP}
3996				out0 = bvec2(in0);
3997				${OUTPUT}
3998			}
3999		""
4000	end
4001
4002	case ivec3_to_vec3
4003		version 310 es
4004		values
4005		{
4006			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4007			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, -2.0, -4.0) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.0, 0.0) ];
4008		}
4009
4010		both ""
4011			#version 310 es
4012			precision highp float;
4013			precision highp int;
4014
4015			${DECLARATIONS}
4016
4017			void main()
4018			{
4019				${SETUP}
4020				out0 = vec3(in0);
4021				${OUTPUT}
4022			}
4023		""
4024	end
4025
4026	case ivec3_to_vec2
4027		version 310 es
4028		values
4029		{
4030			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4031			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
4032		}
4033
4034		both ""
4035			#version 310 es
4036			precision highp float;
4037			precision highp int;
4038
4039			${DECLARATIONS}
4040
4041			void main()
4042			{
4043				${SETUP}
4044				out0 = vec2(in0);
4045				${OUTPUT}
4046			}
4047		""
4048	end
4049
4050	case ivec3_to_ivec3
4051		version 310 es
4052		values
4053		{
4054			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4055			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4056		}
4057
4058		both ""
4059			#version 310 es
4060			precision highp float;
4061			precision highp int;
4062
4063			${DECLARATIONS}
4064
4065			void main()
4066			{
4067				${SETUP}
4068				out0 = ivec3(in0);
4069				${OUTPUT}
4070			}
4071		""
4072	end
4073
4074	case ivec3_to_ivec2
4075		version 310 es
4076		values
4077		{
4078			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4079			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4080		}
4081
4082		both ""
4083			#version 310 es
4084			precision highp float;
4085			precision highp int;
4086
4087			${DECLARATIONS}
4088
4089			void main()
4090			{
4091				${SETUP}
4092				out0 = ivec2(in0);
4093				${OUTPUT}
4094			}
4095		""
4096	end
4097
4098	case ivec3_to_bvec3
4099		version 310 es
4100		values
4101		{
4102			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4103			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4104		}
4105
4106		both ""
4107			#version 310 es
4108			precision highp float;
4109			precision highp int;
4110
4111			${DECLARATIONS}
4112
4113			void main()
4114			{
4115				${SETUP}
4116				out0 = bvec3(in0);
4117				${OUTPUT}
4118			}
4119		""
4120	end
4121
4122	case ivec3_to_bvec2
4123		version 310 es
4124		values
4125		{
4126			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4127			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4128		}
4129
4130		both ""
4131			#version 310 es
4132			precision highp float;
4133			precision highp int;
4134
4135			${DECLARATIONS}
4136
4137			void main()
4138			{
4139				${SETUP}
4140				out0 = bvec2(in0);
4141				${OUTPUT}
4142			}
4143		""
4144	end
4145
4146	case uvec3_to_vec3
4147		version 310 es
4148		values
4149		{
4150			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4151			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 2.0, 4.0) | vec3(32.0, 64.0, 51.0) | vec3(0.0, 0.0, 0.0) ];
4152		}
4153
4154		both ""
4155			#version 310 es
4156			precision highp float;
4157			precision highp int;
4158
4159			${DECLARATIONS}
4160
4161			void main()
4162			{
4163				${SETUP}
4164				out0 = vec3(in0);
4165				${OUTPUT}
4166			}
4167		""
4168	end
4169
4170	case uvec3_to_vec2
4171		version 310 es
4172		values
4173		{
4174			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4175			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, 2.0) | vec2(32.0, 64.0) | vec2(0.0, 0.0) ];
4176		}
4177
4178		both ""
4179			#version 310 es
4180			precision highp float;
4181			precision highp int;
4182
4183			${DECLARATIONS}
4184
4185			void main()
4186			{
4187				${SETUP}
4188				out0 = vec2(in0);
4189				${OUTPUT}
4190			}
4191		""
4192	end
4193
4194	case uvec3_to_ivec3
4195		version 310 es
4196		values
4197		{
4198			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4199			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
4200		}
4201
4202		both ""
4203			#version 310 es
4204			precision highp float;
4205			precision highp int;
4206
4207			${DECLARATIONS}
4208
4209			void main()
4210			{
4211				${SETUP}
4212				out0 = ivec3(in0);
4213				${OUTPUT}
4214			}
4215		""
4216	end
4217
4218	case uvec3_to_ivec2
4219		version 310 es
4220		values
4221		{
4222			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4223			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
4224		}
4225
4226		both ""
4227			#version 310 es
4228			precision highp float;
4229			precision highp int;
4230
4231			${DECLARATIONS}
4232
4233			void main()
4234			{
4235				${SETUP}
4236				out0 = ivec2(in0);
4237				${OUTPUT}
4238			}
4239		""
4240	end
4241
4242	case uvec3_to_bvec3
4243		version 310 es
4244		values
4245		{
4246			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4247			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4248		}
4249
4250		both ""
4251			#version 310 es
4252			precision highp float;
4253			precision highp int;
4254
4255			${DECLARATIONS}
4256
4257			void main()
4258			{
4259				${SETUP}
4260				out0 = bvec3(in0);
4261				${OUTPUT}
4262			}
4263		""
4264	end
4265
4266	case uvec3_to_bvec2
4267		version 310 es
4268		values
4269		{
4270			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4271			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4272		}
4273
4274		both ""
4275			#version 310 es
4276			precision highp float;
4277			precision highp int;
4278
4279			${DECLARATIONS}
4280
4281			void main()
4282			{
4283				${SETUP}
4284				out0 = bvec2(in0);
4285				${OUTPUT}
4286			}
4287		""
4288	end
4289
4290	case bvec3_to_vec3
4291		version 310 es
4292		values
4293		{
4294			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4295			output vec3 out0 = [ vec3(1.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 1.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
4296		}
4297
4298		both ""
4299			#version 310 es
4300			precision highp float;
4301			precision highp int;
4302
4303			${DECLARATIONS}
4304
4305			void main()
4306			{
4307				${SETUP}
4308				out0 = vec3(in0);
4309				${OUTPUT}
4310			}
4311		""
4312	end
4313
4314	case bvec3_to_vec2
4315		version 310 es
4316		values
4317		{
4318			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4319			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
4320		}
4321
4322		both ""
4323			#version 310 es
4324			precision highp float;
4325			precision highp int;
4326
4327			${DECLARATIONS}
4328
4329			void main()
4330			{
4331				${SETUP}
4332				out0 = vec2(in0);
4333				${OUTPUT}
4334			}
4335		""
4336	end
4337
4338	case bvec3_to_ivec3
4339		version 310 es
4340		values
4341		{
4342			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4343			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
4344		}
4345
4346		both ""
4347			#version 310 es
4348			precision highp float;
4349			precision highp int;
4350
4351			${DECLARATIONS}
4352
4353			void main()
4354			{
4355				${SETUP}
4356				out0 = ivec3(in0);
4357				${OUTPUT}
4358			}
4359		""
4360	end
4361
4362	case bvec3_to_ivec2
4363		version 310 es
4364		values
4365		{
4366			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4367			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
4368		}
4369
4370		both ""
4371			#version 310 es
4372			precision highp float;
4373			precision highp int;
4374
4375			${DECLARATIONS}
4376
4377			void main()
4378			{
4379				${SETUP}
4380				out0 = ivec2(in0);
4381				${OUTPUT}
4382			}
4383		""
4384	end
4385
4386	case bvec3_to_bvec3
4387		version 310 es
4388		values
4389		{
4390			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4391			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4392		}
4393
4394		both ""
4395			#version 310 es
4396			precision highp float;
4397			precision highp int;
4398
4399			${DECLARATIONS}
4400
4401			void main()
4402			{
4403				${SETUP}
4404				out0 = bvec3(in0);
4405				${OUTPUT}
4406			}
4407		""
4408	end
4409
4410	case bvec3_to_bvec2
4411		version 310 es
4412		values
4413		{
4414			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4415			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4416		}
4417
4418		both ""
4419			#version 310 es
4420			precision highp float;
4421			precision highp int;
4422
4423			${DECLARATIONS}
4424
4425			void main()
4426			{
4427				${SETUP}
4428				out0 = bvec2(in0);
4429				${OUTPUT}
4430			}
4431		""
4432	end
4433
4434	case vec3_to_uvec3
4435		version 310 es
4436		values
4437		{
4438			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) ];
4439			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4440		}
4441
4442		both ""
4443			#version 310 es
4444			precision highp float;
4445			precision highp int;
4446
4447			${DECLARATIONS}
4448
4449			void main()
4450			{
4451				${SETUP}
4452				out0 = uvec3(in0);
4453				${OUTPUT}
4454			}
4455		""
4456	end
4457
4458	case vec3_to_uvec2
4459		version 310 es
4460		values
4461		{
4462			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) ];
4463			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4464		}
4465
4466		both ""
4467			#version 310 es
4468			precision highp float;
4469			precision highp int;
4470
4471			${DECLARATIONS}
4472
4473			void main()
4474			{
4475				${SETUP}
4476				out0 = uvec2(in0);
4477				${OUTPUT}
4478			}
4479		""
4480	end
4481
4482	case ivec3_to_uvec3
4483		version 310 es
4484		values
4485		{
4486			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
4487			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4488		}
4489
4490		both ""
4491			#version 310 es
4492			precision highp float;
4493			precision highp int;
4494
4495			${DECLARATIONS}
4496
4497			void main()
4498			{
4499				${SETUP}
4500				out0 = uvec3(in0);
4501				${OUTPUT}
4502			}
4503		""
4504	end
4505
4506	case ivec3_to_uvec2
4507		version 310 es
4508		values
4509		{
4510			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
4511			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4512		}
4513
4514		both ""
4515			#version 310 es
4516			precision highp float;
4517			precision highp int;
4518
4519			${DECLARATIONS}
4520
4521			void main()
4522			{
4523				${SETUP}
4524				out0 = uvec2(in0);
4525				${OUTPUT}
4526			}
4527		""
4528	end
4529
4530	case uvec3_to_uvec3
4531		version 310 es
4532		values
4533		{
4534			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4535			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4536		}
4537
4538		both ""
4539			#version 310 es
4540			precision highp float;
4541			precision highp int;
4542
4543			${DECLARATIONS}
4544
4545			void main()
4546			{
4547				${SETUP}
4548				out0 = uvec3(in0);
4549				${OUTPUT}
4550			}
4551		""
4552	end
4553
4554	case uvec3_to_uvec2
4555		version 310 es
4556		values
4557		{
4558			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4559			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4560		}
4561
4562		both ""
4563			#version 310 es
4564			precision highp float;
4565			precision highp int;
4566
4567			${DECLARATIONS}
4568
4569			void main()
4570			{
4571				${SETUP}
4572				out0 = uvec2(in0);
4573				${OUTPUT}
4574			}
4575		""
4576	end
4577
4578	case bvec3_to_uvec3
4579		version 310 es
4580		values
4581		{
4582			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4583			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
4584		}
4585
4586		both ""
4587			#version 310 es
4588			precision highp float;
4589			precision highp int;
4590
4591			${DECLARATIONS}
4592
4593			void main()
4594			{
4595				${SETUP}
4596				out0 = uvec3(in0);
4597				${OUTPUT}
4598			}
4599		""
4600	end
4601
4602	case bvec3_to_uvec2
4603		version 310 es
4604		values
4605		{
4606			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4607			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
4608		}
4609
4610		both ""
4611			#version 310 es
4612			precision highp float;
4613			precision highp int;
4614
4615			${DECLARATIONS}
4616
4617			void main()
4618			{
4619				${SETUP}
4620				out0 = uvec2(in0);
4621				${OUTPUT}
4622			}
4623		""
4624	end
4625
4626	case vec2_to_vec2
4627		version 310 es
4628		values
4629		{
4630			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) ];
4631			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) ];
4632		}
4633
4634		both ""
4635			#version 310 es
4636			precision highp float;
4637			precision highp int;
4638
4639			${DECLARATIONS}
4640
4641			void main()
4642			{
4643				${SETUP}
4644				out0 = vec2(in0);
4645				${OUTPUT}
4646			}
4647		""
4648	end
4649
4650	case vec2_to_ivec2
4651		version 310 es
4652		values
4653		{
4654			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) ];
4655			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4656		}
4657
4658		both ""
4659			#version 310 es
4660			precision highp float;
4661			precision highp int;
4662
4663			${DECLARATIONS}
4664
4665			void main()
4666			{
4667				${SETUP}
4668				out0 = ivec2(in0);
4669				${OUTPUT}
4670			}
4671		""
4672	end
4673
4674	case vec2_to_bvec2
4675		version 310 es
4676		values
4677		{
4678			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) ];
4679			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
4680		}
4681
4682		both ""
4683			#version 310 es
4684			precision highp float;
4685			precision highp int;
4686
4687			${DECLARATIONS}
4688
4689			void main()
4690			{
4691				${SETUP}
4692				out0 = bvec2(in0);
4693				${OUTPUT}
4694			}
4695		""
4696	end
4697
4698	case ivec2_to_vec2
4699		version 310 es
4700		values
4701		{
4702			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4703			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
4704		}
4705
4706		both ""
4707			#version 310 es
4708			precision highp float;
4709			precision highp int;
4710
4711			${DECLARATIONS}
4712
4713			void main()
4714			{
4715				${SETUP}
4716				out0 = vec2(in0);
4717				${OUTPUT}
4718			}
4719		""
4720	end
4721
4722	case ivec2_to_ivec2
4723		version 310 es
4724		values
4725		{
4726			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4727			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4728		}
4729
4730		both ""
4731			#version 310 es
4732			precision highp float;
4733			precision highp int;
4734
4735			${DECLARATIONS}
4736
4737			void main()
4738			{
4739				${SETUP}
4740				out0 = ivec2(in0);
4741				${OUTPUT}
4742			}
4743		""
4744	end
4745
4746	case ivec2_to_bvec2
4747		version 310 es
4748		values
4749		{
4750			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4751			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4752		}
4753
4754		both ""
4755			#version 310 es
4756			precision highp float;
4757			precision highp int;
4758
4759			${DECLARATIONS}
4760
4761			void main()
4762			{
4763				${SETUP}
4764				out0 = bvec2(in0);
4765				${OUTPUT}
4766			}
4767		""
4768	end
4769
4770	case uvec2_to_vec2
4771		version 310 es
4772		values
4773		{
4774			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4775			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, 2.0) | vec2(32.0, 64.0) | vec2(0.0, 0.0) ];
4776		}
4777
4778		both ""
4779			#version 310 es
4780			precision highp float;
4781			precision highp int;
4782
4783			${DECLARATIONS}
4784
4785			void main()
4786			{
4787				${SETUP}
4788				out0 = vec2(in0);
4789				${OUTPUT}
4790			}
4791		""
4792	end
4793
4794	case uvec2_to_ivec2
4795		version 310 es
4796		values
4797		{
4798			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4799			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
4800		}
4801
4802		both ""
4803			#version 310 es
4804			precision highp float;
4805			precision highp int;
4806
4807			${DECLARATIONS}
4808
4809			void main()
4810			{
4811				${SETUP}
4812				out0 = ivec2(in0);
4813				${OUTPUT}
4814			}
4815		""
4816	end
4817
4818	case uvec2_to_bvec2
4819		version 310 es
4820		values
4821		{
4822			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4823			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4824		}
4825
4826		both ""
4827			#version 310 es
4828			precision highp float;
4829			precision highp int;
4830
4831			${DECLARATIONS}
4832
4833			void main()
4834			{
4835				${SETUP}
4836				out0 = bvec2(in0);
4837				${OUTPUT}
4838			}
4839		""
4840	end
4841
4842	case bvec2_to_vec2
4843		version 310 es
4844		values
4845		{
4846			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4847			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
4848		}
4849
4850		both ""
4851			#version 310 es
4852			precision highp float;
4853			precision highp int;
4854
4855			${DECLARATIONS}
4856
4857			void main()
4858			{
4859				${SETUP}
4860				out0 = vec2(in0);
4861				${OUTPUT}
4862			}
4863		""
4864	end
4865
4866	case bvec2_to_ivec2
4867		version 310 es
4868		values
4869		{
4870			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4871			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
4872		}
4873
4874		both ""
4875			#version 310 es
4876			precision highp float;
4877			precision highp int;
4878
4879			${DECLARATIONS}
4880
4881			void main()
4882			{
4883				${SETUP}
4884				out0 = ivec2(in0);
4885				${OUTPUT}
4886			}
4887		""
4888	end
4889
4890	case bvec2_to_bvec2
4891		version 310 es
4892		values
4893		{
4894			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4895			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4896		}
4897
4898		both ""
4899			#version 310 es
4900			precision highp float;
4901			precision highp int;
4902
4903			${DECLARATIONS}
4904
4905			void main()
4906			{
4907				${SETUP}
4908				out0 = bvec2(in0);
4909				${OUTPUT}
4910			}
4911		""
4912	end
4913
4914	case vec2_to_uvec2
4915		version 310 es
4916		values
4917		{
4918			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) ];
4919			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4920		}
4921
4922		both ""
4923			#version 310 es
4924			precision highp float;
4925			precision highp int;
4926
4927			${DECLARATIONS}
4928
4929			void main()
4930			{
4931				${SETUP}
4932				out0 = uvec2(in0);
4933				${OUTPUT}
4934			}
4935		""
4936	end
4937
4938	case ivec2_to_uvec2
4939		version 310 es
4940		values
4941		{
4942			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
4943			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4944		}
4945
4946		both ""
4947			#version 310 es
4948			precision highp float;
4949			precision highp int;
4950
4951			${DECLARATIONS}
4952
4953			void main()
4954			{
4955				${SETUP}
4956				out0 = uvec2(in0);
4957				${OUTPUT}
4958			}
4959		""
4960	end
4961
4962	case uvec2_to_uvec2
4963		version 310 es
4964		values
4965		{
4966			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4967			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4968		}
4969
4970		both ""
4971			#version 310 es
4972			precision highp float;
4973			precision highp int;
4974
4975			${DECLARATIONS}
4976
4977			void main()
4978			{
4979				${SETUP}
4980				out0 = uvec2(in0);
4981				${OUTPUT}
4982			}
4983		""
4984	end
4985
4986	case bvec2_to_uvec2
4987		version 310 es
4988		values
4989		{
4990			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4991			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
4992		}
4993
4994		both ""
4995			#version 310 es
4996			precision highp float;
4997			precision highp int;
4998
4999			${DECLARATIONS}
5000
5001			void main()
5002			{
5003				${SETUP}
5004				out0 = uvec2(in0);
5005				${OUTPUT}
5006			}
5007		""
5008	end
5009
5010
5011end # vector_to_vector
5012group scalar_to_matrix "Scalar to Matrix Conversions"
5013
5014	case float_to_mat4
5015		version 310 es
5016		values
5017		{
5018			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5019			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0) | mat4(3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 3.5) | mat4(-0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0, -0.5) | mat4(-8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0, -8.25) | mat4(-20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0, -20.125) | mat4(36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125) ];
5020		}
5021
5022		both ""
5023			#version 310 es
5024			precision highp float;
5025			precision highp int;
5026
5027			${DECLARATIONS}
5028
5029			void main()
5030			{
5031				${SETUP}
5032				out0 = mat4(in0);
5033				${OUTPUT}
5034			}
5035		""
5036	end
5037
5038	case float_to_mat4x3
5039		version 310 es
5040		values
5041		{
5042			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5043			output mat4x3 out0 = [ mat4x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0) | mat4x3(3.5, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0) | mat4x3(-0.5, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0) | mat4x3(-8.25, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0) | mat4x3(-20.125, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0) | mat4x3(36.8125, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0) ];
5044		}
5045
5046		both ""
5047			#version 310 es
5048			precision highp float;
5049			precision highp int;
5050
5051			${DECLARATIONS}
5052
5053			void main()
5054			{
5055				${SETUP}
5056				out0 = mat4x3(in0);
5057				${OUTPUT}
5058			}
5059		""
5060	end
5061
5062	case float_to_mat4x2
5063		version 310 es
5064		values
5065		{
5066			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5067			output mat4x2 out0 = [ mat4x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(3.5, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0) | mat4x2(-0.5, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0) | mat4x2(-8.25, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0) | mat4x2(-20.125, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0) | mat4x2(36.8125, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0) ];
5068		}
5069
5070		both ""
5071			#version 310 es
5072			precision highp float;
5073			precision highp int;
5074
5075			${DECLARATIONS}
5076
5077			void main()
5078			{
5079				${SETUP}
5080				out0 = mat4x2(in0);
5081				${OUTPUT}
5082			}
5083		""
5084	end
5085
5086	case float_to_mat3x4
5087		version 310 es
5088		values
5089		{
5090			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5091			output mat3x4 out0 = [ mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat3x4(3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0) | mat3x4(-0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0) | mat3x4(-8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0) | mat3x4(-20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0) | mat3x4(36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0) ];
5092		}
5093
5094		both ""
5095			#version 310 es
5096			precision highp float;
5097			precision highp int;
5098
5099			${DECLARATIONS}
5100
5101			void main()
5102			{
5103				${SETUP}
5104				out0 = mat3x4(in0);
5105				${OUTPUT}
5106			}
5107		""
5108	end
5109
5110	case float_to_mat3
5111		version 310 es
5112		values
5113		{
5114			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5115			output mat3 out0 = [ mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0) | mat3(3.5, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 3.5) | mat3(-0.5, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, -0.5) | mat3(-8.25, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, -8.25) | mat3(-20.125, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, -20.125) | mat3(36.8125, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 36.8125) ];
5116		}
5117
5118		both ""
5119			#version 310 es
5120			precision highp float;
5121			precision highp int;
5122
5123			${DECLARATIONS}
5124
5125			void main()
5126			{
5127				${SETUP}
5128				out0 = mat3(in0);
5129				${OUTPUT}
5130			}
5131		""
5132	end
5133
5134	case float_to_mat3x2
5135		version 310 es
5136		values
5137		{
5138			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5139			output mat3x2 out0 = [ mat3x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat3x2(3.5, 0.0, 0.0, 3.5, 0.0, 0.0) | mat3x2(-0.5, 0.0, 0.0, -0.5, 0.0, 0.0) | mat3x2(-8.25, 0.0, 0.0, -8.25, 0.0, 0.0) | mat3x2(-20.125, 0.0, 0.0, -20.125, 0.0, 0.0) | mat3x2(36.8125, 0.0, 0.0, 36.8125, 0.0, 0.0) ];
5140		}
5141
5142		both ""
5143			#version 310 es
5144			precision highp float;
5145			precision highp int;
5146
5147			${DECLARATIONS}
5148
5149			void main()
5150			{
5151				${SETUP}
5152				out0 = mat3x2(in0);
5153				${OUTPUT}
5154			}
5155		""
5156	end
5157
5158	case float_to_mat2x4
5159		version 310 es
5160		values
5161		{
5162			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5163			output mat2x4 out0 = [ mat2x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat2x4(3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0) | mat2x4(-0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0) | mat2x4(-8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0) | mat2x4(-20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0) | mat2x4(36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0) ];
5164		}
5165
5166		both ""
5167			#version 310 es
5168			precision highp float;
5169			precision highp int;
5170
5171			${DECLARATIONS}
5172
5173			void main()
5174			{
5175				${SETUP}
5176				out0 = mat2x4(in0);
5177				${OUTPUT}
5178			}
5179		""
5180	end
5181
5182	case float_to_mat2x3
5183		version 310 es
5184		values
5185		{
5186			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5187			output mat2x3 out0 = [ mat2x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat2x3(3.5, 0.0, 0.0, 0.0, 3.5, 0.0) | mat2x3(-0.5, 0.0, 0.0, 0.0, -0.5, 0.0) | mat2x3(-8.25, 0.0, 0.0, 0.0, -8.25, 0.0) | mat2x3(-20.125, 0.0, 0.0, 0.0, -20.125, 0.0) | mat2x3(36.8125, 0.0, 0.0, 0.0, 36.8125, 0.0) ];
5188		}
5189
5190		both ""
5191			#version 310 es
5192			precision highp float;
5193			precision highp int;
5194
5195			${DECLARATIONS}
5196
5197			void main()
5198			{
5199				${SETUP}
5200				out0 = mat2x3(in0);
5201				${OUTPUT}
5202			}
5203		""
5204	end
5205
5206	case float_to_mat2
5207		version 310 es
5208		values
5209		{
5210			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
5211			output mat2 out0 = [ mat2(0.0, 0.0, 0.0, 0.0) | mat2(1.0, 0.0, 0.0, 1.0) | mat2(2.0, 0.0, 0.0, 2.0) | mat2(3.5, 0.0, 0.0, 3.5) | mat2(-0.5, 0.0, 0.0, -0.5) | mat2(-8.25, 0.0, 0.0, -8.25) | mat2(-20.125, 0.0, 0.0, -20.125) | mat2(36.8125, 0.0, 0.0, 36.8125) ];
5212		}
5213
5214		both ""
5215			#version 310 es
5216			precision highp float;
5217			precision highp int;
5218
5219			${DECLARATIONS}
5220
5221			void main()
5222			{
5223				${SETUP}
5224				out0 = mat2(in0);
5225				${OUTPUT}
5226			}
5227		""
5228	end
5229
5230	case int_to_mat4
5231		version 310 es
5232		values
5233		{
5234			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5235			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0) | mat4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0) | mat4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0) | mat4(11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0) | mat4(-12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0, -12.0) | mat4(-66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0, -66.0) | mat4(-192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0, -192.0) | mat4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0) ];
5236		}
5237
5238		both ""
5239			#version 310 es
5240			precision highp float;
5241			precision highp int;
5242
5243			${DECLARATIONS}
5244
5245			void main()
5246			{
5247				${SETUP}
5248				out0 = mat4(in0);
5249				${OUTPUT}
5250			}
5251		""
5252	end
5253
5254	case int_to_mat4x3
5255		version 310 es
5256		values
5257		{
5258			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5259			output mat4x3 out0 = [ mat4x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0) | mat4x3(5.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0) | mat4x3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0) | mat4x3(11.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0) | mat4x3(-12.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0) | mat4x3(-66.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0) | mat4x3(-192.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0) | mat4x3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0) ];
5260		}
5261
5262		both ""
5263			#version 310 es
5264			precision highp float;
5265			precision highp int;
5266
5267			${DECLARATIONS}
5268
5269			void main()
5270			{
5271				${SETUP}
5272				out0 = mat4x3(in0);
5273				${OUTPUT}
5274			}
5275		""
5276	end
5277
5278	case int_to_mat4x2
5279		version 310 es
5280		values
5281		{
5282			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5283			output mat4x2 out0 = [ mat4x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(5.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(8.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(11.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(-12.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(-66.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(-192.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(255.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0) ];
5284		}
5285
5286		both ""
5287			#version 310 es
5288			precision highp float;
5289			precision highp int;
5290
5291			${DECLARATIONS}
5292
5293			void main()
5294			{
5295				${SETUP}
5296				out0 = mat4x2(in0);
5297				${OUTPUT}
5298			}
5299		""
5300	end
5301
5302	case int_to_mat3x4
5303		version 310 es
5304		values
5305		{
5306			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5307			output mat3x4 out0 = [ mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat3x4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0) | mat3x4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0) | mat3x4(11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0) | mat3x4(-12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0) | mat3x4(-66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0) | mat3x4(-192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0) | mat3x4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0) ];
5308		}
5309
5310		both ""
5311			#version 310 es
5312			precision highp float;
5313			precision highp int;
5314
5315			${DECLARATIONS}
5316
5317			void main()
5318			{
5319				${SETUP}
5320				out0 = mat3x4(in0);
5321				${OUTPUT}
5322			}
5323		""
5324	end
5325
5326	case int_to_mat3
5327		version 310 es
5328		values
5329		{
5330			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5331			output mat3 out0 = [ mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0) | mat3(5.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 5.0) | mat3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 8.0) | mat3(11.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 11.0) | mat3(-12.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, -12.0) | mat3(-66.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, -66.0) | mat3(-192.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, -192.0) | mat3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 255.0) ];
5332		}
5333
5334		both ""
5335			#version 310 es
5336			precision highp float;
5337			precision highp int;
5338
5339			${DECLARATIONS}
5340
5341			void main()
5342			{
5343				${SETUP}
5344				out0 = mat3(in0);
5345				${OUTPUT}
5346			}
5347		""
5348	end
5349
5350	case int_to_mat3x2
5351		version 310 es
5352		values
5353		{
5354			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5355			output mat3x2 out0 = [ mat3x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat3x2(5.0, 0.0, 0.0, 5.0, 0.0, 0.0) | mat3x2(8.0, 0.0, 0.0, 8.0, 0.0, 0.0) | mat3x2(11.0, 0.0, 0.0, 11.0, 0.0, 0.0) | mat3x2(-12.0, 0.0, 0.0, -12.0, 0.0, 0.0) | mat3x2(-66.0, 0.0, 0.0, -66.0, 0.0, 0.0) | mat3x2(-192.0, 0.0, 0.0, -192.0, 0.0, 0.0) | mat3x2(255.0, 0.0, 0.0, 255.0, 0.0, 0.0) ];
5356		}
5357
5358		both ""
5359			#version 310 es
5360			precision highp float;
5361			precision highp int;
5362
5363			${DECLARATIONS}
5364
5365			void main()
5366			{
5367				${SETUP}
5368				out0 = mat3x2(in0);
5369				${OUTPUT}
5370			}
5371		""
5372	end
5373
5374	case int_to_mat2x4
5375		version 310 es
5376		values
5377		{
5378			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5379			output mat2x4 out0 = [ mat2x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat2x4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0) | mat2x4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0) | mat2x4(11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0) | mat2x4(-12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0) | mat2x4(-66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0) | mat2x4(-192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0) | mat2x4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0) ];
5380		}
5381
5382		both ""
5383			#version 310 es
5384			precision highp float;
5385			precision highp int;
5386
5387			${DECLARATIONS}
5388
5389			void main()
5390			{
5391				${SETUP}
5392				out0 = mat2x4(in0);
5393				${OUTPUT}
5394			}
5395		""
5396	end
5397
5398	case int_to_mat2x3
5399		version 310 es
5400		values
5401		{
5402			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5403			output mat2x3 out0 = [ mat2x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat2x3(5.0, 0.0, 0.0, 0.0, 5.0, 0.0) | mat2x3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0) | mat2x3(11.0, 0.0, 0.0, 0.0, 11.0, 0.0) | mat2x3(-12.0, 0.0, 0.0, 0.0, -12.0, 0.0) | mat2x3(-66.0, 0.0, 0.0, 0.0, -66.0, 0.0) | mat2x3(-192.0, 0.0, 0.0, 0.0, -192.0, 0.0) | mat2x3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0) ];
5404		}
5405
5406		both ""
5407			#version 310 es
5408			precision highp float;
5409			precision highp int;
5410
5411			${DECLARATIONS}
5412
5413			void main()
5414			{
5415				${SETUP}
5416				out0 = mat2x3(in0);
5417				${OUTPUT}
5418			}
5419		""
5420	end
5421
5422	case int_to_mat2
5423		version 310 es
5424		values
5425		{
5426			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5427			output mat2 out0 = [ mat2(0.0, 0.0, 0.0, 0.0) | mat2(1.0, 0.0, 0.0, 1.0) | mat2(2.0, 0.0, 0.0, 2.0) | mat2(5.0, 0.0, 0.0, 5.0) | mat2(8.0, 0.0, 0.0, 8.0) | mat2(11.0, 0.0, 0.0, 11.0) | mat2(-12.0, 0.0, 0.0, -12.0) | mat2(-66.0, 0.0, 0.0, -66.0) | mat2(-192.0, 0.0, 0.0, -192.0) | mat2(255.0, 0.0, 0.0, 255.0) ];
5428		}
5429
5430		both ""
5431			#version 310 es
5432			precision highp float;
5433			precision highp int;
5434
5435			${DECLARATIONS}
5436
5437			void main()
5438			{
5439				${SETUP}
5440				out0 = mat2(in0);
5441				${OUTPUT}
5442			}
5443		""
5444	end
5445
5446	case uint_to_mat4
5447		version 310 es
5448		values
5449		{
5450			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5451			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0) | mat4(3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0) | mat4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0) | mat4(9.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 9.0) | mat4(12.0, 0.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 0.0, 12.0) | mat4(10.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 10.0) | mat4(45.0, 0.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 0.0, 45.0) | mat4(193.0, 0.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 0.0, 193.0) | mat4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0) ];
5452		}
5453
5454		both ""
5455			#version 310 es
5456			precision highp float;
5457			precision highp int;
5458
5459			${DECLARATIONS}
5460
5461			void main()
5462			{
5463				${SETUP}
5464				out0 = mat4(in0);
5465				${OUTPUT}
5466			}
5467		""
5468	end
5469
5470	case uint_to_mat4x3
5471		version 310 es
5472		values
5473		{
5474			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5475			output mat4x3 out0 = [ mat4x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0) | mat4x3(3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0) | mat4x3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0) | mat4x3(9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0) | mat4x3(12.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0) | mat4x3(10.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0) | mat4x3(45.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0) | mat4x3(193.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0) | mat4x3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0) ];
5476		}
5477
5478		both ""
5479			#version 310 es
5480			precision highp float;
5481			precision highp int;
5482
5483			${DECLARATIONS}
5484
5485			void main()
5486			{
5487				${SETUP}
5488				out0 = mat4x3(in0);
5489				${OUTPUT}
5490			}
5491		""
5492	end
5493
5494	case uint_to_mat4x2
5495		version 310 es
5496		values
5497		{
5498			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5499			output mat4x2 out0 = [ mat4x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(3.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(8.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(9.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(12.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(10.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(45.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(193.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(255.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0) ];
5500		}
5501
5502		both ""
5503			#version 310 es
5504			precision highp float;
5505			precision highp int;
5506
5507			${DECLARATIONS}
5508
5509			void main()
5510			{
5511				${SETUP}
5512				out0 = mat4x2(in0);
5513				${OUTPUT}
5514			}
5515		""
5516	end
5517
5518	case uint_to_mat3x4
5519		version 310 es
5520		values
5521		{
5522			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5523			output mat3x4 out0 = [ mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat3x4(3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0) | mat3x4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0) | mat3x4(9.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0) | mat3x4(12.0, 0.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 0.0, 12.0, 0.0) | mat3x4(10.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0) | mat3x4(45.0, 0.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 0.0, 45.0, 0.0) | mat3x4(193.0, 0.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 0.0, 193.0, 0.0) | mat3x4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0) ];
5524		}
5525
5526		both ""
5527			#version 310 es
5528			precision highp float;
5529			precision highp int;
5530
5531			${DECLARATIONS}
5532
5533			void main()
5534			{
5535				${SETUP}
5536				out0 = mat3x4(in0);
5537				${OUTPUT}
5538			}
5539		""
5540	end
5541
5542	case uint_to_mat3
5543		version 310 es
5544		values
5545		{
5546			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5547			output mat3 out0 = [ mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0) | mat3(3.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0, 0.0, 3.0) | mat3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 8.0) | mat3(9.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0, 0.0, 9.0) | mat3(12.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0, 0.0, 12.0) | mat3(10.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 10.0) | mat3(45.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0, 0.0, 45.0) | mat3(193.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0, 0.0, 193.0) | mat3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 255.0) ];
5548		}
5549
5550		both ""
5551			#version 310 es
5552			precision highp float;
5553			precision highp int;
5554
5555			${DECLARATIONS}
5556
5557			void main()
5558			{
5559				${SETUP}
5560				out0 = mat3(in0);
5561				${OUTPUT}
5562			}
5563		""
5564	end
5565
5566	case uint_to_mat3x2
5567		version 310 es
5568		values
5569		{
5570			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5571			output mat3x2 out0 = [ mat3x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(2.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat3x2(3.0, 0.0, 0.0, 3.0, 0.0, 0.0) | mat3x2(8.0, 0.0, 0.0, 8.0, 0.0, 0.0) | mat3x2(9.0, 0.0, 0.0, 9.0, 0.0, 0.0) | mat3x2(12.0, 0.0, 0.0, 12.0, 0.0, 0.0) | mat3x2(10.0, 0.0, 0.0, 10.0, 0.0, 0.0) | mat3x2(45.0, 0.0, 0.0, 45.0, 0.0, 0.0) | mat3x2(193.0, 0.0, 0.0, 193.0, 0.0, 0.0) | mat3x2(255.0, 0.0, 0.0, 255.0, 0.0, 0.0) ];
5572		}
5573
5574		both ""
5575			#version 310 es
5576			precision highp float;
5577			precision highp int;
5578
5579			${DECLARATIONS}
5580
5581			void main()
5582			{
5583				${SETUP}
5584				out0 = mat3x2(in0);
5585				${OUTPUT}
5586			}
5587		""
5588	end
5589
5590	case uint_to_mat2x4
5591		version 310 es
5592		values
5593		{
5594			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5595			output mat2x4 out0 = [ mat2x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat2x4(3.0, 0.0, 0.0, 0.0, 0.0, 3.0, 0.0, 0.0) | mat2x4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0) | mat2x4(9.0, 0.0, 0.0, 0.0, 0.0, 9.0, 0.0, 0.0) | mat2x4(12.0, 0.0, 0.0, 0.0, 0.0, 12.0, 0.0, 0.0) | mat2x4(10.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0) | mat2x4(45.0, 0.0, 0.0, 0.0, 0.0, 45.0, 0.0, 0.0) | mat2x4(193.0, 0.0, 0.0, 0.0, 0.0, 193.0, 0.0, 0.0) | mat2x4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0) ];
5596		}
5597
5598		both ""
5599			#version 310 es
5600			precision highp float;
5601			precision highp int;
5602
5603			${DECLARATIONS}
5604
5605			void main()
5606			{
5607				${SETUP}
5608				out0 = mat2x4(in0);
5609				${OUTPUT}
5610			}
5611		""
5612	end
5613
5614	case uint_to_mat2x3
5615		version 310 es
5616		values
5617		{
5618			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5619			output mat2x3 out0 = [ mat2x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0) | mat2x3(3.0, 0.0, 0.0, 0.0, 3.0, 0.0) | mat2x3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0) | mat2x3(9.0, 0.0, 0.0, 0.0, 9.0, 0.0) | mat2x3(12.0, 0.0, 0.0, 0.0, 12.0, 0.0) | mat2x3(10.0, 0.0, 0.0, 0.0, 10.0, 0.0) | mat2x3(45.0, 0.0, 0.0, 0.0, 45.0, 0.0) | mat2x3(193.0, 0.0, 0.0, 0.0, 193.0, 0.0) | mat2x3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0) ];
5620		}
5621
5622		both ""
5623			#version 310 es
5624			precision highp float;
5625			precision highp int;
5626
5627			${DECLARATIONS}
5628
5629			void main()
5630			{
5631				${SETUP}
5632				out0 = mat2x3(in0);
5633				${OUTPUT}
5634			}
5635		""
5636	end
5637
5638	case uint_to_mat2
5639		version 310 es
5640		values
5641		{
5642			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
5643			output mat2 out0 = [ mat2(0.0, 0.0, 0.0, 0.0) | mat2(2.0, 0.0, 0.0, 2.0) | mat2(3.0, 0.0, 0.0, 3.0) | mat2(8.0, 0.0, 0.0, 8.0) | mat2(9.0, 0.0, 0.0, 9.0) | mat2(12.0, 0.0, 0.0, 12.0) | mat2(10.0, 0.0, 0.0, 10.0) | mat2(45.0, 0.0, 0.0, 45.0) | mat2(193.0, 0.0, 0.0, 193.0) | mat2(255.0, 0.0, 0.0, 255.0) ];
5644		}
5645
5646		both ""
5647			#version 310 es
5648			precision highp float;
5649			precision highp int;
5650
5651			${DECLARATIONS}
5652
5653			void main()
5654			{
5655				${SETUP}
5656				out0 = mat2(in0);
5657				${OUTPUT}
5658			}
5659		""
5660	end
5661
5662	case bool_to_mat4
5663		version 310 es
5664		values
5665		{
5666			input bool in0 = [ true | false ];
5667			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5668		}
5669
5670		both ""
5671			#version 310 es
5672			precision highp float;
5673			precision highp int;
5674
5675			${DECLARATIONS}
5676
5677			void main()
5678			{
5679				${SETUP}
5680				out0 = mat4(in0);
5681				${OUTPUT}
5682			}
5683		""
5684	end
5685
5686	case bool_to_mat4x3
5687		version 310 es
5688		values
5689		{
5690			input bool in0 = [ true | false ];
5691			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5692		}
5693
5694		both ""
5695			#version 310 es
5696			precision highp float;
5697			precision highp int;
5698
5699			${DECLARATIONS}
5700
5701			void main()
5702			{
5703				${SETUP}
5704				out0 = mat4x3(in0);
5705				${OUTPUT}
5706			}
5707		""
5708	end
5709
5710	case bool_to_mat4x2
5711		version 310 es
5712		values
5713		{
5714			input bool in0 = [ true | false ];
5715			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5716		}
5717
5718		both ""
5719			#version 310 es
5720			precision highp float;
5721			precision highp int;
5722
5723			${DECLARATIONS}
5724
5725			void main()
5726			{
5727				${SETUP}
5728				out0 = mat4x2(in0);
5729				${OUTPUT}
5730			}
5731		""
5732	end
5733
5734	case bool_to_mat3x4
5735		version 310 es
5736		values
5737		{
5738			input bool in0 = [ true | false ];
5739			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5740		}
5741
5742		both ""
5743			#version 310 es
5744			precision highp float;
5745			precision highp int;
5746
5747			${DECLARATIONS}
5748
5749			void main()
5750			{
5751				${SETUP}
5752				out0 = mat3x4(in0);
5753				${OUTPUT}
5754			}
5755		""
5756	end
5757
5758	case bool_to_mat3
5759		version 310 es
5760		values
5761		{
5762			input bool in0 = [ true | false ];
5763			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5764		}
5765
5766		both ""
5767			#version 310 es
5768			precision highp float;
5769			precision highp int;
5770
5771			${DECLARATIONS}
5772
5773			void main()
5774			{
5775				${SETUP}
5776				out0 = mat3(in0);
5777				${OUTPUT}
5778			}
5779		""
5780	end
5781
5782	case bool_to_mat3x2
5783		version 310 es
5784		values
5785		{
5786			input bool in0 = [ true | false ];
5787			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5788		}
5789
5790		both ""
5791			#version 310 es
5792			precision highp float;
5793			precision highp int;
5794
5795			${DECLARATIONS}
5796
5797			void main()
5798			{
5799				${SETUP}
5800				out0 = mat3x2(in0);
5801				${OUTPUT}
5802			}
5803		""
5804	end
5805
5806	case bool_to_mat2x4
5807		version 310 es
5808		values
5809		{
5810			input bool in0 = [ true | false ];
5811			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5812		}
5813
5814		both ""
5815			#version 310 es
5816			precision highp float;
5817			precision highp int;
5818
5819			${DECLARATIONS}
5820
5821			void main()
5822			{
5823				${SETUP}
5824				out0 = mat2x4(in0);
5825				${OUTPUT}
5826			}
5827		""
5828	end
5829
5830	case bool_to_mat2x3
5831		version 310 es
5832		values
5833		{
5834			input bool in0 = [ true | false ];
5835			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
5836		}
5837
5838		both ""
5839			#version 310 es
5840			precision highp float;
5841			precision highp int;
5842
5843			${DECLARATIONS}
5844
5845			void main()
5846			{
5847				${SETUP}
5848				out0 = mat2x3(in0);
5849				${OUTPUT}
5850			}
5851		""
5852	end
5853
5854	case bool_to_mat2
5855		version 310 es
5856		values
5857		{
5858			input bool in0 = [ true | false ];
5859			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(0.0, 0.0, 0.0, 0.0) ];
5860		}
5861
5862		both ""
5863			#version 310 es
5864			precision highp float;
5865			precision highp int;
5866
5867			${DECLARATIONS}
5868
5869			void main()
5870			{
5871				${SETUP}
5872				out0 = mat2(in0);
5873				${OUTPUT}
5874			}
5875		""
5876	end
5877
5878
5879end # scalar_to_matrix
5880group matrix_to_matrix "Matrix to Matrix Conversions"
5881
5882	case mat4_to_mat4
5883		version 310 es
5884		values
5885		{
5886			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5887			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5888		}
5889
5890		both ""
5891			#version 310 es
5892			precision highp float;
5893			precision highp int;
5894
5895			${DECLARATIONS}
5896
5897			void main()
5898			{
5899				${SETUP}
5900				out0 = mat4(in0);
5901				${OUTPUT}
5902			}
5903		""
5904	end
5905
5906	case mat4_to_mat4x3
5907		version 310 es
5908		values
5909		{
5910			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5911			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
5912		}
5913
5914		both ""
5915			#version 310 es
5916			precision highp float;
5917			precision highp int;
5918
5919			${DECLARATIONS}
5920
5921			void main()
5922			{
5923				${SETUP}
5924				out0 = mat4x3(in0);
5925				${OUTPUT}
5926			}
5927		""
5928	end
5929
5930	case mat4_to_mat4x2
5931		version 310 es
5932		values
5933		{
5934			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5935			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
5936		}
5937
5938		both ""
5939			#version 310 es
5940			precision highp float;
5941			precision highp int;
5942
5943			${DECLARATIONS}
5944
5945			void main()
5946			{
5947				${SETUP}
5948				out0 = mat4x2(in0);
5949				${OUTPUT}
5950			}
5951		""
5952	end
5953
5954	case mat4_to_mat3x4
5955		version 310 es
5956		values
5957		{
5958			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5959			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
5960		}
5961
5962		both ""
5963			#version 310 es
5964			precision highp float;
5965			precision highp int;
5966
5967			${DECLARATIONS}
5968
5969			void main()
5970			{
5971				${SETUP}
5972				out0 = mat3x4(in0);
5973				${OUTPUT}
5974			}
5975		""
5976	end
5977
5978	case mat4_to_mat3
5979		version 310 es
5980		values
5981		{
5982			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
5983			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
5984		}
5985
5986		both ""
5987			#version 310 es
5988			precision highp float;
5989			precision highp int;
5990
5991			${DECLARATIONS}
5992
5993			void main()
5994			{
5995				${SETUP}
5996				out0 = mat3(in0);
5997				${OUTPUT}
5998			}
5999		""
6000	end
6001
6002	case mat4_to_mat3x2
6003		version 310 es
6004		values
6005		{
6006			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
6007			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6008		}
6009
6010		both ""
6011			#version 310 es
6012			precision highp float;
6013			precision highp int;
6014
6015			${DECLARATIONS}
6016
6017			void main()
6018			{
6019				${SETUP}
6020				out0 = mat3x2(in0);
6021				${OUTPUT}
6022			}
6023		""
6024	end
6025
6026	case mat4_to_mat2x4
6027		version 310 es
6028		values
6029		{
6030			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
6031			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
6032		}
6033
6034		both ""
6035			#version 310 es
6036			precision highp float;
6037			precision highp int;
6038
6039			${DECLARATIONS}
6040
6041			void main()
6042			{
6043				${SETUP}
6044				out0 = mat2x4(in0);
6045				${OUTPUT}
6046			}
6047		""
6048	end
6049
6050	case mat4_to_mat2x3
6051		version 310 es
6052		values
6053		{
6054			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
6055			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
6056		}
6057
6058		both ""
6059			#version 310 es
6060			precision highp float;
6061			precision highp int;
6062
6063			${DECLARATIONS}
6064
6065			void main()
6066			{
6067				${SETUP}
6068				out0 = mat2x3(in0);
6069				${OUTPUT}
6070			}
6071		""
6072	end
6073
6074	case mat4_to_mat2
6075		version 310 es
6076		values
6077		{
6078			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
6079			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
6080		}
6081
6082		both ""
6083			#version 310 es
6084			precision highp float;
6085			precision highp int;
6086
6087			${DECLARATIONS}
6088
6089			void main()
6090			{
6091				${SETUP}
6092				out0 = mat2(in0);
6093				${OUTPUT}
6094			}
6095		""
6096	end
6097
6098	case mat4x3_to_mat4
6099		version 310 es
6100		values
6101		{
6102			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6103			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, -0.75, -8.425, 0.03125, 0.0, 9.975, -6.542, 0.015625, 1.0) ];
6104		}
6105
6106		both ""
6107			#version 310 es
6108			precision highp float;
6109			precision highp int;
6110
6111			${DECLARATIONS}
6112
6113			void main()
6114			{
6115				${SETUP}
6116				out0 = mat4(in0);
6117				${OUTPUT}
6118			}
6119		""
6120	end
6121
6122	case mat4x3_to_mat4x3
6123		version 310 es
6124		values
6125		{
6126			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6127			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6128		}
6129
6130		both ""
6131			#version 310 es
6132			precision highp float;
6133			precision highp int;
6134
6135			${DECLARATIONS}
6136
6137			void main()
6138			{
6139				${SETUP}
6140				out0 = mat4x3(in0);
6141				${OUTPUT}
6142			}
6143		""
6144	end
6145
6146	case mat4x3_to_mat4x2
6147		version 310 es
6148		values
6149		{
6150			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6151			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6152		}
6153
6154		both ""
6155			#version 310 es
6156			precision highp float;
6157			precision highp int;
6158
6159			${DECLARATIONS}
6160
6161			void main()
6162			{
6163				${SETUP}
6164				out0 = mat4x2(in0);
6165				${OUTPUT}
6166			}
6167		""
6168	end
6169
6170	case mat4x3_to_mat3x4
6171		version 310 es
6172		values
6173		{
6174			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6175			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, -0.75, -8.425, 0.03125, 0.0) ];
6176		}
6177
6178		both ""
6179			#version 310 es
6180			precision highp float;
6181			precision highp int;
6182
6183			${DECLARATIONS}
6184
6185			void main()
6186			{
6187				${SETUP}
6188				out0 = mat3x4(in0);
6189				${OUTPUT}
6190			}
6191		""
6192	end
6193
6194	case mat4x3_to_mat3
6195		version 310 es
6196		values
6197		{
6198			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6199			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6200		}
6201
6202		both ""
6203			#version 310 es
6204			precision highp float;
6205			precision highp int;
6206
6207			${DECLARATIONS}
6208
6209			void main()
6210			{
6211				${SETUP}
6212				out0 = mat3(in0);
6213				${OUTPUT}
6214			}
6215		""
6216	end
6217
6218	case mat4x3_to_mat3x2
6219		version 310 es
6220		values
6221		{
6222			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6223			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6224		}
6225
6226		both ""
6227			#version 310 es
6228			precision highp float;
6229			precision highp int;
6230
6231			${DECLARATIONS}
6232
6233			void main()
6234			{
6235				${SETUP}
6236				out0 = mat3x2(in0);
6237				${OUTPUT}
6238			}
6239		""
6240	end
6241
6242	case mat4x3_to_mat2x4
6243		version 310 es
6244		values
6245		{
6246			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6247			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0) ];
6248		}
6249
6250		both ""
6251			#version 310 es
6252			precision highp float;
6253			precision highp int;
6254
6255			${DECLARATIONS}
6256
6257			void main()
6258			{
6259				${SETUP}
6260				out0 = mat2x4(in0);
6261				${OUTPUT}
6262			}
6263		""
6264	end
6265
6266	case mat4x3_to_mat2x3
6267		version 310 es
6268		values
6269		{
6270			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6271			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
6272		}
6273
6274		both ""
6275			#version 310 es
6276			precision highp float;
6277			precision highp int;
6278
6279			${DECLARATIONS}
6280
6281			void main()
6282			{
6283				${SETUP}
6284				out0 = mat2x3(in0);
6285				${OUTPUT}
6286			}
6287		""
6288	end
6289
6290	case mat4x3_to_mat2
6291		version 310 es
6292		values
6293		{
6294			input mat4x3 in0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 9.975, -6.542, 0.015625) ];
6295			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
6296		}
6297
6298		both ""
6299			#version 310 es
6300			precision highp float;
6301			precision highp int;
6302
6303			${DECLARATIONS}
6304
6305			void main()
6306			{
6307				${SETUP}
6308				out0 = mat2(in0);
6309				${OUTPUT}
6310			}
6311		""
6312	end
6313
6314	case mat4x2_to_mat4
6315		version 310 es
6316		values
6317		{
6318			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6319			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0, -0.75, -8.425, 1.0, 0.0, 9.975, -6.542, 0.0, 1.0) ];
6320		}
6321
6322		both ""
6323			#version 310 es
6324			precision highp float;
6325			precision highp int;
6326
6327			${DECLARATIONS}
6328
6329			void main()
6330			{
6331				${SETUP}
6332				out0 = mat4(in0);
6333				${OUTPUT}
6334			}
6335		""
6336	end
6337
6338	case mat4x2_to_mat4x3
6339		version 310 es
6340		values
6341		{
6342			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6343			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0, -0.75, -8.425, 1.0, 9.975, -6.542, 0.0) ];
6344		}
6345
6346		both ""
6347			#version 310 es
6348			precision highp float;
6349			precision highp int;
6350
6351			${DECLARATIONS}
6352
6353			void main()
6354			{
6355				${SETUP}
6356				out0 = mat4x3(in0);
6357				${OUTPUT}
6358			}
6359		""
6360	end
6361
6362	case mat4x2_to_mat4x2
6363		version 310 es
6364		values
6365		{
6366			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6367			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6368		}
6369
6370		both ""
6371			#version 310 es
6372			precision highp float;
6373			precision highp int;
6374
6375			${DECLARATIONS}
6376
6377			void main()
6378			{
6379				${SETUP}
6380				out0 = mat4x2(in0);
6381				${OUTPUT}
6382			}
6383		""
6384	end
6385
6386	case mat4x2_to_mat3x4
6387		version 310 es
6388		values
6389		{
6390			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6391			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0, -0.75, -8.425, 1.0, 0.0) ];
6392		}
6393
6394		both ""
6395			#version 310 es
6396			precision highp float;
6397			precision highp int;
6398
6399			${DECLARATIONS}
6400
6401			void main()
6402			{
6403				${SETUP}
6404				out0 = mat3x4(in0);
6405				${OUTPUT}
6406			}
6407		""
6408	end
6409
6410	case mat4x2_to_mat3
6411		version 310 es
6412		values
6413		{
6414			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6415			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0, -0.75, -8.425, 1.0) ];
6416		}
6417
6418		both ""
6419			#version 310 es
6420			precision highp float;
6421			precision highp int;
6422
6423			${DECLARATIONS}
6424
6425			void main()
6426			{
6427				${SETUP}
6428				out0 = mat3(in0);
6429				${OUTPUT}
6430			}
6431		""
6432	end
6433
6434	case mat4x2_to_mat3x2
6435		version 310 es
6436		values
6437		{
6438			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6439			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6440		}
6441
6442		both ""
6443			#version 310 es
6444			precision highp float;
6445			precision highp int;
6446
6447			${DECLARATIONS}
6448
6449			void main()
6450			{
6451				${SETUP}
6452				out0 = mat3x2(in0);
6453				${OUTPUT}
6454			}
6455		""
6456	end
6457
6458	case mat4x2_to_mat2x4
6459		version 310 es
6460		values
6461		{
6462			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6463			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0) ];
6464		}
6465
6466		both ""
6467			#version 310 es
6468			precision highp float;
6469			precision highp int;
6470
6471			${DECLARATIONS}
6472
6473			void main()
6474			{
6475				${SETUP}
6476				out0 = mat2x4(in0);
6477				${OUTPUT}
6478			}
6479		""
6480	end
6481
6482	case mat4x2_to_mat2x3
6483		version 310 es
6484		values
6485		{
6486			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6487			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0) ];
6488		}
6489
6490		both ""
6491			#version 310 es
6492			precision highp float;
6493			precision highp int;
6494
6495			${DECLARATIONS}
6496
6497			void main()
6498			{
6499				${SETUP}
6500				out0 = mat2x3(in0);
6501				${OUTPUT}
6502			}
6503		""
6504	end
6505
6506	case mat4x2_to_mat2
6507		version 310 es
6508		values
6509		{
6510			input mat4x2 in0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 9.975, -6.542) ];
6511			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
6512		}
6513
6514		both ""
6515			#version 310 es
6516			precision highp float;
6517			precision highp int;
6518
6519			${DECLARATIONS}
6520
6521			void main()
6522			{
6523				${SETUP}
6524				out0 = mat2(in0);
6525				${OUTPUT}
6526			}
6527		""
6528	end
6529
6530	case mat3x4_to_mat4
6531		version 310 es
6532		values
6533		{
6534			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6535			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 0.0, 0.0, 0.0, 1.0) ];
6536		}
6537
6538		both ""
6539			#version 310 es
6540			precision highp float;
6541			precision highp int;
6542
6543			${DECLARATIONS}
6544
6545			void main()
6546			{
6547				${SETUP}
6548				out0 = mat4(in0);
6549				${OUTPUT}
6550			}
6551		""
6552	end
6553
6554	case mat3x4_to_mat4x3
6555		version 310 es
6556		values
6557		{
6558			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6559			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 0.0, 0.0, 0.0) ];
6560		}
6561
6562		both ""
6563			#version 310 es
6564			precision highp float;
6565			precision highp int;
6566
6567			${DECLARATIONS}
6568
6569			void main()
6570			{
6571				${SETUP}
6572				out0 = mat4x3(in0);
6573				${OUTPUT}
6574			}
6575		""
6576	end
6577
6578	case mat3x4_to_mat4x2
6579		version 310 es
6580		values
6581		{
6582			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6583			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 0.0, 0.0) ];
6584		}
6585
6586		both ""
6587			#version 310 es
6588			precision highp float;
6589			precision highp int;
6590
6591			${DECLARATIONS}
6592
6593			void main()
6594			{
6595				${SETUP}
6596				out0 = mat4x2(in0);
6597				${OUTPUT}
6598			}
6599		""
6600	end
6601
6602	case mat3x4_to_mat3x4
6603		version 310 es
6604		values
6605		{
6606			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6607			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6608		}
6609
6610		both ""
6611			#version 310 es
6612			precision highp float;
6613			precision highp int;
6614
6615			${DECLARATIONS}
6616
6617			void main()
6618			{
6619				${SETUP}
6620				out0 = mat3x4(in0);
6621				${OUTPUT}
6622			}
6623		""
6624	end
6625
6626	case mat3x4_to_mat3
6627		version 310 es
6628		values
6629		{
6630			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6631			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6632		}
6633
6634		both ""
6635			#version 310 es
6636			precision highp float;
6637			precision highp int;
6638
6639			${DECLARATIONS}
6640
6641			void main()
6642			{
6643				${SETUP}
6644				out0 = mat3(in0);
6645				${OUTPUT}
6646			}
6647		""
6648	end
6649
6650	case mat3x4_to_mat3x2
6651		version 310 es
6652		values
6653		{
6654			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6655			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6656		}
6657
6658		both ""
6659			#version 310 es
6660			precision highp float;
6661			precision highp int;
6662
6663			${DECLARATIONS}
6664
6665			void main()
6666			{
6667				${SETUP}
6668				out0 = mat3x2(in0);
6669				${OUTPUT}
6670			}
6671		""
6672	end
6673
6674	case mat3x4_to_mat2x4
6675		version 310 es
6676		values
6677		{
6678			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6679			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
6680		}
6681
6682		both ""
6683			#version 310 es
6684			precision highp float;
6685			precision highp int;
6686
6687			${DECLARATIONS}
6688
6689			void main()
6690			{
6691				${SETUP}
6692				out0 = mat2x4(in0);
6693				${OUTPUT}
6694			}
6695		""
6696	end
6697
6698	case mat3x4_to_mat2x3
6699		version 310 es
6700		values
6701		{
6702			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6703			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
6704		}
6705
6706		both ""
6707			#version 310 es
6708			precision highp float;
6709			precision highp int;
6710
6711			${DECLARATIONS}
6712
6713			void main()
6714			{
6715				${SETUP}
6716				out0 = mat2x3(in0);
6717				${OUTPUT}
6718			}
6719		""
6720	end
6721
6722	case mat3x4_to_mat2
6723		version 310 es
6724		values
6725		{
6726			input mat3x4 in0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125) ];
6727			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
6728		}
6729
6730		both ""
6731			#version 310 es
6732			precision highp float;
6733			precision highp int;
6734
6735			${DECLARATIONS}
6736
6737			void main()
6738			{
6739				${SETUP}
6740				out0 = mat2(in0);
6741				${OUTPUT}
6742			}
6743		""
6744	end
6745
6746	case mat3_to_mat4
6747		version 310 es
6748		values
6749		{
6750			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6751			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, -0.75, -8.425, 0.03125, 0.0, 0.0, 0.0, 0.0, 1.0) ];
6752		}
6753
6754		both ""
6755			#version 310 es
6756			precision highp float;
6757			precision highp int;
6758
6759			${DECLARATIONS}
6760
6761			void main()
6762			{
6763				${SETUP}
6764				out0 = mat4(in0);
6765				${OUTPUT}
6766			}
6767		""
6768	end
6769
6770	case mat3_to_mat4x3
6771		version 310 es
6772		values
6773		{
6774			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6775			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125, 0.0, 0.0, 0.0) ];
6776		}
6777
6778		both ""
6779			#version 310 es
6780			precision highp float;
6781			precision highp int;
6782
6783			${DECLARATIONS}
6784
6785			void main()
6786			{
6787				${SETUP}
6788				out0 = mat4x3(in0);
6789				${OUTPUT}
6790			}
6791		""
6792	end
6793
6794	case mat3_to_mat4x2
6795		version 310 es
6796		values
6797		{
6798			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6799			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 0.0, 0.0) ];
6800		}
6801
6802		both ""
6803			#version 310 es
6804			precision highp float;
6805			precision highp int;
6806
6807			${DECLARATIONS}
6808
6809			void main()
6810			{
6811				${SETUP}
6812				out0 = mat4x2(in0);
6813				${OUTPUT}
6814			}
6815		""
6816	end
6817
6818	case mat3_to_mat3x4
6819		version 310 es
6820		values
6821		{
6822			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6823			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, -0.75, -8.425, 0.03125, 0.0) ];
6824		}
6825
6826		both ""
6827			#version 310 es
6828			precision highp float;
6829			precision highp int;
6830
6831			${DECLARATIONS}
6832
6833			void main()
6834			{
6835				${SETUP}
6836				out0 = mat3x4(in0);
6837				${OUTPUT}
6838			}
6839		""
6840	end
6841
6842	case mat3_to_mat3
6843		version 310 es
6844		values
6845		{
6846			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6847			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6848		}
6849
6850		both ""
6851			#version 310 es
6852			precision highp float;
6853			precision highp int;
6854
6855			${DECLARATIONS}
6856
6857			void main()
6858			{
6859				${SETUP}
6860				out0 = mat3(in0);
6861				${OUTPUT}
6862			}
6863		""
6864	end
6865
6866	case mat3_to_mat3x2
6867		version 310 es
6868		values
6869		{
6870			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6871			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6872		}
6873
6874		both ""
6875			#version 310 es
6876			precision highp float;
6877			precision highp int;
6878
6879			${DECLARATIONS}
6880
6881			void main()
6882			{
6883				${SETUP}
6884				out0 = mat3x2(in0);
6885				${OUTPUT}
6886			}
6887		""
6888	end
6889
6890	case mat3_to_mat2x4
6891		version 310 es
6892		values
6893		{
6894			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6895			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0) ];
6896		}
6897
6898		both ""
6899			#version 310 es
6900			precision highp float;
6901			precision highp int;
6902
6903			${DECLARATIONS}
6904
6905			void main()
6906			{
6907				${SETUP}
6908				out0 = mat2x4(in0);
6909				${OUTPUT}
6910			}
6911		""
6912	end
6913
6914	case mat3_to_mat2x3
6915		version 310 es
6916		values
6917		{
6918			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6919			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
6920		}
6921
6922		both ""
6923			#version 310 es
6924			precision highp float;
6925			precision highp int;
6926
6927			${DECLARATIONS}
6928
6929			void main()
6930			{
6931				${SETUP}
6932				out0 = mat2x3(in0);
6933				${OUTPUT}
6934			}
6935		""
6936	end
6937
6938	case mat3_to_mat2
6939		version 310 es
6940		values
6941		{
6942			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
6943			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
6944		}
6945
6946		both ""
6947			#version 310 es
6948			precision highp float;
6949			precision highp int;
6950
6951			${DECLARATIONS}
6952
6953			void main()
6954			{
6955				${SETUP}
6956				out0 = mat2(in0);
6957				${OUTPUT}
6958			}
6959		""
6960	end
6961
6962	case mat3x2_to_mat4
6963		version 310 es
6964		values
6965		{
6966			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6967			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0, -0.75, -8.425, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) ];
6968		}
6969
6970		both ""
6971			#version 310 es
6972			precision highp float;
6973			precision highp int;
6974
6975			${DECLARATIONS}
6976
6977			void main()
6978			{
6979				${SETUP}
6980				out0 = mat4(in0);
6981				${OUTPUT}
6982			}
6983		""
6984	end
6985
6986	case mat3x2_to_mat4x3
6987		version 310 es
6988		values
6989		{
6990			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
6991			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0, -0.75, -8.425, 1.0, 0.0, 0.0, 0.0) ];
6992		}
6993
6994		both ""
6995			#version 310 es
6996			precision highp float;
6997			precision highp int;
6998
6999			${DECLARATIONS}
7000
7001			void main()
7002			{
7003				${SETUP}
7004				out0 = mat4x3(in0);
7005				${OUTPUT}
7006			}
7007		""
7008	end
7009
7010	case mat3x2_to_mat4x2
7011		version 310 es
7012		values
7013		{
7014			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7015			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425, 0.0, 0.0) ];
7016		}
7017
7018		both ""
7019			#version 310 es
7020			precision highp float;
7021			precision highp int;
7022
7023			${DECLARATIONS}
7024
7025			void main()
7026			{
7027				${SETUP}
7028				out0 = mat4x2(in0);
7029				${OUTPUT}
7030			}
7031		""
7032	end
7033
7034	case mat3x2_to_mat3x4
7035		version 310 es
7036		values
7037		{
7038			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7039			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0, -0.75, -8.425, 1.0, 0.0) ];
7040		}
7041
7042		both ""
7043			#version 310 es
7044			precision highp float;
7045			precision highp int;
7046
7047			${DECLARATIONS}
7048
7049			void main()
7050			{
7051				${SETUP}
7052				out0 = mat3x4(in0);
7053				${OUTPUT}
7054			}
7055		""
7056	end
7057
7058	case mat3x2_to_mat3
7059		version 310 es
7060		values
7061		{
7062			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7063			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0, -0.75, -8.425, 1.0) ];
7064		}
7065
7066		both ""
7067			#version 310 es
7068			precision highp float;
7069			precision highp int;
7070
7071			${DECLARATIONS}
7072
7073			void main()
7074			{
7075				${SETUP}
7076				out0 = mat3(in0);
7077				${OUTPUT}
7078			}
7079		""
7080	end
7081
7082	case mat3x2_to_mat3x2
7083		version 310 es
7084		values
7085		{
7086			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7087			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7088		}
7089
7090		both ""
7091			#version 310 es
7092			precision highp float;
7093			precision highp int;
7094
7095			${DECLARATIONS}
7096
7097			void main()
7098			{
7099				${SETUP}
7100				out0 = mat3x2(in0);
7101				${OUTPUT}
7102			}
7103		""
7104	end
7105
7106	case mat3x2_to_mat2x4
7107		version 310 es
7108		values
7109		{
7110			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7111			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.0, 0.0, 12.5, 0.0208333333333, 0.0, 0.0) ];
7112		}
7113
7114		both ""
7115			#version 310 es
7116			precision highp float;
7117			precision highp int;
7118
7119			${DECLARATIONS}
7120
7121			void main()
7122			{
7123				${SETUP}
7124				out0 = mat2x4(in0);
7125				${OUTPUT}
7126			}
7127		""
7128	end
7129
7130	case mat3x2_to_mat2x3
7131		version 310 es
7132		values
7133		{
7134			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7135			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.0, 12.5, 0.0208333333333, 0.0) ];
7136		}
7137
7138		both ""
7139			#version 310 es
7140			precision highp float;
7141			precision highp int;
7142
7143			${DECLARATIONS}
7144
7145			void main()
7146			{
7147				${SETUP}
7148				out0 = mat2x3(in0);
7149				${OUTPUT}
7150			}
7151		""
7152	end
7153
7154	case mat3x2_to_mat2
7155		version 310 es
7156		values
7157		{
7158			input mat3x2 in0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, -0.75, -8.425) ];
7159			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7160		}
7161
7162		both ""
7163			#version 310 es
7164			precision highp float;
7165			precision highp int;
7166
7167			${DECLARATIONS}
7168
7169			void main()
7170			{
7171				${SETUP}
7172				out0 = mat2(in0);
7173				${OUTPUT}
7174			}
7175		""
7176	end
7177
7178	case mat2x4_to_mat4
7179		version 310 es
7180		values
7181		{
7182			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7183			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) ];
7184		}
7185
7186		both ""
7187			#version 310 es
7188			precision highp float;
7189			precision highp int;
7190
7191			${DECLARATIONS}
7192
7193			void main()
7194			{
7195				${SETUP}
7196				out0 = mat4(in0);
7197				${OUTPUT}
7198			}
7199		""
7200	end
7201
7202	case mat2x4_to_mat4x3
7203		version 310 es
7204		values
7205		{
7206			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7207			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) ];
7208		}
7209
7210		both ""
7211			#version 310 es
7212			precision highp float;
7213			precision highp int;
7214
7215			${DECLARATIONS}
7216
7217			void main()
7218			{
7219				${SETUP}
7220				out0 = mat4x3(in0);
7221				${OUTPUT}
7222			}
7223		""
7224	end
7225
7226	case mat2x4_to_mat4x2
7227		version 310 es
7228		values
7229		{
7230			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7231			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, 0.0, 0.0, 0.0, 0.0) ];
7232		}
7233
7234		both ""
7235			#version 310 es
7236			precision highp float;
7237			precision highp int;
7238
7239			${DECLARATIONS}
7240
7241			void main()
7242			{
7243				${SETUP}
7244				out0 = mat4x2(in0);
7245				${OUTPUT}
7246			}
7247		""
7248	end
7249
7250	case mat2x4_to_mat3x4
7251		version 310 es
7252		values
7253		{
7254			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7255			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, 0.0, 0.0, 1.0, 0.0) ];
7256		}
7257
7258		both ""
7259			#version 310 es
7260			precision highp float;
7261			precision highp int;
7262
7263			${DECLARATIONS}
7264
7265			void main()
7266			{
7267				${SETUP}
7268				out0 = mat3x4(in0);
7269				${OUTPUT}
7270			}
7271		""
7272	end
7273
7274	case mat2x4_to_mat3
7275		version 310 es
7276		values
7277		{
7278			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7279			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 1.0) ];
7280		}
7281
7282		both ""
7283			#version 310 es
7284			precision highp float;
7285			precision highp int;
7286
7287			${DECLARATIONS}
7288
7289			void main()
7290			{
7291				${SETUP}
7292				out0 = mat3(in0);
7293				${OUTPUT}
7294			}
7295		""
7296	end
7297
7298	case mat2x4_to_mat3x2
7299		version 310 es
7300		values
7301		{
7302			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7303			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, 0.0, 0.0) ];
7304		}
7305
7306		both ""
7307			#version 310 es
7308			precision highp float;
7309			precision highp int;
7310
7311			${DECLARATIONS}
7312
7313			void main()
7314			{
7315				${SETUP}
7316				out0 = mat3x2(in0);
7317				${OUTPUT}
7318			}
7319		""
7320	end
7321
7322	case mat2x4_to_mat2x4
7323		version 310 es
7324		values
7325		{
7326			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7327			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7328		}
7329
7330		both ""
7331			#version 310 es
7332			precision highp float;
7333			precision highp int;
7334
7335			${DECLARATIONS}
7336
7337			void main()
7338			{
7339				${SETUP}
7340				out0 = mat2x4(in0);
7341				${OUTPUT}
7342			}
7343		""
7344	end
7345
7346	case mat2x4_to_mat2x3
7347		version 310 es
7348		values
7349		{
7350			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7351			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7352		}
7353
7354		both ""
7355			#version 310 es
7356			precision highp float;
7357			precision highp int;
7358
7359			${DECLARATIONS}
7360
7361			void main()
7362			{
7363				${SETUP}
7364				out0 = mat2x3(in0);
7365				${OUTPUT}
7366			}
7367		""
7368	end
7369
7370	case mat2x4_to_mat2
7371		version 310 es
7372		values
7373		{
7374			input mat2x4 in0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5) ];
7375			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7376		}
7377
7378		both ""
7379			#version 310 es
7380			precision highp float;
7381			precision highp int;
7382
7383			${DECLARATIONS}
7384
7385			void main()
7386			{
7387				${SETUP}
7388				out0 = mat2(in0);
7389				${OUTPUT}
7390			}
7391		""
7392	end
7393
7394	case mat2x3_to_mat4
7395		version 310 es
7396		values
7397		{
7398			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7399			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) ];
7400		}
7401
7402		both ""
7403			#version 310 es
7404			precision highp float;
7405			precision highp int;
7406
7407			${DECLARATIONS}
7408
7409			void main()
7410			{
7411				${SETUP}
7412				out0 = mat4(in0);
7413				${OUTPUT}
7414			}
7415		""
7416	end
7417
7418	case mat2x3_to_mat4x3
7419		version 310 es
7420		values
7421		{
7422			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7423			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) ];
7424		}
7425
7426		both ""
7427			#version 310 es
7428			precision highp float;
7429			precision highp int;
7430
7431			${DECLARATIONS}
7432
7433			void main()
7434			{
7435				${SETUP}
7436				out0 = mat4x3(in0);
7437				${OUTPUT}
7438			}
7439		""
7440	end
7441
7442	case mat2x3_to_mat4x2
7443		version 310 es
7444		values
7445		{
7446			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7447			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, 32.0, 12.5, 0.0208333333333, 0.0, 0.0, 0.0, 0.0) ];
7448		}
7449
7450		both ""
7451			#version 310 es
7452			precision highp float;
7453			precision highp int;
7454
7455			${DECLARATIONS}
7456
7457			void main()
7458			{
7459				${SETUP}
7460				out0 = mat4x2(in0);
7461				${OUTPUT}
7462			}
7463		""
7464	end
7465
7466	case mat2x3_to_mat3x4
7467		version 310 es
7468		values
7469		{
7470			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7471			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 0.0, 1.0, 0.0) ];
7472		}
7473
7474		both ""
7475			#version 310 es
7476			precision highp float;
7477			precision highp int;
7478
7479			${DECLARATIONS}
7480
7481			void main()
7482			{
7483				${SETUP}
7484				out0 = mat3x4(in0);
7485				${OUTPUT}
7486			}
7487		""
7488	end
7489
7490	case mat2x3_to_mat3
7491		version 310 es
7492		values
7493		{
7494			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7495			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, 0.0, 0.0, 1.0) ];
7496		}
7497
7498		both ""
7499			#version 310 es
7500			precision highp float;
7501			precision highp int;
7502
7503			${DECLARATIONS}
7504
7505			void main()
7506			{
7507				${SETUP}
7508				out0 = mat3(in0);
7509				${OUTPUT}
7510			}
7511		""
7512	end
7513
7514	case mat2x3_to_mat3x2
7515		version 310 es
7516		values
7517		{
7518			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7519			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, 32.0, 12.5, 0.0208333333333, 0.0, 0.0) ];
7520		}
7521
7522		both ""
7523			#version 310 es
7524			precision highp float;
7525			precision highp int;
7526
7527			${DECLARATIONS}
7528
7529			void main()
7530			{
7531				${SETUP}
7532				out0 = mat3x2(in0);
7533				${OUTPUT}
7534			}
7535		""
7536	end
7537
7538	case mat2x3_to_mat2x4
7539		version 310 es
7540		values
7541		{
7542			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7543			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, 32.0, 0.125, 0.0, 12.5, 0.0208333333333, 0.0625, 0.0) ];
7544		}
7545
7546		both ""
7547			#version 310 es
7548			precision highp float;
7549			precision highp int;
7550
7551			${DECLARATIONS}
7552
7553			void main()
7554			{
7555				${SETUP}
7556				out0 = mat2x4(in0);
7557				${OUTPUT}
7558			}
7559		""
7560	end
7561
7562	case mat2x3_to_mat2x3
7563		version 310 es
7564		values
7565		{
7566			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7567			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7568		}
7569
7570		both ""
7571			#version 310 es
7572			precision highp float;
7573			precision highp int;
7574
7575			${DECLARATIONS}
7576
7577			void main()
7578			{
7579				${SETUP}
7580				out0 = mat2x3(in0);
7581				${OUTPUT}
7582			}
7583		""
7584	end
7585
7586	case mat2x3_to_mat2
7587		version 310 es
7588		values
7589		{
7590			input mat2x3 in0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625) ];
7591			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7592		}
7593
7594		both ""
7595			#version 310 es
7596			precision highp float;
7597			precision highp int;
7598
7599			${DECLARATIONS}
7600
7601			void main()
7602			{
7603				${SETUP}
7604				out0 = mat2(in0);
7605				${OUTPUT}
7606			}
7607		""
7608	end
7609
7610	case mat2_to_mat4
7611		version 310 es
7612		values
7613		{
7614			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7615			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(8.0, -24.0, 0.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(0.125, 0.03125, 0.0, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(-18.725, -0.0125, 0.0, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) ];
7616		}
7617
7618		both ""
7619			#version 310 es
7620			precision highp float;
7621			precision highp int;
7622
7623			${DECLARATIONS}
7624
7625			void main()
7626			{
7627				${SETUP}
7628				out0 = mat4(in0);
7629				${OUTPUT}
7630			}
7631		""
7632	end
7633
7634	case mat2_to_mat4x3
7635		version 310 es
7636		values
7637		{
7638			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7639			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(8.0, -24.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(0.125, 0.03125, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat4x3(-18.725, -0.0125, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) ];
7640		}
7641
7642		both ""
7643			#version 310 es
7644			precision highp float;
7645			precision highp int;
7646
7647			${DECLARATIONS}
7648
7649			void main()
7650			{
7651				${SETUP}
7652				out0 = mat4x3(in0);
7653				${OUTPUT}
7654			}
7655		""
7656	end
7657
7658	case mat2_to_mat4x2
7659		version 310 es
7660		values
7661		{
7662			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7663			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, -0.75, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0) | mat4x2(6.5, -0.75, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0) | mat4x2(8.0, -24.0, 16.0, -16.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(0.125, 0.03125, 0.0625, 0.015625, 0.0, 0.0, 0.0, 0.0) | mat4x2(-18.725, -0.0125, -0.5, 19.975, 0.0, 0.0, 0.0, 0.0) ];
7664		}
7665
7666		both ""
7667			#version 310 es
7668			precision highp float;
7669			precision highp int;
7670
7671			${DECLARATIONS}
7672
7673			void main()
7674			{
7675				${SETUP}
7676				out0 = mat4x2(in0);
7677				${OUTPUT}
7678			}
7679		""
7680	end
7681
7682	case mat2_to_mat3x4
7683		version 310 es
7684		values
7685		{
7686			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7687			output mat3x4 out0 = [ mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(8.0, -24.0, 0.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(0.125, 0.03125, 0.0, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(-18.725, -0.0125, 0.0, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) ];
7688		}
7689
7690		both ""
7691			#version 310 es
7692			precision highp float;
7693			precision highp int;
7694
7695			${DECLARATIONS}
7696
7697			void main()
7698			{
7699				${SETUP}
7700				out0 = mat3x4(in0);
7701				${OUTPUT}
7702			}
7703		""
7704	end
7705
7706	case mat2_to_mat3
7707		version 310 es
7708		values
7709		{
7710			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7711			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0) | mat3(8.0, -24.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 1.0) | mat3(0.125, 0.03125, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 1.0) | mat3(-18.725, -0.0125, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 1.0) ];
7712		}
7713
7714		both ""
7715			#version 310 es
7716			precision highp float;
7717			precision highp int;
7718
7719			${DECLARATIONS}
7720
7721			void main()
7722			{
7723				${SETUP}
7724				out0 = mat3(in0);
7725				${OUTPUT}
7726			}
7727		""
7728	end
7729
7730	case mat2_to_mat3x2
7731		version 310 es
7732		values
7733		{
7734			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7735			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat3x2(6.5, -0.75, 12.5, 9.975, 0.0, 0.0) | mat3x2(6.5, -0.75, 12.5, 9.975, 0.0, 0.0) | mat3x2(8.0, -24.0, 16.0, -16.0, 0.0, 0.0) | mat3x2(0.125, 0.03125, 0.0625, 0.015625, 0.0, 0.0) | mat3x2(-18.725, -0.0125, -0.5, 19.975, 0.0, 0.0) ];
7736		}
7737
7738		both ""
7739			#version 310 es
7740			precision highp float;
7741			precision highp int;
7742
7743			${DECLARATIONS}
7744
7745			void main()
7746			{
7747				${SETUP}
7748				out0 = mat3x2(in0);
7749				${OUTPUT}
7750			}
7751		""
7752	end
7753
7754	case mat2_to_mat2x4
7755		version 310 es
7756		values
7757		{
7758			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7759			output mat2x4 out0 = [ mat2x4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) | mat2x4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0) | mat2x4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0) | mat2x4(8.0, -24.0, 0.0, 0.0, 16.0, -16.0, 0.0, 0.0) | mat2x4(0.125, 0.03125, 0.0, 0.0, 0.0625, 0.015625, 0.0, 0.0) | mat2x4(-18.725, -0.0125, 0.0, 0.0, -0.5, 19.975, 0.0, 0.0) ];
7760		}
7761
7762		both ""
7763			#version 310 es
7764			precision highp float;
7765			precision highp int;
7766
7767			${DECLARATIONS}
7768
7769			void main()
7770			{
7771				${SETUP}
7772				out0 = mat2x4(in0);
7773				${OUTPUT}
7774			}
7775		""
7776	end
7777
7778	case mat2_to_mat2x3
7779		version 310 es
7780		values
7781		{
7782			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7783			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat2x3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0) | mat2x3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0) | mat2x3(8.0, -24.0, 0.0, 16.0, -16.0, 0.0) | mat2x3(0.125, 0.03125, 0.0, 0.0625, 0.015625, 0.0) | mat2x3(-18.725, -0.0125, 0.0, -0.5, 19.975, 0.0) ];
7784		}
7785
7786		both ""
7787			#version 310 es
7788			precision highp float;
7789			precision highp int;
7790
7791			${DECLARATIONS}
7792
7793			void main()
7794			{
7795				${SETUP}
7796				out0 = mat2x3(in0);
7797				${OUTPUT}
7798			}
7799		""
7800	end
7801
7802	case mat2_to_mat2
7803		version 310 es
7804		values
7805		{
7806			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7807			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
7808		}
7809
7810		both ""
7811			#version 310 es
7812			precision highp float;
7813			precision highp int;
7814
7815			${DECLARATIONS}
7816
7817			void main()
7818			{
7819				${SETUP}
7820				out0 = mat2(in0);
7821				${OUTPUT}
7822			}
7823		""
7824	end
7825
7826
7827end # matrix_to_matrix
7828group vector_combine "Vector Combine Constructors"
7829
7830	case vec2_vec2_to_vec4
7831		version 310 es
7832		values
7833		{
7834			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
7835			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
7836			output vec4 out0 = [ vec4(-0.5, -2.25, -32.0, 64.0) | vec4(-32.0, 64.0, 1.0, 1.25) | vec4(1.0, 1.25, 0.0, 0.5) | vec4(0.0, 0.5, -0.5, -2.25) | vec4(-0.75, -0.0322580645161, -0.75, -0.0322580645161) ];
7837		}
7838
7839		both ""
7840			#version 310 es
7841			precision highp float;
7842			precision highp int;
7843
7844			${DECLARATIONS}
7845
7846			void main()
7847			{
7848				${SETUP}
7849				out0 = vec4(in0, in1);
7850				${OUTPUT}
7851			}
7852		""
7853	end
7854
7855	case vec2_vec2_to_ivec4
7856		version 310 es
7857		values
7858		{
7859			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
7860			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
7861			output ivec4 out0 = [ ivec4(0, -2, -32, 64) | ivec4(-32, 64, 1, 1) | ivec4(1, 1, 0, 0) | ivec4(0, 0, 0, -2) | ivec4(0, 0, 0, 0) ];
7862		}
7863
7864		both ""
7865			#version 310 es
7866			precision highp float;
7867			precision highp int;
7868
7869			${DECLARATIONS}
7870
7871			void main()
7872			{
7873				${SETUP}
7874				out0 = ivec4(in0, in1);
7875				${OUTPUT}
7876			}
7877		""
7878	end
7879
7880	case vec2_vec2_to_bvec4
7881		version 310 es
7882		values
7883		{
7884			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
7885			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
7886			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, false, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) ];
7887		}
7888
7889		both ""
7890			#version 310 es
7891			precision highp float;
7892			precision highp int;
7893
7894			${DECLARATIONS}
7895
7896			void main()
7897			{
7898				${SETUP}
7899				out0 = bvec4(in0, in1);
7900				${OUTPUT}
7901			}
7902		""
7903	end
7904
7905	case bvec2_bvec2_to_vec4
7906		version 310 es
7907		values
7908		{
7909			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
7910			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
7911			output vec4 out0 = [ vec4(0.0, 0.0, 1.0, 0.0) | vec4(1.0, 0.0, 0.0, 0.0) | vec4(0.0, 1.0, 0.0, 1.0) | vec4(0.0, 0.0, 1.0, 1.0) | vec4(1.0, 1.0, 0.0, 0.0) ];
7912		}
7913
7914		both ""
7915			#version 310 es
7916			precision highp float;
7917			precision highp int;
7918
7919			${DECLARATIONS}
7920
7921			void main()
7922			{
7923				${SETUP}
7924				out0 = vec4(in0, in1);
7925				${OUTPUT}
7926			}
7927		""
7928	end
7929
7930	case bvec2_bvec2_to_ivec4
7931		version 310 es
7932		values
7933		{
7934			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
7935			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
7936			output ivec4 out0 = [ ivec4(0, 0, 1, 0) | ivec4(1, 0, 0, 0) | ivec4(0, 1, 0, 1) | ivec4(0, 0, 1, 1) | ivec4(1, 1, 0, 0) ];
7937		}
7938
7939		both ""
7940			#version 310 es
7941			precision highp float;
7942			precision highp int;
7943
7944			${DECLARATIONS}
7945
7946			void main()
7947			{
7948				${SETUP}
7949				out0 = ivec4(in0, in1);
7950				${OUTPUT}
7951			}
7952		""
7953	end
7954
7955	case bvec2_bvec2_to_bvec4
7956		version 310 es
7957		values
7958		{
7959			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
7960			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
7961			output bvec4 out0 = [ bvec4(false, false, true, false) | bvec4(true, false, false, false) | bvec4(false, true, false, true) | bvec4(false, false, true, true) | bvec4(true, true, false, false) ];
7962		}
7963
7964		both ""
7965			#version 310 es
7966			precision highp float;
7967			precision highp int;
7968
7969			${DECLARATIONS}
7970
7971			void main()
7972			{
7973				${SETUP}
7974				out0 = bvec4(in0, in1);
7975				${OUTPUT}
7976			}
7977		""
7978	end
7979
7980	case float_float_float_float_to_vec4
7981		version 310 es
7982		values
7983		{
7984			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
7985			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
7986			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
7987			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
7988			output vec4 out0 = [ vec4(1.0, 0.0, 3.5, 3.5) | vec4(0.0, 36.8125, 36.8125, 36.8125) | vec4(-0.5, -8.25, -8.25, 1.0) | vec4(-8.25, 2.0, 1.0, -8.25) | vec4(3.5, 3.5, 2.0, 2.0) | vec4(-20.125, 1.0, 0.0, 0.0) | vec4(36.8125, -20.125, -20.125, -0.5) | vec4(2.0, -0.5, -0.5, -20.125) ];
7989		}
7990
7991		both ""
7992			#version 310 es
7993			precision highp float;
7994			precision highp int;
7995
7996			${DECLARATIONS}
7997
7998			void main()
7999			{
8000				${SETUP}
8001				out0 = vec4(in0, in1, in2, in3);
8002				${OUTPUT}
8003			}
8004		""
8005	end
8006
8007	case float_float_float_float_to_ivec4
8008		version 310 es
8009		values
8010		{
8011			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
8012			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
8013			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
8014			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
8015			output ivec4 out0 = [ ivec4(1, 0, 3, 3) | ivec4(0, 36, 36, 36) | ivec4(0, -8, -8, 1) | ivec4(-8, 2, 1, -8) | ivec4(3, 3, 2, 2) | ivec4(-20, 1, 0, 0) | ivec4(36, -20, -20, 0) | ivec4(2, 0, 0, -20) ];
8016		}
8017
8018		both ""
8019			#version 310 es
8020			precision highp float;
8021			precision highp int;
8022
8023			${DECLARATIONS}
8024
8025			void main()
8026			{
8027				${SETUP}
8028				out0 = ivec4(in0, in1, in2, in3);
8029				${OUTPUT}
8030			}
8031		""
8032	end
8033
8034	case float_float_float_float_to_bvec4
8035		version 310 es
8036		values
8037		{
8038			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
8039			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
8040			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
8041			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
8042			output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
8043		}
8044
8045		both ""
8046			#version 310 es
8047			precision highp float;
8048			precision highp int;
8049
8050			${DECLARATIONS}
8051
8052			void main()
8053			{
8054				${SETUP}
8055				out0 = bvec4(in0, in1, in2, in3);
8056				${OUTPUT}
8057			}
8058		""
8059	end
8060
8061	case int_int_int_int_to_vec4
8062		version 310 es
8063		values
8064		{
8065			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
8066			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
8067			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
8068			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
8069			output vec4 out0 = [ vec4(-12.0, 2.0, 11.0, -192.0) | vec4(-66.0, 5.0, 255.0, -66.0) | vec4(2.0, -66.0, 5.0, 8.0) | vec4(5.0, 11.0, 8.0, -12.0) | vec4(8.0, -192.0, 2.0, 1.0) | vec4(-192.0, 8.0, -192.0, 2.0) | vec4(255.0, -12.0, -12.0, 0.0) | vec4(1.0, 1.0, -66.0, 255.0) | vec4(0.0, 255.0, 1.0, 5.0) | vec4(11.0, 0.0, 0.0, 11.0) ];
8070		}
8071
8072		both ""
8073			#version 310 es
8074			precision highp float;
8075			precision highp int;
8076
8077			${DECLARATIONS}
8078
8079			void main()
8080			{
8081				${SETUP}
8082				out0 = vec4(in0, in1, in2, in3);
8083				${OUTPUT}
8084			}
8085		""
8086	end
8087
8088	case int_int_int_int_to_ivec4
8089		version 310 es
8090		values
8091		{
8092			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
8093			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
8094			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
8095			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
8096			output ivec4 out0 = [ ivec4(-12, 2, 11, -192) | ivec4(-66, 5, 255, -66) | ivec4(2, -66, 5, 8) | ivec4(5, 11, 8, -12) | ivec4(8, -192, 2, 1) | ivec4(-192, 8, -192, 2) | ivec4(255, -12, -12, 0) | ivec4(1, 1, -66, 255) | ivec4(0, 255, 1, 5) | ivec4(11, 0, 0, 11) ];
8097		}
8098
8099		both ""
8100			#version 310 es
8101			precision highp float;
8102			precision highp int;
8103
8104			${DECLARATIONS}
8105
8106			void main()
8107			{
8108				${SETUP}
8109				out0 = ivec4(in0, in1, in2, in3);
8110				${OUTPUT}
8111			}
8112		""
8113	end
8114
8115	case int_int_int_int_to_bvec4
8116		version 310 es
8117		values
8118		{
8119			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
8120			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
8121			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
8122			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
8123			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, false) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, false, false, true) ];
8124		}
8125
8126		both ""
8127			#version 310 es
8128			precision highp float;
8129			precision highp int;
8130
8131			${DECLARATIONS}
8132
8133			void main()
8134			{
8135				${SETUP}
8136				out0 = bvec4(in0, in1, in2, in3);
8137				${OUTPUT}
8138			}
8139		""
8140	end
8141
8142	case uint_uint_uint_uint_to_vec4
8143		version 310 es
8144		values
8145		{
8146			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
8147			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
8148			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
8149			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
8150			output vec4 out0 = [ vec4(193.0, 12.0, 9.0, 3.0) | vec4(3.0, 45.0, 8.0, 9.0) | vec4(255.0, 193.0, 12.0, 12.0) | vec4(8.0, 2.0, 2.0, 2.0) | vec4(10.0, 8.0, 255.0, 255.0) | vec4(9.0, 255.0, 45.0, 193.0) | vec4(2.0, 0.0, 3.0, 0.0) | vec4(12.0, 3.0, 0.0, 10.0) | vec4(0.0, 9.0, 193.0, 45.0) | vec4(45.0, 10.0, 10.0, 8.0) ];
8151		}
8152
8153		both ""
8154			#version 310 es
8155			precision highp float;
8156			precision highp int;
8157
8158			${DECLARATIONS}
8159
8160			void main()
8161			{
8162				${SETUP}
8163				out0 = vec4(in0, in1, in2, in3);
8164				${OUTPUT}
8165			}
8166		""
8167	end
8168
8169	case uint_uint_uint_uint_to_ivec4
8170		version 310 es
8171		values
8172		{
8173			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
8174			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
8175			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
8176			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
8177			output ivec4 out0 = [ ivec4(193, 12, 9, 3) | ivec4(3, 45, 8, 9) | ivec4(255, 193, 12, 12) | ivec4(8, 2, 2, 2) | ivec4(10, 8, 255, 255) | ivec4(9, 255, 45, 193) | ivec4(2, 0, 3, 0) | ivec4(12, 3, 0, 10) | ivec4(0, 9, 193, 45) | ivec4(45, 10, 10, 8) ];
8178		}
8179
8180		both ""
8181			#version 310 es
8182			precision highp float;
8183			precision highp int;
8184
8185			${DECLARATIONS}
8186
8187			void main()
8188			{
8189				${SETUP}
8190				out0 = ivec4(in0, in1, in2, in3);
8191				${OUTPUT}
8192			}
8193		""
8194	end
8195
8196	case uint_uint_uint_uint_to_bvec4
8197		version 310 es
8198		values
8199		{
8200			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
8201			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
8202			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
8203			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
8204			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, false, true, false) | bvec4(true, true, false, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) ];
8205		}
8206
8207		both ""
8208			#version 310 es
8209			precision highp float;
8210			precision highp int;
8211
8212			${DECLARATIONS}
8213
8214			void main()
8215			{
8216				${SETUP}
8217				out0 = bvec4(in0, in1, in2, in3);
8218				${OUTPUT}
8219			}
8220		""
8221	end
8222
8223	case bool_bool_bool_bool_to_vec4
8224		version 310 es
8225		values
8226		{
8227			input bool in0 = [ true | false ];
8228			input bool in1 = [ true | false ];
8229			input bool in2 = [ false | true ];
8230			input bool in3 = [ false | true ];
8231			output vec4 out0 = [ vec4(1.0, 1.0, 0.0, 0.0) | vec4(0.0, 0.0, 1.0, 1.0) ];
8232		}
8233
8234		both ""
8235			#version 310 es
8236			precision highp float;
8237			precision highp int;
8238
8239			${DECLARATIONS}
8240
8241			void main()
8242			{
8243				${SETUP}
8244				out0 = vec4(in0, in1, in2, in3);
8245				${OUTPUT}
8246			}
8247		""
8248	end
8249
8250	case bool_bool_bool_bool_to_ivec4
8251		version 310 es
8252		values
8253		{
8254			input bool in0 = [ true | false ];
8255			input bool in1 = [ true | false ];
8256			input bool in2 = [ false | true ];
8257			input bool in3 = [ false | true ];
8258			output ivec4 out0 = [ ivec4(1, 1, 0, 0) | ivec4(0, 0, 1, 1) ];
8259		}
8260
8261		both ""
8262			#version 310 es
8263			precision highp float;
8264			precision highp int;
8265
8266			${DECLARATIONS}
8267
8268			void main()
8269			{
8270				${SETUP}
8271				out0 = ivec4(in0, in1, in2, in3);
8272				${OUTPUT}
8273			}
8274		""
8275	end
8276
8277	case bool_bool_bool_bool_to_bvec4
8278		version 310 es
8279		values
8280		{
8281			input bool in0 = [ true | false ];
8282			input bool in1 = [ true | false ];
8283			input bool in2 = [ false | true ];
8284			input bool in3 = [ false | true ];
8285			output bvec4 out0 = [ bvec4(true, true, false, false) | bvec4(false, false, true, true) ];
8286		}
8287
8288		both ""
8289			#version 310 es
8290			precision highp float;
8291			precision highp int;
8292
8293			${DECLARATIONS}
8294
8295			void main()
8296			{
8297				${SETUP}
8298				out0 = bvec4(in0, in1, in2, in3);
8299				${OUTPUT}
8300			}
8301		""
8302	end
8303
8304	case bool_float_int_bool_to_vec4
8305		version 310 es
8306		values
8307		{
8308			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
8309			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
8310			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
8311			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
8312			output vec4 out0 = [ vec4(1.0, 36.8125, -66.0, 1.0) | vec4(1.0, 0.0, 2.0, 1.0) | vec4(0.0, -8.25, 255.0, 0.0) | vec4(0.0, 1.0, 11.0, 0.0) | vec4(0.0, -0.5, 1.0, 1.0) | vec4(1.0, 0.0, 8.0, 1.0) | vec4(0.0, 2.0, -192.0, 0.0) | vec4(0.0, -20.125, -12.0, 1.0) | vec4(1.0, 3.5, 0.0, 0.0) | vec4(1.0, 1.0, 5.0, 0.0) ];
8313		}
8314
8315		both ""
8316			#version 310 es
8317			precision highp float;
8318			precision highp int;
8319
8320			${DECLARATIONS}
8321
8322			void main()
8323			{
8324				${SETUP}
8325				out0 = vec4(in0, in1, in2, in3);
8326				${OUTPUT}
8327			}
8328		""
8329	end
8330
8331	case bool_float_int_bool_to_ivec4
8332		version 310 es
8333		values
8334		{
8335			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
8336			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
8337			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
8338			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
8339			output ivec4 out0 = [ ivec4(1, 36, -66, 1) | ivec4(1, 0, 2, 1) | ivec4(0, -8, 255, 0) | ivec4(0, 1, 11, 0) | ivec4(0, 0, 1, 1) | ivec4(1, 0, 8, 1) | ivec4(0, 2, -192, 0) | ivec4(0, -20, -12, 1) | ivec4(1, 3, 0, 0) | ivec4(1, 1, 5, 0) ];
8340		}
8341
8342		both ""
8343			#version 310 es
8344			precision highp float;
8345			precision highp int;
8346
8347			${DECLARATIONS}
8348
8349			void main()
8350			{
8351				${SETUP}
8352				out0 = ivec4(in0, in1, in2, in3);
8353				${OUTPUT}
8354			}
8355		""
8356	end
8357
8358	case bool_float_int_bool_to_bvec4
8359		version 310 es
8360		values
8361		{
8362			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
8363			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
8364			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
8365			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
8366			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, false, true, true) | bvec4(false, true, true, false) | bvec4(false, true, true, false) | bvec4(false, true, true, true) | bvec4(true, false, true, true) | bvec4(false, true, true, false) | bvec4(false, true, true, true) | bvec4(true, true, false, false) | bvec4(true, true, true, false) ];
8367		}
8368
8369		both ""
8370			#version 310 es
8371			precision highp float;
8372			precision highp int;
8373
8374			${DECLARATIONS}
8375
8376			void main()
8377			{
8378				${SETUP}
8379				out0 = bvec4(in0, in1, in2, in3);
8380				${OUTPUT}
8381			}
8382		""
8383	end
8384
8385	case vec2_ivec2_to_vec4
8386		version 310 es
8387		values
8388		{
8389			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) ];
8390			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
8391			output vec4 out0 = [ vec4(0.0, 0.5, 0.0, 0.0) | vec4(-0.75, -0.0322580645161, 0.0, -2.0) | vec4(-0.5, -2.25, 0.0, 0.0) | vec4(-32.0, 64.0, -32.0, 64.0) | vec4(1.0, 1.25, 1.0, 1.0) ];
8392		}
8393
8394		both ""
8395			#version 310 es
8396			precision highp float;
8397			precision highp int;
8398
8399			${DECLARATIONS}
8400
8401			void main()
8402			{
8403				${SETUP}
8404				out0 = vec4(in0, in1);
8405				${OUTPUT}
8406			}
8407		""
8408	end
8409
8410	case vec2_ivec2_to_ivec4
8411		version 310 es
8412		values
8413		{
8414			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) ];
8415			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
8416			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, -2) | ivec4(0, -2, 0, 0) | ivec4(-32, 64, -32, 64) | ivec4(1, 1, 1, 1) ];
8417		}
8418
8419		both ""
8420			#version 310 es
8421			precision highp float;
8422			precision highp int;
8423
8424			${DECLARATIONS}
8425
8426			void main()
8427			{
8428				${SETUP}
8429				out0 = ivec4(in0, in1);
8430				${OUTPUT}
8431			}
8432		""
8433	end
8434
8435	case vec2_ivec2_to_bvec4
8436		version 310 es
8437		values
8438		{
8439			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) ];
8440			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
8441			output bvec4 out0 = [ bvec4(false, true, false, false) | bvec4(true, true, false, true) | bvec4(true, true, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
8442		}
8443
8444		both ""
8445			#version 310 es
8446			precision highp float;
8447			precision highp int;
8448
8449			${DECLARATIONS}
8450
8451			void main()
8452			{
8453				${SETUP}
8454				out0 = bvec4(in0, in1);
8455				${OUTPUT}
8456			}
8457		""
8458	end
8459
8460	case vec2_bvec2_to_vec4
8461		version 310 es
8462		values
8463		{
8464			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
8465			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
8466			output vec4 out0 = [ vec4(-0.75, -0.0322580645161, 0.0, 1.0) | vec4(-32.0, 64.0, 0.0, 0.0) | vec4(1.0, 1.25, 0.0, 0.0) | vec4(0.0, 0.5, 1.0, 1.0) | vec4(-0.5, -2.25, 1.0, 0.0) ];
8467		}
8468
8469		both ""
8470			#version 310 es
8471			precision highp float;
8472			precision highp int;
8473
8474			${DECLARATIONS}
8475
8476			void main()
8477			{
8478				${SETUP}
8479				out0 = vec4(in0, in1);
8480				${OUTPUT}
8481			}
8482		""
8483	end
8484
8485	case vec2_bvec2_to_ivec4
8486		version 310 es
8487		values
8488		{
8489			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
8490			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
8491			output ivec4 out0 = [ ivec4(0, 0, 0, 1) | ivec4(-32, 64, 0, 0) | ivec4(1, 1, 0, 0) | ivec4(0, 0, 1, 1) | ivec4(0, -2, 1, 0) ];
8492		}
8493
8494		both ""
8495			#version 310 es
8496			precision highp float;
8497			precision highp int;
8498
8499			${DECLARATIONS}
8500
8501			void main()
8502			{
8503				${SETUP}
8504				out0 = ivec4(in0, in1);
8505				${OUTPUT}
8506			}
8507		""
8508	end
8509
8510	case vec2_bvec2_to_bvec4
8511		version 310 es
8512		values
8513		{
8514			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
8515			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
8516			output bvec4 out0 = [ bvec4(true, true, false, true) | bvec4(true, true, false, false) | bvec4(true, true, false, false) | bvec4(false, true, true, true) | bvec4(true, true, true, false) ];
8517		}
8518
8519		both ""
8520			#version 310 es
8521			precision highp float;
8522			precision highp int;
8523
8524			${DECLARATIONS}
8525
8526			void main()
8527			{
8528				${SETUP}
8529				out0 = bvec4(in0, in1);
8530				${OUTPUT}
8531			}
8532		""
8533	end
8534
8535	case bvec3_float_to_vec4
8536		version 310 es
8537		values
8538		{
8539			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) ];
8540			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
8541			output vec4 out0 = [ vec4(1.0, 0.0, 0.0, -0.5) | vec4(0.0, 0.0, 0.0, 3.5) | vec4(0.0, 1.0, 0.0, 2.0) | vec4(1.0, 1.0, 1.0, 0.0) | vec4(0.0, 0.0, 0.0, -8.25) | vec4(0.0, 0.0, 0.0, 1.0) | vec4(1.0, 0.0, 0.0, 36.8125) | vec4(0.0, 1.0, 0.0, -20.125) ];
8542		}
8543
8544		both ""
8545			#version 310 es
8546			precision highp float;
8547			precision highp int;
8548
8549			${DECLARATIONS}
8550
8551			void main()
8552			{
8553				${SETUP}
8554				out0 = vec4(in0, in1);
8555				${OUTPUT}
8556			}
8557		""
8558	end
8559
8560	case bvec3_float_to_ivec4
8561		version 310 es
8562		values
8563		{
8564			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) ];
8565			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
8566			output ivec4 out0 = [ ivec4(1, 0, 0, 0) | ivec4(0, 0, 0, 3) | ivec4(0, 1, 0, 2) | ivec4(1, 1, 1, 0) | ivec4(0, 0, 0, -8) | ivec4(0, 0, 0, 1) | ivec4(1, 0, 0, 36) | ivec4(0, 1, 0, -20) ];
8567		}
8568
8569		both ""
8570			#version 310 es
8571			precision highp float;
8572			precision highp int;
8573
8574			${DECLARATIONS}
8575
8576			void main()
8577			{
8578				${SETUP}
8579				out0 = ivec4(in0, in1);
8580				${OUTPUT}
8581			}
8582		""
8583	end
8584
8585	case bvec3_float_to_bvec4
8586		version 310 es
8587		values
8588		{
8589			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) ];
8590			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
8591			output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, true, false, true) | bvec4(true, true, true, false) | bvec4(false, false, false, true) | bvec4(false, false, false, true) | bvec4(true, false, false, true) | bvec4(false, true, false, true) ];
8592		}
8593
8594		both ""
8595			#version 310 es
8596			precision highp float;
8597			precision highp int;
8598
8599			${DECLARATIONS}
8600
8601			void main()
8602			{
8603				${SETUP}
8604				out0 = bvec4(in0, in1);
8605				${OUTPUT}
8606			}
8607		""
8608	end
8609
8610	case vec3_float_to_vec4
8611		version 310 es
8612		values
8613		{
8614			input vec3 in0 = [ vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) ];
8615			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
8616			output vec4 out0 = [ vec4(-32.0, 64.0, -51.0, -0.5) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.0) | vec4(1.0, 1.25, 1.125, 3.5) | vec4(-0.5, -2.25, -4.875, -20.125) | vec4(0.0, 0.5, 0.75, 2.0) | vec4(-0.5, -2.25, -4.875, -8.25) | vec4(0.0, 0.5, 0.75, 1.0) | vec4(1.0, 1.25, 1.125, 36.8125) ];
8617		}
8618
8619		both ""
8620			#version 310 es
8621			precision highp float;
8622			precision highp int;
8623
8624			${DECLARATIONS}
8625
8626			void main()
8627			{
8628				${SETUP}
8629				out0 = vec4(in0, in1);
8630				${OUTPUT}
8631			}
8632		""
8633	end
8634
8635	case vec3_float_to_ivec4
8636		version 310 es
8637		values
8638		{
8639			input vec3 in0 = [ vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) ];
8640			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
8641			output ivec4 out0 = [ ivec4(-32, 64, -51, 0) | ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 3) | ivec4(0, -2, -4, -20) | ivec4(0, 0, 0, 2) | ivec4(0, -2, -4, -8) | ivec4(0, 0, 0, 1) | ivec4(1, 1, 1, 36) ];
8642		}
8643
8644		both ""
8645			#version 310 es
8646			precision highp float;
8647			precision highp int;
8648
8649			${DECLARATIONS}
8650
8651			void main()
8652			{
8653				${SETUP}
8654				out0 = ivec4(in0, in1);
8655				${OUTPUT}
8656			}
8657		""
8658	end
8659
8660	case vec3_float_to_bvec4
8661		version 310 es
8662		values
8663		{
8664			input vec3 in0 = [ vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) ];
8665			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
8666			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) ];
8667		}
8668
8669		both ""
8670			#version 310 es
8671			precision highp float;
8672			precision highp int;
8673
8674			${DECLARATIONS}
8675
8676			void main()
8677			{
8678				${SETUP}
8679				out0 = bvec4(in0, in1);
8680				${OUTPUT}
8681			}
8682		""
8683	end
8684
8685	case int_ivec2_int_to_vec4
8686		version 310 es
8687		values
8688		{
8689			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
8690			input ivec2 in1 = [ ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) ];
8691			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
8692			output vec4 out0 = [ vec4(-12.0, 0.0, -2.0, 1.0) | vec4(11.0, -32.0, 64.0, 11.0) | vec4(8.0, 0.0, 0.0, 2.0) | vec4(255.0, 0.0, -2.0, -66.0) | vec4(0.0, 1.0, 1.0, -192.0) | vec4(1.0, 0.0, 0.0, 0.0) | vec4(-66.0, -32.0, 64.0, -12.0) | vec4(2.0, 1.0, 1.0, 255.0) | vec4(-192.0, 0.0, 0.0, 5.0) | vec4(5.0, 0.0, 0.0, 8.0) ];
8693		}
8694
8695		both ""
8696			#version 310 es
8697			precision highp float;
8698			precision highp int;
8699
8700			${DECLARATIONS}
8701
8702			void main()
8703			{
8704				${SETUP}
8705				out0 = vec4(in0, in1, in2);
8706				${OUTPUT}
8707			}
8708		""
8709	end
8710
8711	case int_ivec2_int_to_ivec4
8712		version 310 es
8713		values
8714		{
8715			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
8716			input ivec2 in1 = [ ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) ];
8717			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
8718			output ivec4 out0 = [ ivec4(-12, 0, -2, 1) | ivec4(11, -32, 64, 11) | ivec4(8, 0, 0, 2) | ivec4(255, 0, -2, -66) | ivec4(0, 1, 1, -192) | ivec4(1, 0, 0, 0) | ivec4(-66, -32, 64, -12) | ivec4(2, 1, 1, 255) | ivec4(-192, 0, 0, 5) | ivec4(5, 0, 0, 8) ];
8719		}
8720
8721		both ""
8722			#version 310 es
8723			precision highp float;
8724			precision highp int;
8725
8726			${DECLARATIONS}
8727
8728			void main()
8729			{
8730				${SETUP}
8731				out0 = ivec4(in0, in1, in2);
8732				${OUTPUT}
8733			}
8734		""
8735	end
8736
8737	case int_ivec2_int_to_bvec4
8738		version 310 es
8739		values
8740		{
8741			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
8742			input ivec2 in1 = [ ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) ];
8743			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
8744			output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(true, false, true, true) | bvec4(false, true, true, true) | bvec4(true, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(true, false, false, true) ];
8745		}
8746
8747		both ""
8748			#version 310 es
8749			precision highp float;
8750			precision highp int;
8751
8752			${DECLARATIONS}
8753
8754			void main()
8755			{
8756				${SETUP}
8757				out0 = bvec4(in0, in1, in2);
8758				${OUTPUT}
8759			}
8760		""
8761	end
8762
8763	case bool_float_ivec2_to_vec4
8764		version 310 es
8765		values
8766		{
8767			input bool in0 = [ true | false | false | false | true | true | true | false ];
8768			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
8769			input ivec2 in2 = [ ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
8770			output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 0.0, -32.0, 64.0) | vec4(0.0, 2.0, 0.0, 0.0) | vec4(0.0, 3.5, 0.0, 0.0) | vec4(1.0, -20.125, 0.0, -2.0) | vec4(1.0, -0.5, 0.0, -2.0) | vec4(1.0, 36.8125, 0.0, 0.0) | vec4(0.0, -8.25, 1.0, 1.0) ];
8771		}
8772
8773		both ""
8774			#version 310 es
8775			precision highp float;
8776			precision highp int;
8777
8778			${DECLARATIONS}
8779
8780			void main()
8781			{
8782				${SETUP}
8783				out0 = vec4(in0, in1, in2);
8784				${OUTPUT}
8785			}
8786		""
8787	end
8788
8789	case bool_float_ivec2_to_ivec4
8790		version 310 es
8791		values
8792		{
8793			input bool in0 = [ true | false | false | false | true | true | true | false ];
8794			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
8795			input ivec2 in2 = [ ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
8796			output ivec4 out0 = [ ivec4(1, 1, 1, 1) | ivec4(0, 0, -32, 64) | ivec4(0, 2, 0, 0) | ivec4(0, 3, 0, 0) | ivec4(1, -20, 0, -2) | ivec4(1, 0, 0, -2) | ivec4(1, 36, 0, 0) | ivec4(0, -8, 1, 1) ];
8797		}
8798
8799		both ""
8800			#version 310 es
8801			precision highp float;
8802			precision highp int;
8803
8804			${DECLARATIONS}
8805
8806			void main()
8807			{
8808				${SETUP}
8809				out0 = ivec4(in0, in1, in2);
8810				${OUTPUT}
8811			}
8812		""
8813	end
8814
8815	case bool_float_ivec2_to_bvec4
8816		version 310 es
8817		values
8818		{
8819			input bool in0 = [ true | false | false | false | true | true | true | false ];
8820			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
8821			input ivec2 in2 = [ ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
8822			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, true, true) | bvec4(false, true, false, false) | bvec4(false, true, false, false) | bvec4(true, true, false, true) | bvec4(true, true, false, true) | bvec4(true, true, false, false) | bvec4(false, true, true, true) ];
8823		}
8824
8825		both ""
8826			#version 310 es
8827			precision highp float;
8828			precision highp int;
8829
8830			${DECLARATIONS}
8831
8832			void main()
8833			{
8834				${SETUP}
8835				out0 = bvec4(in0, in1, in2);
8836				${OUTPUT}
8837			}
8838		""
8839	end
8840
8841	case float_uvec3_to_vec4
8842		version 310 es
8843		values
8844		{
8845			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
8846			input uvec3 in1 = [ uvec3(0, 0, 0) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) ];
8847			output vec4 out0 = [ vec4(1.0, 0.0, 0.0, 0.0) | vec4(-20.125, 0.0, 0.0, 0.0) | vec4(-8.25, 1.0, 1.0, 1.0) | vec4(-0.5, 0.0, 2.0, 4.0) | vec4(0.0, 0.0, 0.0, 0.0) | vec4(2.0, 1.0, 1.0, 1.0) | vec4(3.5, 0.0, 2.0, 4.0) | vec4(36.8125, 32.0, 64.0, 51.0) ];
8848		}
8849
8850		both ""
8851			#version 310 es
8852			precision highp float;
8853			precision highp int;
8854
8855			${DECLARATIONS}
8856
8857			void main()
8858			{
8859				${SETUP}
8860				out0 = vec4(in0, in1);
8861				${OUTPUT}
8862			}
8863		""
8864	end
8865
8866	case float_uvec3_to_ivec4
8867		version 310 es
8868		values
8869		{
8870			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
8871			input uvec3 in1 = [ uvec3(0, 0, 0) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) ];
8872			output ivec4 out0 = [ ivec4(1, 0, 0, 0) | ivec4(-20, 0, 0, 0) | ivec4(-8, 1, 1, 1) | ivec4(0, 0, 2, 4) | ivec4(0, 0, 0, 0) | ivec4(2, 1, 1, 1) | ivec4(3, 0, 2, 4) | ivec4(36, 32, 64, 51) ];
8873		}
8874
8875		both ""
8876			#version 310 es
8877			precision highp float;
8878			precision highp int;
8879
8880			${DECLARATIONS}
8881
8882			void main()
8883			{
8884				${SETUP}
8885				out0 = ivec4(in0, in1);
8886				${OUTPUT}
8887			}
8888		""
8889	end
8890
8891	case float_uvec3_to_bvec4
8892		version 310 es
8893		values
8894		{
8895			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
8896			input uvec3 in1 = [ uvec3(0, 0, 0) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) ];
8897			output bvec4 out0 = [ bvec4(true, false, false, false) | bvec4(true, false, false, false) | bvec4(true, true, true, true) | bvec4(true, false, true, true) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, false, true, true) | bvec4(true, true, true, true) ];
8898		}
8899
8900		both ""
8901			#version 310 es
8902			precision highp float;
8903			precision highp int;
8904
8905			${DECLARATIONS}
8906
8907			void main()
8908			{
8909				${SETUP}
8910				out0 = bvec4(in0, in1);
8911				${OUTPUT}
8912			}
8913		""
8914	end
8915
8916	case int_uvec2_bool_to_vec4
8917		version 310 es
8918		values
8919		{
8920			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
8921			input uvec2 in1 = [ uvec2(0, 2) | uvec2(1, 1) | uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(32, 64) | uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 0) ];
8922			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
8923			output vec4 out0 = [ vec4(1.0, 0.0, 2.0, 0.0) | vec4(-192.0, 1.0, 1.0, 0.0) | vec4(-66.0, 0.0, 0.0, 1.0) | vec4(-12.0, 0.0, 2.0, 1.0) | vec4(0.0, 32.0, 64.0, 1.0) | vec4(2.0, 0.0, 0.0, 1.0) | vec4(11.0, 32.0, 64.0, 1.0) | vec4(8.0, 0.0, 0.0, 0.0) | vec4(255.0, 1.0, 1.0, 0.0) | vec4(5.0, 0.0, 0.0, 0.0) ];
8924		}
8925
8926		both ""
8927			#version 310 es
8928			precision highp float;
8929			precision highp int;
8930
8931			${DECLARATIONS}
8932
8933			void main()
8934			{
8935				${SETUP}
8936				out0 = vec4(in0, in1, in2);
8937				${OUTPUT}
8938			}
8939		""
8940	end
8941
8942	case int_uvec2_bool_to_ivec4
8943		version 310 es
8944		values
8945		{
8946			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
8947			input uvec2 in1 = [ uvec2(0, 2) | uvec2(1, 1) | uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(32, 64) | uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 0) ];
8948			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
8949			output ivec4 out0 = [ ivec4(1, 0, 2, 0) | ivec4(-192, 1, 1, 0) | ivec4(-66, 0, 0, 1) | ivec4(-12, 0, 2, 1) | ivec4(0, 32, 64, 1) | ivec4(2, 0, 0, 1) | ivec4(11, 32, 64, 1) | ivec4(8, 0, 0, 0) | ivec4(255, 1, 1, 0) | ivec4(5, 0, 0, 0) ];
8950		}
8951
8952		both ""
8953			#version 310 es
8954			precision highp float;
8955			precision highp int;
8956
8957			${DECLARATIONS}
8958
8959			void main()
8960			{
8961				${SETUP}
8962				out0 = ivec4(in0, in1, in2);
8963				${OUTPUT}
8964			}
8965		""
8966	end
8967
8968	case int_uvec2_bool_to_bvec4
8969		version 310 es
8970		values
8971		{
8972			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
8973			input uvec2 in1 = [ uvec2(0, 2) | uvec2(1, 1) | uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(32, 64) | uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 0) ];
8974			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
8975			output bvec4 out0 = [ bvec4(true, false, true, false) | bvec4(true, true, true, false) | bvec4(true, false, false, true) | bvec4(true, false, true, true) | bvec4(false, true, true, true) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(true, false, false, false) | bvec4(true, true, true, false) | bvec4(true, false, false, false) ];
8976		}
8977
8978		both ""
8979			#version 310 es
8980			precision highp float;
8981			precision highp int;
8982
8983			${DECLARATIONS}
8984
8985			void main()
8986			{
8987				${SETUP}
8988				out0 = bvec4(in0, in1, in2);
8989				${OUTPUT}
8990			}
8991		""
8992	end
8993
8994	case vec2_vec2_to_uvec4
8995		version 310 es
8996		values
8997		{
8998			input vec2 in0 = [ vec2(32.0, 64.0) | vec2(0.75, 0.0322580645161) | vec2(0.0, 0.5) | vec2(0.5, 2.25) | vec2(1.0, 1.25) ];
8999			input vec2 in1 = [ vec2(0.5, 2.25) | vec2(1.0, 1.25) | vec2(32.0, 64.0) | vec2(0.0, 0.5) | vec2(0.75, 0.0322580645161) ];
9000			output uvec4 out0 = [ uvec4(32, 64, 0, 2) | uvec4(0, 0, 1, 1) | uvec4(0, 0, 32, 64) | uvec4(0, 2, 0, 0) | uvec4(1, 1, 0, 0) ];
9001		}
9002
9003		both ""
9004			#version 310 es
9005			precision highp float;
9006			precision highp int;
9007
9008			${DECLARATIONS}
9009
9010			void main()
9011			{
9012				${SETUP}
9013				out0 = uvec4(in0, in1);
9014				${OUTPUT}
9015			}
9016		""
9017	end
9018
9019	case bvec2_bvec2_to_uvec4
9020		version 310 es
9021		values
9022		{
9023			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, false) ];
9024			input bvec2 in1 = [ bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) ];
9025			output uvec4 out0 = [ uvec4(1, 0, 1, 1) | uvec4(0, 1, 0, 0) | uvec4(1, 1, 1, 0) | uvec4(0, 0, 0, 1) | uvec4(0, 0, 0, 0) ];
9026		}
9027
9028		both ""
9029			#version 310 es
9030			precision highp float;
9031			precision highp int;
9032
9033			${DECLARATIONS}
9034
9035			void main()
9036			{
9037				${SETUP}
9038				out0 = uvec4(in0, in1);
9039				${OUTPUT}
9040			}
9041		""
9042	end
9043
9044	case float_float_float_float_to_uvec4
9045		version 310 es
9046		values
9047		{
9048			input float in0 = [ 2.0 | 36.8125 | 0.0 | 20.125 | 1.0 | 0.5 | 8.25 | 3.5 ];
9049			input float in1 = [ 1.0 | 8.25 | 2.0 | 20.125 | 36.8125 | 0.0 | 0.5 | 3.5 ];
9050			input float in2 = [ 0.0 | 8.25 | 2.0 | 1.0 | 36.8125 | 20.125 | 0.5 | 3.5 ];
9051			input float in3 = [ 1.0 | 8.25 | 0.0 | 2.0 | 20.125 | 3.5 | 0.5 | 36.8125 ];
9052			output uvec4 out0 = [ uvec4(2, 1, 0, 1) | uvec4(36, 8, 8, 8) | uvec4(0, 2, 2, 0) | uvec4(20, 20, 1, 2) | uvec4(1, 36, 36, 20) | uvec4(0, 0, 20, 3) | uvec4(8, 0, 0, 0) | uvec4(3, 3, 3, 36) ];
9053		}
9054
9055		both ""
9056			#version 310 es
9057			precision highp float;
9058			precision highp int;
9059
9060			${DECLARATIONS}
9061
9062			void main()
9063			{
9064				${SETUP}
9065				out0 = uvec4(in0, in1, in2, in3);
9066				${OUTPUT}
9067			}
9068		""
9069	end
9070
9071	case int_int_int_int_to_uvec4
9072		version 310 es
9073		values
9074		{
9075			input int in0 = [ 192 | 2 | 12 | 11 | 0 | 8 | 5 | 66 | 1 | 255 ];
9076			input int in1 = [ 66 | 12 | 5 | 1 | 0 | 192 | 8 | 255 | 11 | 2 ];
9077			input int in2 = [ 192 | 5 | 1 | 66 | 255 | 11 | 8 | 12 | 2 | 0 ];
9078			input int in3 = [ 255 | 5 | 11 | 12 | 2 | 1 | 66 | 0 | 8 | 192 ];
9079			output uvec4 out0 = [ uvec4(192, 66, 192, 255) | uvec4(2, 12, 5, 5) | uvec4(12, 5, 1, 11) | uvec4(11, 1, 66, 12) | uvec4(0, 0, 255, 2) | uvec4(8, 192, 11, 1) | uvec4(5, 8, 8, 66) | uvec4(66, 255, 12, 0) | uvec4(1, 11, 2, 8) | uvec4(255, 2, 0, 192) ];
9080		}
9081
9082		both ""
9083			#version 310 es
9084			precision highp float;
9085			precision highp int;
9086
9087			${DECLARATIONS}
9088
9089			void main()
9090			{
9091				${SETUP}
9092				out0 = uvec4(in0, in1, in2, in3);
9093				${OUTPUT}
9094			}
9095		""
9096	end
9097
9098	case uint_uint_uint_uint_to_uvec4
9099		version 310 es
9100		values
9101		{
9102			input uint in0 = [ 255 | 8 | 3 | 193 | 45 | 2 | 0 | 12 | 9 | 10 ];
9103			input uint in1 = [ 255 | 45 | 0 | 12 | 2 | 10 | 8 | 9 | 193 | 3 ];
9104			input uint in2 = [ 3 | 0 | 2 | 9 | 12 | 10 | 255 | 45 | 193 | 8 ];
9105			input uint in3 = [ 2 | 255 | 10 | 193 | 8 | 12 | 3 | 9 | 0 | 45 ];
9106			output uvec4 out0 = [ uvec4(255, 255, 3, 2) | uvec4(8, 45, 0, 255) | uvec4(3, 0, 2, 10) | uvec4(193, 12, 9, 193) | uvec4(45, 2, 12, 8) | uvec4(2, 10, 10, 12) | uvec4(0, 8, 255, 3) | uvec4(12, 9, 45, 9) | uvec4(9, 193, 193, 0) | uvec4(10, 3, 8, 45) ];
9107		}
9108
9109		both ""
9110			#version 310 es
9111			precision highp float;
9112			precision highp int;
9113
9114			${DECLARATIONS}
9115
9116			void main()
9117			{
9118				${SETUP}
9119				out0 = uvec4(in0, in1, in2, in3);
9120				${OUTPUT}
9121			}
9122		""
9123	end
9124
9125	case bool_bool_bool_bool_to_uvec4
9126		version 310 es
9127		values
9128		{
9129			input bool in0 = [ false | true ];
9130			input bool in1 = [ false | true ];
9131			input bool in2 = [ true | false ];
9132			input bool in3 = [ true | false ];
9133			output uvec4 out0 = [ uvec4(0, 0, 1, 1) | uvec4(1, 1, 0, 0) ];
9134		}
9135
9136		both ""
9137			#version 310 es
9138			precision highp float;
9139			precision highp int;
9140
9141			${DECLARATIONS}
9142
9143			void main()
9144			{
9145				${SETUP}
9146				out0 = uvec4(in0, in1, in2, in3);
9147				${OUTPUT}
9148			}
9149		""
9150	end
9151
9152	case bool_float_int_bool_to_uvec4
9153		version 310 es
9154		values
9155		{
9156			input bool in0 = [ true | false | false | true | false | true | true | true | false | false ];
9157			input float in1 = [ 20.125 | 0.0 | 1.0 | 3.5 | 1.0 | 0.0 | 0.5 | 8.25 | 2.0 | 36.8125 ];
9158			input int in2 = [ 66 | 192 | 1 | 2 | 5 | 11 | 8 | 12 | 255 | 0 ];
9159			input bool in3 = [ true | true | true | true | false | true | false | false | false | false ];
9160			output uvec4 out0 = [ uvec4(1, 20, 66, 1) | uvec4(0, 0, 192, 1) | uvec4(0, 1, 1, 1) | uvec4(1, 3, 2, 1) | uvec4(0, 1, 5, 0) | uvec4(1, 0, 11, 1) | uvec4(1, 0, 8, 0) | uvec4(1, 8, 12, 0) | uvec4(0, 2, 255, 0) | uvec4(0, 36, 0, 0) ];
9161		}
9162
9163		both ""
9164			#version 310 es
9165			precision highp float;
9166			precision highp int;
9167
9168			${DECLARATIONS}
9169
9170			void main()
9171			{
9172				${SETUP}
9173				out0 = uvec4(in0, in1, in2, in3);
9174				${OUTPUT}
9175			}
9176		""
9177	end
9178
9179	case vec2_ivec2_to_uvec4
9180		version 310 es
9181		values
9182		{
9183			input vec2 in0 = [ vec2(0.5, 2.25) | vec2(1.0, 1.25) | vec2(32.0, 64.0) | vec2(0.75, 0.0322580645161) | vec2(0.0, 0.5) ];
9184			input ivec2 in1 = [ ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) | ivec2(0, 0) ];
9185			output uvec4 out0 = [ uvec4(0, 2, 1, 1) | uvec4(1, 1, 0, 2) | uvec4(32, 64, 32, 64) | uvec4(0, 0, 0, 0) | uvec4(0, 0, 0, 0) ];
9186		}
9187
9188		both ""
9189			#version 310 es
9190			precision highp float;
9191			precision highp int;
9192
9193			${DECLARATIONS}
9194
9195			void main()
9196			{
9197				${SETUP}
9198				out0 = uvec4(in0, in1);
9199				${OUTPUT}
9200			}
9201		""
9202	end
9203
9204	case vec2_bvec2_to_uvec4
9205		version 310 es
9206		values
9207		{
9208			input vec2 in0 = [ vec2(32.0, 64.0) | vec2(0.75, 0.0322580645161) | vec2(0.5, 2.25) | vec2(0.0, 0.5) | vec2(1.0, 1.25) ];
9209			input bvec2 in1 = [ bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(true, true) ];
9210			output uvec4 out0 = [ uvec4(32, 64, 0, 0) | uvec4(0, 0, 0, 0) | uvec4(0, 2, 1, 0) | uvec4(0, 0, 0, 1) | uvec4(1, 1, 1, 1) ];
9211		}
9212
9213		both ""
9214			#version 310 es
9215			precision highp float;
9216			precision highp int;
9217
9218			${DECLARATIONS}
9219
9220			void main()
9221			{
9222				${SETUP}
9223				out0 = uvec4(in0, in1);
9224				${OUTPUT}
9225			}
9226		""
9227	end
9228
9229	case bvec3_float_to_uvec4
9230		version 310 es
9231		values
9232		{
9233			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, false, false) | bvec3(false, false, false) ];
9234			input float in1 = [ 2.0 | 0.0 | 36.8125 | 0.5 | 1.0 | 8.25 | 3.5 | 20.125 ];
9235			output uvec4 out0 = [ uvec4(1, 0, 0, 2) | uvec4(1, 1, 1, 0) | uvec4(0, 1, 0, 36) | uvec4(0, 0, 0, 0) | uvec4(0, 0, 0, 1) | uvec4(0, 1, 0, 8) | uvec4(1, 0, 0, 3) | uvec4(0, 0, 0, 20) ];
9236		}
9237
9238		both ""
9239			#version 310 es
9240			precision highp float;
9241			precision highp int;
9242
9243			${DECLARATIONS}
9244
9245			void main()
9246			{
9247				${SETUP}
9248				out0 = uvec4(in0, in1);
9249				${OUTPUT}
9250			}
9251		""
9252	end
9253
9254	case vec3_float_to_uvec4
9255		version 310 es
9256		values
9257		{
9258			input vec3 in0 = [ vec3(0.5, 2.25, 4.875) | vec3(1.0, 1.25, 1.125) | vec3(0.0, 0.5, 0.75) | vec3(0.5, 2.25, 4.875) | vec3(32.0, 64.0, 51.0) | vec3(1.0, 1.25, 1.125) | vec3(0.75, 0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) ];
9259			input float in1 = [ 8.25 | 1.0 | 0.0 | 36.8125 | 2.0 | 0.5 | 20.125 | 3.5 ];
9260			output uvec4 out0 = [ uvec4(0, 2, 4, 8) | uvec4(1, 1, 1, 1) | uvec4(0, 0, 0, 0) | uvec4(0, 2, 4, 36) | uvec4(32, 64, 51, 2) | uvec4(1, 1, 1, 0) | uvec4(0, 0, 0, 20) | uvec4(0, 0, 0, 3) ];
9261		}
9262
9263		both ""
9264			#version 310 es
9265			precision highp float;
9266			precision highp int;
9267
9268			${DECLARATIONS}
9269
9270			void main()
9271			{
9272				${SETUP}
9273				out0 = uvec4(in0, in1);
9274				${OUTPUT}
9275			}
9276		""
9277	end
9278
9279	case int_ivec2_int_to_uvec4
9280		version 310 es
9281		values
9282		{
9283			input int in0 = [ 8 | 1 | 11 | 192 | 255 | 12 | 66 | 2 | 0 | 5 ];
9284			input ivec2 in1 = [ ivec2(1, 1) | ivec2(0, 0) | ivec2(1, 1) | ivec2(32, 64) | ivec2(0, 2) | ivec2(0, 2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(32, 64) | ivec2(0, 0) ];
9285			input int in2 = [ 2 | 192 | 12 | 0 | 8 | 1 | 66 | 255 | 11 | 5 ];
9286			output uvec4 out0 = [ uvec4(8, 1, 1, 2) | uvec4(1, 0, 0, 192) | uvec4(11, 1, 1, 12) | uvec4(192, 32, 64, 0) | uvec4(255, 0, 2, 8) | uvec4(12, 0, 2, 1) | uvec4(66, 0, 0, 66) | uvec4(2, 0, 0, 255) | uvec4(0, 32, 64, 11) | uvec4(5, 0, 0, 5) ];
9287		}
9288
9289		both ""
9290			#version 310 es
9291			precision highp float;
9292			precision highp int;
9293
9294			${DECLARATIONS}
9295
9296			void main()
9297			{
9298				${SETUP}
9299				out0 = uvec4(in0, in1, in2);
9300				${OUTPUT}
9301			}
9302		""
9303	end
9304
9305	case bool_float_ivec2_to_uvec4
9306		version 310 es
9307		values
9308		{
9309			input bool in0 = [ true | true | false | false | true | false | false | true ];
9310			input float in1 = [ 8.25 | 0.5 | 2.0 | 20.125 | 0.0 | 36.8125 | 3.5 | 1.0 ];
9311			input ivec2 in2 = [ ivec2(32, 64) | ivec2(1, 1) | ivec2(0, 2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, 2) | ivec2(1, 1) | ivec2(0, 0) ];
9312			output uvec4 out0 = [ uvec4(1, 8, 32, 64) | uvec4(1, 0, 1, 1) | uvec4(0, 2, 0, 2) | uvec4(0, 20, 0, 0) | uvec4(1, 0, 0, 0) | uvec4(0, 36, 0, 2) | uvec4(0, 3, 1, 1) | uvec4(1, 1, 0, 0) ];
9313		}
9314
9315		both ""
9316			#version 310 es
9317			precision highp float;
9318			precision highp int;
9319
9320			${DECLARATIONS}
9321
9322			void main()
9323			{
9324				${SETUP}
9325				out0 = uvec4(in0, in1, in2);
9326				${OUTPUT}
9327			}
9328		""
9329	end
9330
9331	case float_uvec3_to_uvec4
9332		version 310 es
9333		values
9334		{
9335			input float in0 = [ 8.25 | 20.125 | 1.0 | 0.5 | 3.5 | 2.0 | 36.8125 | 0.0 ];
9336			input uvec3 in1 = [ uvec3(0, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 2, 4) | uvec3(1, 1, 1) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
9337			output uvec4 out0 = [ uvec4(8, 0, 0, 0) | uvec4(20, 0, 0, 0) | uvec4(1, 0, 2, 4) | uvec4(0, 32, 64, 51) | uvec4(3, 0, 2, 4) | uvec4(2, 1, 1, 1) | uvec4(36, 1, 1, 1) | uvec4(0, 0, 0, 0) ];
9338		}
9339
9340		both ""
9341			#version 310 es
9342			precision highp float;
9343			precision highp int;
9344
9345			${DECLARATIONS}
9346
9347			void main()
9348			{
9349				${SETUP}
9350				out0 = uvec4(in0, in1);
9351				${OUTPUT}
9352			}
9353		""
9354	end
9355
9356	case int_uvec2_bool_to_uvec4
9357		version 310 es
9358		values
9359		{
9360			input int in0 = [ 2 | 1 | 11 | 66 | 192 | 12 | 8 | 255 | 0 | 5 ];
9361			input uvec2 in1 = [ uvec2(1, 1) | uvec2(0, 0) | uvec2(0, 0) | uvec2(0, 2) | uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(1, 1) | uvec2(32, 64) | uvec2(0, 0) ];
9362			input bool in2 = [ true | false | false | false | false | true | true | true | false | true ];
9363			output uvec4 out0 = [ uvec4(2, 1, 1, 1) | uvec4(1, 0, 0, 0) | uvec4(11, 0, 0, 0) | uvec4(66, 0, 2, 0) | uvec4(192, 0, 0, 0) | uvec4(12, 0, 2, 1) | uvec4(8, 32, 64, 1) | uvec4(255, 1, 1, 1) | uvec4(0, 32, 64, 0) | uvec4(5, 0, 0, 1) ];
9364		}
9365
9366		both ""
9367			#version 310 es
9368			precision highp float;
9369			precision highp int;
9370
9371			${DECLARATIONS}
9372
9373			void main()
9374			{
9375				${SETUP}
9376				out0 = uvec4(in0, in1, in2);
9377				${OUTPUT}
9378			}
9379		""
9380	end
9381
9382	case float_float_float_to_vec3
9383		version 310 es
9384		values
9385		{
9386			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
9387			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
9388			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
9389			output vec3 out0 = [ vec3(-0.5, 2.0, 1.0) | vec3(1.0, -20.125, 3.5) | vec3(3.5, 3.5, 2.0) | vec3(-8.25, 36.8125, -8.25) | vec3(36.8125, -8.25, -20.125) | vec3(0.0, 1.0, -0.5) | vec3(2.0, -0.5, 36.8125) | vec3(-20.125, 0.0, 0.0) ];
9390		}
9391
9392		both ""
9393			#version 310 es
9394			precision highp float;
9395			precision highp int;
9396
9397			${DECLARATIONS}
9398
9399			void main()
9400			{
9401				${SETUP}
9402				out0 = vec3(in0, in1, in2);
9403				${OUTPUT}
9404			}
9405		""
9406	end
9407
9408	case float_float_float_to_ivec3
9409		version 310 es
9410		values
9411		{
9412			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
9413			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
9414			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
9415			output ivec3 out0 = [ ivec3(0, 2, 1) | ivec3(1, -20, 3) | ivec3(3, 3, 2) | ivec3(-8, 36, -8) | ivec3(36, -8, -20) | ivec3(0, 1, 0) | ivec3(2, 0, 36) | ivec3(-20, 0, 0) ];
9416		}
9417
9418		both ""
9419			#version 310 es
9420			precision highp float;
9421			precision highp int;
9422
9423			${DECLARATIONS}
9424
9425			void main()
9426			{
9427				${SETUP}
9428				out0 = ivec3(in0, in1, in2);
9429				${OUTPUT}
9430			}
9431		""
9432	end
9433
9434	case float_float_float_to_bvec3
9435		version 310 es
9436		values
9437		{
9438			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
9439			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
9440			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
9441			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, false, false) ];
9442		}
9443
9444		both ""
9445			#version 310 es
9446			precision highp float;
9447			precision highp int;
9448
9449			${DECLARATIONS}
9450
9451			void main()
9452			{
9453				${SETUP}
9454				out0 = bvec3(in0, in1, in2);
9455				${OUTPUT}
9456			}
9457		""
9458	end
9459
9460	case int_int_int_to_vec3
9461		version 310 es
9462		values
9463		{
9464			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
9465			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
9466			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
9467			output vec3 out0 = [ vec3(-192.0, 5.0, -192.0) | vec3(5.0, 1.0, 1.0) | vec3(-12.0, 8.0, 2.0) | vec3(0.0, 0.0, 5.0) | vec3(11.0, 2.0, -12.0) | vec3(8.0, -192.0, 8.0) | vec3(1.0, -12.0, 11.0) | vec3(-66.0, 255.0, 0.0) | vec3(255.0, -66.0, 255.0) | vec3(2.0, 11.0, -66.0) ];
9468		}
9469
9470		both ""
9471			#version 310 es
9472			precision highp float;
9473			precision highp int;
9474
9475			${DECLARATIONS}
9476
9477			void main()
9478			{
9479				${SETUP}
9480				out0 = vec3(in0, in1, in2);
9481				${OUTPUT}
9482			}
9483		""
9484	end
9485
9486	case int_int_int_to_ivec3
9487		version 310 es
9488		values
9489		{
9490			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
9491			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
9492			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
9493			output ivec3 out0 = [ ivec3(-192, 5, -192) | ivec3(5, 1, 1) | ivec3(-12, 8, 2) | ivec3(0, 0, 5) | ivec3(11, 2, -12) | ivec3(8, -192, 8) | ivec3(1, -12, 11) | ivec3(-66, 255, 0) | ivec3(255, -66, 255) | ivec3(2, 11, -66) ];
9494		}
9495
9496		both ""
9497			#version 310 es
9498			precision highp float;
9499			precision highp int;
9500
9501			${DECLARATIONS}
9502
9503			void main()
9504			{
9505				${SETUP}
9506				out0 = ivec3(in0, in1, in2);
9507				${OUTPUT}
9508			}
9509		""
9510	end
9511
9512	case int_int_int_to_bvec3
9513		version 310 es
9514		values
9515		{
9516			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
9517			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
9518			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
9519			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, true) ];
9520		}
9521
9522		both ""
9523			#version 310 es
9524			precision highp float;
9525			precision highp int;
9526
9527			${DECLARATIONS}
9528
9529			void main()
9530			{
9531				${SETUP}
9532				out0 = bvec3(in0, in1, in2);
9533				${OUTPUT}
9534			}
9535		""
9536	end
9537
9538	case uint_uint_uint_to_vec3
9539		version 310 es
9540		values
9541		{
9542			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
9543			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
9544			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
9545			output vec3 out0 = [ vec3(8.0, 193.0, 12.0) | vec3(45.0, 2.0, 2.0) | vec3(2.0, 9.0, 193.0) | vec3(3.0, 8.0, 255.0) | vec3(255.0, 0.0, 8.0) | vec3(193.0, 255.0, 10.0) | vec3(12.0, 45.0, 45.0) | vec3(0.0, 3.0, 0.0) | vec3(9.0, 10.0, 3.0) | vec3(10.0, 12.0, 9.0) ];
9546		}
9547
9548		both ""
9549			#version 310 es
9550			precision highp float;
9551			precision highp int;
9552
9553			${DECLARATIONS}
9554
9555			void main()
9556			{
9557				${SETUP}
9558				out0 = vec3(in0, in1, in2);
9559				${OUTPUT}
9560			}
9561		""
9562	end
9563
9564	case uint_uint_uint_to_ivec3
9565		version 310 es
9566		values
9567		{
9568			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
9569			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
9570			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
9571			output ivec3 out0 = [ ivec3(8, 193, 12) | ivec3(45, 2, 2) | ivec3(2, 9, 193) | ivec3(3, 8, 255) | ivec3(255, 0, 8) | ivec3(193, 255, 10) | ivec3(12, 45, 45) | ivec3(0, 3, 0) | ivec3(9, 10, 3) | ivec3(10, 12, 9) ];
9572		}
9573
9574		both ""
9575			#version 310 es
9576			precision highp float;
9577			precision highp int;
9578
9579			${DECLARATIONS}
9580
9581			void main()
9582			{
9583				${SETUP}
9584				out0 = ivec3(in0, in1, in2);
9585				${OUTPUT}
9586			}
9587		""
9588	end
9589
9590	case uint_uint_uint_to_bvec3
9591		version 310 es
9592		values
9593		{
9594			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
9595			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
9596			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
9597			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(true, true, true) ];
9598		}
9599
9600		both ""
9601			#version 310 es
9602			precision highp float;
9603			precision highp int;
9604
9605			${DECLARATIONS}
9606
9607			void main()
9608			{
9609				${SETUP}
9610				out0 = bvec3(in0, in1, in2);
9611				${OUTPUT}
9612			}
9613		""
9614	end
9615
9616	case bool_bool_bool_to_vec3
9617		version 310 es
9618		values
9619		{
9620			input bool in0 = [ true | false ];
9621			input bool in1 = [ true | false ];
9622			input bool in2 = [ true | false ];
9623			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
9624		}
9625
9626		both ""
9627			#version 310 es
9628			precision highp float;
9629			precision highp int;
9630
9631			${DECLARATIONS}
9632
9633			void main()
9634			{
9635				${SETUP}
9636				out0 = vec3(in0, in1, in2);
9637				${OUTPUT}
9638			}
9639		""
9640	end
9641
9642	case bool_bool_bool_to_ivec3
9643		version 310 es
9644		values
9645		{
9646			input bool in0 = [ true | false ];
9647			input bool in1 = [ true | false ];
9648			input bool in2 = [ true | false ];
9649			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
9650		}
9651
9652		both ""
9653			#version 310 es
9654			precision highp float;
9655			precision highp int;
9656
9657			${DECLARATIONS}
9658
9659			void main()
9660			{
9661				${SETUP}
9662				out0 = ivec3(in0, in1, in2);
9663				${OUTPUT}
9664			}
9665		""
9666	end
9667
9668	case bool_bool_bool_to_bvec3
9669		version 310 es
9670		values
9671		{
9672			input bool in0 = [ true | false ];
9673			input bool in1 = [ true | false ];
9674			input bool in2 = [ true | false ];
9675			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) ];
9676		}
9677
9678		both ""
9679			#version 310 es
9680			precision highp float;
9681			precision highp int;
9682
9683			${DECLARATIONS}
9684
9685			void main()
9686			{
9687				${SETUP}
9688				out0 = bvec3(in0, in1, in2);
9689				${OUTPUT}
9690			}
9691		""
9692	end
9693
9694	case bool_float_int_to_vec3
9695		version 310 es
9696		values
9697		{
9698			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
9699			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
9700			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
9701			output vec3 out0 = [ vec3(1.0, 0.0, 8.0) | vec3(1.0, 36.8125, -192.0) | vec3(0.0, 0.0, -66.0) | vec3(0.0, -8.25, 2.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 3.5, -12.0) | vec3(1.0, 1.0, 11.0) | vec3(0.0, -0.5, 255.0) | vec3(0.0, -20.125, 5.0) | vec3(1.0, 2.0, 0.0) ];
9702		}
9703
9704		both ""
9705			#version 310 es
9706			precision highp float;
9707			precision highp int;
9708
9709			${DECLARATIONS}
9710
9711			void main()
9712			{
9713				${SETUP}
9714				out0 = vec3(in0, in1, in2);
9715				${OUTPUT}
9716			}
9717		""
9718	end
9719
9720	case bool_float_int_to_ivec3
9721		version 310 es
9722		values
9723		{
9724			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
9725			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
9726			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
9727			output ivec3 out0 = [ ivec3(1, 0, 8) | ivec3(1, 36, -192) | ivec3(0, 0, -66) | ivec3(0, -8, 2) | ivec3(1, 1, 1) | ivec3(0, 3, -12) | ivec3(1, 1, 11) | ivec3(0, 0, 255) | ivec3(0, -20, 5) | ivec3(1, 2, 0) ];
9728		}
9729
9730		both ""
9731			#version 310 es
9732			precision highp float;
9733			precision highp int;
9734
9735			${DECLARATIONS}
9736
9737			void main()
9738			{
9739				${SETUP}
9740				out0 = ivec3(in0, in1, in2);
9741				${OUTPUT}
9742			}
9743		""
9744	end
9745
9746	case bool_float_int_to_bvec3
9747		version 310 es
9748		values
9749		{
9750			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
9751			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
9752			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
9753			output bvec3 out0 = [ bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(false, true, true) | bvec3(true, true, false) ];
9754		}
9755
9756		both ""
9757			#version 310 es
9758			precision highp float;
9759			precision highp int;
9760
9761			${DECLARATIONS}
9762
9763			void main()
9764			{
9765				${SETUP}
9766				out0 = bvec3(in0, in1, in2);
9767				${OUTPUT}
9768			}
9769		""
9770	end
9771
9772	case vec2_bool_to_vec3
9773		version 310 es
9774		values
9775		{
9776			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) ];
9777			input bool in1 = [ false | true | true | true | false ];
9778			output vec3 out0 = [ vec3(1.0, 1.25, 0.0) | vec3(-0.75, -0.0322580645161, 1.0) | vec3(-32.0, 64.0, 1.0) | vec3(-0.5, -2.25, 1.0) | vec3(0.0, 0.5, 0.0) ];
9779		}
9780
9781		both ""
9782			#version 310 es
9783			precision highp float;
9784			precision highp int;
9785
9786			${DECLARATIONS}
9787
9788			void main()
9789			{
9790				${SETUP}
9791				out0 = vec3(in0, in1);
9792				${OUTPUT}
9793			}
9794		""
9795	end
9796
9797	case vec2_bool_to_ivec3
9798		version 310 es
9799		values
9800		{
9801			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) ];
9802			input bool in1 = [ false | true | true | true | false ];
9803			output ivec3 out0 = [ ivec3(1, 1, 0) | ivec3(0, 0, 1) | ivec3(-32, 64, 1) | ivec3(0, -2, 1) | ivec3(0, 0, 0) ];
9804		}
9805
9806		both ""
9807			#version 310 es
9808			precision highp float;
9809			precision highp int;
9810
9811			${DECLARATIONS}
9812
9813			void main()
9814			{
9815				${SETUP}
9816				out0 = ivec3(in0, in1);
9817				${OUTPUT}
9818			}
9819		""
9820	end
9821
9822	case vec2_bool_to_bvec3
9823		version 310 es
9824		values
9825		{
9826			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) ];
9827			input bool in1 = [ false | true | true | true | false ];
9828			output bvec3 out0 = [ bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, true, false) ];
9829		}
9830
9831		both ""
9832			#version 310 es
9833			precision highp float;
9834			precision highp int;
9835
9836			${DECLARATIONS}
9837
9838			void main()
9839			{
9840				${SETUP}
9841				out0 = bvec3(in0, in1);
9842				${OUTPUT}
9843			}
9844		""
9845	end
9846
9847	case bvec2_float_to_vec3
9848		version 310 es
9849		values
9850		{
9851			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, true) | bvec2(false, true) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
9852			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
9853			output vec3 out0 = [ vec3(1.0, 0.0, -20.125) | vec3(0.0, 1.0, 2.0) | vec3(0.0, 1.0, 36.8125) | vec3(1.0, 0.0, 1.0) | vec3(0.0, 0.0, 3.5) | vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, -8.25) | vec3(0.0, 0.0, -0.5) ];
9854		}
9855
9856		both ""
9857			#version 310 es
9858			precision highp float;
9859			precision highp int;
9860
9861			${DECLARATIONS}
9862
9863			void main()
9864			{
9865				${SETUP}
9866				out0 = vec3(in0, in1);
9867				${OUTPUT}
9868			}
9869		""
9870	end
9871
9872	case bvec2_float_to_ivec3
9873		version 310 es
9874		values
9875		{
9876			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, true) | bvec2(false, true) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
9877			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
9878			output ivec3 out0 = [ ivec3(1, 0, -20) | ivec3(0, 1, 2) | ivec3(0, 1, 36) | ivec3(1, 0, 1) | ivec3(0, 0, 3) | ivec3(0, 0, 0) | ivec3(1, 1, -8) | ivec3(0, 0, 0) ];
9879		}
9880
9881		both ""
9882			#version 310 es
9883			precision highp float;
9884			precision highp int;
9885
9886			${DECLARATIONS}
9887
9888			void main()
9889			{
9890				${SETUP}
9891				out0 = ivec3(in0, in1);
9892				${OUTPUT}
9893			}
9894		""
9895	end
9896
9897	case bvec2_float_to_bvec3
9898		version 310 es
9899		values
9900		{
9901			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, true) | bvec2(false, true) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
9902			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
9903			output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, true, true) | bvec3(false, true, true) | bvec3(true, false, true) | bvec3(false, false, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, true) ];
9904		}
9905
9906		both ""
9907			#version 310 es
9908			precision highp float;
9909			precision highp int;
9910
9911			${DECLARATIONS}
9912
9913			void main()
9914			{
9915				${SETUP}
9916				out0 = bvec3(in0, in1);
9917				${OUTPUT}
9918			}
9919		""
9920	end
9921
9922	case bvec2_int_to_vec3
9923		version 310 es
9924		values
9925		{
9926			input bvec2 in0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
9927			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
9928			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, -66.0) | vec3(0.0, 0.0, 255.0) | vec3(1.0, 0.0, 8.0) | vec3(0.0, 0.0, -192.0) | vec3(0.0, 1.0, 2.0) | vec3(1.0, 0.0, 5.0) | vec3(0.0, 1.0, 11.0) | vec3(0.0, 0.0, -12.0) | vec3(1.0, 1.0, 0.0) ];
9929		}
9930
9931		both ""
9932			#version 310 es
9933			precision highp float;
9934			precision highp int;
9935
9936			${DECLARATIONS}
9937
9938			void main()
9939			{
9940				${SETUP}
9941				out0 = vec3(in0, in1);
9942				${OUTPUT}
9943			}
9944		""
9945	end
9946
9947	case bvec2_int_to_ivec3
9948		version 310 es
9949		values
9950		{
9951			input bvec2 in0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
9952			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
9953			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 0, -66) | ivec3(0, 0, 255) | ivec3(1, 0, 8) | ivec3(0, 0, -192) | ivec3(0, 1, 2) | ivec3(1, 0, 5) | ivec3(0, 1, 11) | ivec3(0, 0, -12) | ivec3(1, 1, 0) ];
9954		}
9955
9956		both ""
9957			#version 310 es
9958			precision highp float;
9959			precision highp int;
9960
9961			${DECLARATIONS}
9962
9963			void main()
9964			{
9965				${SETUP}
9966				out0 = ivec3(in0, in1);
9967				${OUTPUT}
9968			}
9969		""
9970	end
9971
9972	case bvec2_int_to_bvec3
9973		version 310 es
9974		values
9975		{
9976			input bvec2 in0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
9977			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
9978			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, false, true) | bvec3(false, false, true) | bvec3(false, true, true) | bvec3(true, false, true) | bvec3(false, true, true) | bvec3(false, false, true) | bvec3(true, true, false) ];
9979		}
9980
9981		both ""
9982			#version 310 es
9983			precision highp float;
9984			precision highp int;
9985
9986			${DECLARATIONS}
9987
9988			void main()
9989			{
9990				${SETUP}
9991				out0 = bvec3(in0, in1);
9992				${OUTPUT}
9993			}
9994		""
9995	end
9996
9997	case bool_ivec2_to_vec3
9998		version 310 es
9999		values
10000		{
10001			input bool in0 = [ true | true | false | false | true ];
10002			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
10003			output vec3 out0 = [ vec3(1.0, 0.0, -2.0) | vec3(1.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 1.0, 1.0) | vec3(1.0, -32.0, 64.0) ];
10004		}
10005
10006		both ""
10007			#version 310 es
10008			precision highp float;
10009			precision highp int;
10010
10011			${DECLARATIONS}
10012
10013			void main()
10014			{
10015				${SETUP}
10016				out0 = vec3(in0, in1);
10017				${OUTPUT}
10018			}
10019		""
10020	end
10021
10022	case bool_ivec2_to_ivec3
10023		version 310 es
10024		values
10025		{
10026			input bool in0 = [ true | true | false | false | true ];
10027			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
10028			output ivec3 out0 = [ ivec3(1, 0, -2) | ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 1) | ivec3(1, -32, 64) ];
10029		}
10030
10031		both ""
10032			#version 310 es
10033			precision highp float;
10034			precision highp int;
10035
10036			${DECLARATIONS}
10037
10038			void main()
10039			{
10040				${SETUP}
10041				out0 = ivec3(in0, in1);
10042				${OUTPUT}
10043			}
10044		""
10045	end
10046
10047	case bool_ivec2_to_bvec3
10048		version 310 es
10049		values
10050		{
10051			input bool in0 = [ true | true | false | false | true ];
10052			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
10053			output bvec3 out0 = [ bvec3(true, false, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, true) | bvec3(true, true, true) ];
10054		}
10055
10056		both ""
10057			#version 310 es
10058			precision highp float;
10059			precision highp int;
10060
10061			${DECLARATIONS}
10062
10063			void main()
10064			{
10065				${SETUP}
10066				out0 = bvec3(in0, in1);
10067				${OUTPUT}
10068			}
10069		""
10070	end
10071
10072	case float_uvec2_to_vec3
10073		version 310 es
10074		values
10075		{
10076			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
10077			input uvec2 in1 = [ uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(0, 2) | uvec2(0, 0) | uvec2(1, 1) | uvec2(1, 1) ];
10078			output vec3 out0 = [ vec3(-20.125, 0.0, 0.0) | vec3(36.8125, 0.0, 2.0) | vec3(-8.25, 32.0, 64.0) | vec3(2.0, 0.0, 0.0) | vec3(-0.5, 0.0, 2.0) | vec3(0.0, 0.0, 0.0) | vec3(3.5, 1.0, 1.0) | vec3(1.0, 1.0, 1.0) ];
10079		}
10080
10081		both ""
10082			#version 310 es
10083			precision highp float;
10084			precision highp int;
10085
10086			${DECLARATIONS}
10087
10088			void main()
10089			{
10090				${SETUP}
10091				out0 = vec3(in0, in1);
10092				${OUTPUT}
10093			}
10094		""
10095	end
10096
10097	case float_uvec2_to_ivec3
10098		version 310 es
10099		values
10100		{
10101			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
10102			input uvec2 in1 = [ uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(0, 2) | uvec2(0, 0) | uvec2(1, 1) | uvec2(1, 1) ];
10103			output ivec3 out0 = [ ivec3(-20, 0, 0) | ivec3(36, 0, 2) | ivec3(-8, 32, 64) | ivec3(2, 0, 0) | ivec3(0, 0, 2) | ivec3(0, 0, 0) | ivec3(3, 1, 1) | ivec3(1, 1, 1) ];
10104		}
10105
10106		both ""
10107			#version 310 es
10108			precision highp float;
10109			precision highp int;
10110
10111			${DECLARATIONS}
10112
10113			void main()
10114			{
10115				${SETUP}
10116				out0 = ivec3(in0, in1);
10117				${OUTPUT}
10118			}
10119		""
10120	end
10121
10122	case float_uvec2_to_bvec3
10123		version 310 es
10124		values
10125		{
10126			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
10127			input uvec2 in1 = [ uvec2(0, 0) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) | uvec2(0, 2) | uvec2(0, 0) | uvec2(1, 1) | uvec2(1, 1) ];
10128			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(true, false, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) ];
10129		}
10130
10131		both ""
10132			#version 310 es
10133			precision highp float;
10134			precision highp int;
10135
10136			${DECLARATIONS}
10137
10138			void main()
10139			{
10140				${SETUP}
10141				out0 = bvec3(in0, in1);
10142				${OUTPUT}
10143			}
10144		""
10145	end
10146
10147	case float_float_float_to_uvec3
10148		version 310 es
10149		values
10150		{
10151			input float in0 = [ 8.25 | 20.125 | 2.0 | 3.5 | 0.5 | 36.8125 | 1.0 | 0.0 ];
10152			input float in1 = [ 1.0 | 0.0 | 3.5 | 36.8125 | 8.25 | 2.0 | 0.5 | 20.125 ];
10153			input float in2 = [ 20.125 | 0.5 | 8.25 | 36.8125 | 1.0 | 0.0 | 3.5 | 2.0 ];
10154			output uvec3 out0 = [ uvec3(8, 1, 20) | uvec3(20, 0, 0) | uvec3(2, 3, 8) | uvec3(3, 36, 36) | uvec3(0, 8, 1) | uvec3(36, 2, 0) | uvec3(1, 0, 3) | uvec3(0, 20, 2) ];
10155		}
10156
10157		both ""
10158			#version 310 es
10159			precision highp float;
10160			precision highp int;
10161
10162			${DECLARATIONS}
10163
10164			void main()
10165			{
10166				${SETUP}
10167				out0 = uvec3(in0, in1, in2);
10168				${OUTPUT}
10169			}
10170		""
10171	end
10172
10173	case int_int_int_to_uvec3
10174		version 310 es
10175		values
10176		{
10177			input int in0 = [ 1 | 255 | 192 | 2 | 5 | 12 | 0 | 11 | 8 | 66 ];
10178			input int in1 = [ 192 | 66 | 5 | 8 | 11 | 1 | 0 | 255 | 12 | 2 ];
10179			input int in2 = [ 192 | 5 | 1 | 11 | 66 | 8 | 12 | 0 | 2 | 255 ];
10180			output uvec3 out0 = [ uvec3(1, 192, 192) | uvec3(255, 66, 5) | uvec3(192, 5, 1) | uvec3(2, 8, 11) | uvec3(5, 11, 66) | uvec3(12, 1, 8) | uvec3(0, 0, 12) | uvec3(11, 255, 0) | uvec3(8, 12, 2) | uvec3(66, 2, 255) ];
10181		}
10182
10183		both ""
10184			#version 310 es
10185			precision highp float;
10186			precision highp int;
10187
10188			${DECLARATIONS}
10189
10190			void main()
10191			{
10192				${SETUP}
10193				out0 = uvec3(in0, in1, in2);
10194				${OUTPUT}
10195			}
10196		""
10197	end
10198
10199	case uint_uint_uint_to_uvec3
10200		version 310 es
10201		values
10202		{
10203			input uint in0 = [ 193 | 9 | 45 | 255 | 2 | 0 | 10 | 8 | 12 | 3 ];
10204			input uint in1 = [ 3 | 45 | 2 | 9 | 10 | 0 | 8 | 12 | 255 | 193 ];
10205			input uint in2 = [ 2 | 3 | 9 | 10 | 255 | 8 | 12 | 0 | 193 | 45 ];
10206			output uvec3 out0 = [ uvec3(193, 3, 2) | uvec3(9, 45, 3) | uvec3(45, 2, 9) | uvec3(255, 9, 10) | uvec3(2, 10, 255) | uvec3(0, 0, 8) | uvec3(10, 8, 12) | uvec3(8, 12, 0) | uvec3(12, 255, 193) | uvec3(3, 193, 45) ];
10207		}
10208
10209		both ""
10210			#version 310 es
10211			precision highp float;
10212			precision highp int;
10213
10214			${DECLARATIONS}
10215
10216			void main()
10217			{
10218				${SETUP}
10219				out0 = uvec3(in0, in1, in2);
10220				${OUTPUT}
10221			}
10222		""
10223	end
10224
10225	case bool_bool_bool_to_uvec3
10226		version 310 es
10227		values
10228		{
10229			input bool in0 = [ false | true ];
10230			input bool in1 = [ false | true ];
10231			input bool in2 = [ true | false ];
10232			output uvec3 out0 = [ uvec3(0, 0, 1) | uvec3(1, 1, 0) ];
10233		}
10234
10235		both ""
10236			#version 310 es
10237			precision highp float;
10238			precision highp int;
10239
10240			${DECLARATIONS}
10241
10242			void main()
10243			{
10244				${SETUP}
10245				out0 = uvec3(in0, in1, in2);
10246				${OUTPUT}
10247			}
10248		""
10249	end
10250
10251	case bool_float_int_to_uvec3
10252		version 310 es
10253		values
10254		{
10255			input bool in0 = [ true | false | true | false | false | true | false | true | true | false ];
10256			input float in1 = [ 36.8125 | 20.125 | 1.0 | 0.0 | 3.5 | 1.0 | 2.0 | 0.5 | 0.0 | 8.25 ];
10257			input int in2 = [ 1 | 0 | 8 | 66 | 2 | 11 | 192 | 5 | 12 | 255 ];
10258			output uvec3 out0 = [ uvec3(1, 36, 1) | uvec3(0, 20, 0) | uvec3(1, 1, 8) | uvec3(0, 0, 66) | uvec3(0, 3, 2) | uvec3(1, 1, 11) | uvec3(0, 2, 192) | uvec3(1, 0, 5) | uvec3(1, 0, 12) | uvec3(0, 8, 255) ];
10259		}
10260
10261		both ""
10262			#version 310 es
10263			precision highp float;
10264			precision highp int;
10265
10266			${DECLARATIONS}
10267
10268			void main()
10269			{
10270				${SETUP}
10271				out0 = uvec3(in0, in1, in2);
10272				${OUTPUT}
10273			}
10274		""
10275	end
10276
10277	case vec2_bool_to_uvec3
10278		version 310 es
10279		values
10280		{
10281			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(32.0, 64.0) | vec2(0.5, 2.25) | vec2(1.0, 1.25) | vec2(0.75, 0.0322580645161) ];
10282			input bool in1 = [ false | false | true | true | true ];
10283			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(32, 64, 0) | uvec3(0, 2, 1) | uvec3(1, 1, 1) | uvec3(0, 0, 1) ];
10284		}
10285
10286		both ""
10287			#version 310 es
10288			precision highp float;
10289			precision highp int;
10290
10291			${DECLARATIONS}
10292
10293			void main()
10294			{
10295				${SETUP}
10296				out0 = uvec3(in0, in1);
10297				${OUTPUT}
10298			}
10299		""
10300	end
10301
10302	case bvec2_float_to_uvec3
10303		version 310 es
10304		values
10305		{
10306			input bvec2 in0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, false) ];
10307			input float in1 = [ 8.25 | 36.8125 | 20.125 | 2.0 | 0.0 | 1.0 | 0.5 | 3.5 ];
10308			output uvec3 out0 = [ uvec3(1, 1, 8) | uvec3(1, 0, 36) | uvec3(0, 1, 20) | uvec3(0, 0, 2) | uvec3(1, 0, 0) | uvec3(0, 1, 1) | uvec3(0, 0, 0) | uvec3(0, 0, 3) ];
10309		}
10310
10311		both ""
10312			#version 310 es
10313			precision highp float;
10314			precision highp int;
10315
10316			${DECLARATIONS}
10317
10318			void main()
10319			{
10320				${SETUP}
10321				out0 = uvec3(in0, in1);
10322				${OUTPUT}
10323			}
10324		""
10325	end
10326
10327	case bvec2_int_to_uvec3
10328		version 310 es
10329		values
10330		{
10331			input bvec2 in0 = [ bvec2(true, true) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, false) ];
10332			input int in1 = [ 255 | 1 | 2 | 5 | 0 | 11 | 192 | 12 | 8 | 66 ];
10333			output uvec3 out0 = [ uvec3(1, 1, 255) | uvec3(0, 1, 1) | uvec3(0, 0, 2) | uvec3(1, 1, 5) | uvec3(0, 0, 0) | uvec3(1, 0, 11) | uvec3(0, 0, 192) | uvec3(0, 0, 12) | uvec3(0, 1, 8) | uvec3(1, 0, 66) ];
10334		}
10335
10336		both ""
10337			#version 310 es
10338			precision highp float;
10339			precision highp int;
10340
10341			${DECLARATIONS}
10342
10343			void main()
10344			{
10345				${SETUP}
10346				out0 = uvec3(in0, in1);
10347				${OUTPUT}
10348			}
10349		""
10350	end
10351
10352	case bool_ivec2_to_uvec3
10353		version 310 es
10354		values
10355		{
10356			input bool in0 = [ true | false | true | true | false ];
10357			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(32, 64) ];
10358			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 2) | uvec3(1, 1, 1) | uvec3(1, 0, 0) | uvec3(0, 32, 64) ];
10359		}
10360
10361		both ""
10362			#version 310 es
10363			precision highp float;
10364			precision highp int;
10365
10366			${DECLARATIONS}
10367
10368			void main()
10369			{
10370				${SETUP}
10371				out0 = uvec3(in0, in1);
10372				${OUTPUT}
10373			}
10374		""
10375	end
10376
10377	case float_uvec2_to_uvec3
10378		version 310 es
10379		values
10380		{
10381			input float in0 = [ 2.0 | 8.25 | 20.125 | 3.5 | 0.0 | 0.5 | 36.8125 | 1.0 ];
10382			input uvec2 in1 = [ uvec2(0, 2) | uvec2(1, 1) | uvec2(32, 64) | uvec2(0, 0) | uvec2(0, 2) | uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 0) ];
10383			output uvec3 out0 = [ uvec3(2, 0, 2) | uvec3(8, 1, 1) | uvec3(20, 32, 64) | uvec3(3, 0, 0) | uvec3(0, 0, 2) | uvec3(0, 0, 0) | uvec3(36, 1, 1) | uvec3(1, 0, 0) ];
10384		}
10385
10386		both ""
10387			#version 310 es
10388			precision highp float;
10389			precision highp int;
10390
10391			${DECLARATIONS}
10392
10393			void main()
10394			{
10395				${SETUP}
10396				out0 = uvec3(in0, in1);
10397				${OUTPUT}
10398			}
10399		""
10400	end
10401
10402	case float_float_to_vec2
10403		version 310 es
10404		values
10405		{
10406			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
10407			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
10408			output vec2 out0 = [ vec2(-0.5, 1.0) | vec2(-20.125, -20.125) | vec2(1.0, 0.0) | vec2(2.0, 3.5) | vec2(3.5, -8.25) | vec2(36.8125, 36.8125) | vec2(-8.25, -0.5) | vec2(0.0, 2.0) ];
10409		}
10410
10411		both ""
10412			#version 310 es
10413			precision highp float;
10414			precision highp int;
10415
10416			${DECLARATIONS}
10417
10418			void main()
10419			{
10420				${SETUP}
10421				out0 = vec2(in0, in1);
10422				${OUTPUT}
10423			}
10424		""
10425	end
10426
10427	case float_float_to_ivec2
10428		version 310 es
10429		values
10430		{
10431			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
10432			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
10433			output ivec2 out0 = [ ivec2(0, 1) | ivec2(-20, -20) | ivec2(1, 0) | ivec2(2, 3) | ivec2(3, -8) | ivec2(36, 36) | ivec2(-8, 0) | ivec2(0, 2) ];
10434		}
10435
10436		both ""
10437			#version 310 es
10438			precision highp float;
10439			precision highp int;
10440
10441			${DECLARATIONS}
10442
10443			void main()
10444			{
10445				${SETUP}
10446				out0 = ivec2(in0, in1);
10447				${OUTPUT}
10448			}
10449		""
10450	end
10451
10452	case float_float_to_bvec2
10453		version 310 es
10454		values
10455		{
10456			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
10457			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
10458			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) ];
10459		}
10460
10461		both ""
10462			#version 310 es
10463			precision highp float;
10464			precision highp int;
10465
10466			${DECLARATIONS}
10467
10468			void main()
10469			{
10470				${SETUP}
10471				out0 = bvec2(in0, in1);
10472				${OUTPUT}
10473			}
10474		""
10475	end
10476
10477	case int_int_to_vec2
10478		version 310 es
10479		values
10480		{
10481			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
10482			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
10483			output vec2 out0 = [ vec2(2.0, -192.0) | vec2(-66.0, 8.0) | vec2(0.0, 1.0) | vec2(5.0, 0.0) | vec2(-12.0, 5.0) | vec2(8.0, -66.0) | vec2(-192.0, 2.0) | vec2(1.0, 255.0) | vec2(11.0, 11.0) | vec2(255.0, -12.0) ];
10484		}
10485
10486		both ""
10487			#version 310 es
10488			precision highp float;
10489			precision highp int;
10490
10491			${DECLARATIONS}
10492
10493			void main()
10494			{
10495				${SETUP}
10496				out0 = vec2(in0, in1);
10497				${OUTPUT}
10498			}
10499		""
10500	end
10501
10502	case int_int_to_ivec2
10503		version 310 es
10504		values
10505		{
10506			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
10507			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
10508			output ivec2 out0 = [ ivec2(2, -192) | ivec2(-66, 8) | ivec2(0, 1) | ivec2(5, 0) | ivec2(-12, 5) | ivec2(8, -66) | ivec2(-192, 2) | ivec2(1, 255) | ivec2(11, 11) | ivec2(255, -12) ];
10509		}
10510
10511		both ""
10512			#version 310 es
10513			precision highp float;
10514			precision highp int;
10515
10516			${DECLARATIONS}
10517
10518			void main()
10519			{
10520				${SETUP}
10521				out0 = ivec2(in0, in1);
10522				${OUTPUT}
10523			}
10524		""
10525	end
10526
10527	case int_int_to_bvec2
10528		version 310 es
10529		values
10530		{
10531			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
10532			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
10533			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
10534		}
10535
10536		both ""
10537			#version 310 es
10538			precision highp float;
10539			precision highp int;
10540
10541			${DECLARATIONS}
10542
10543			void main()
10544			{
10545				${SETUP}
10546				out0 = bvec2(in0, in1);
10547				${OUTPUT}
10548			}
10549		""
10550	end
10551
10552	case uint_uint_to_vec2
10553		version 310 es
10554		values
10555		{
10556			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
10557			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
10558			output vec2 out0 = [ vec2(9.0, 8.0) | vec2(12.0, 9.0) | vec2(0.0, 45.0) | vec2(255.0, 2.0) | vec2(8.0, 12.0) | vec2(45.0, 193.0) | vec2(3.0, 255.0) | vec2(2.0, 0.0) | vec2(10.0, 3.0) | vec2(193.0, 10.0) ];
10559		}
10560
10561		both ""
10562			#version 310 es
10563			precision highp float;
10564			precision highp int;
10565
10566			${DECLARATIONS}
10567
10568			void main()
10569			{
10570				${SETUP}
10571				out0 = vec2(in0, in1);
10572				${OUTPUT}
10573			}
10574		""
10575	end
10576
10577	case uint_uint_to_ivec2
10578		version 310 es
10579		values
10580		{
10581			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
10582			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
10583			output ivec2 out0 = [ ivec2(9, 8) | ivec2(12, 9) | ivec2(0, 45) | ivec2(255, 2) | ivec2(8, 12) | ivec2(45, 193) | ivec2(3, 255) | ivec2(2, 0) | ivec2(10, 3) | ivec2(193, 10) ];
10584		}
10585
10586		both ""
10587			#version 310 es
10588			precision highp float;
10589			precision highp int;
10590
10591			${DECLARATIONS}
10592
10593			void main()
10594			{
10595				${SETUP}
10596				out0 = ivec2(in0, in1);
10597				${OUTPUT}
10598			}
10599		""
10600	end
10601
10602	case uint_uint_to_bvec2
10603		version 310 es
10604		values
10605		{
10606			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
10607			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
10608			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) ];
10609		}
10610
10611		both ""
10612			#version 310 es
10613			precision highp float;
10614			precision highp int;
10615
10616			${DECLARATIONS}
10617
10618			void main()
10619			{
10620				${SETUP}
10621				out0 = bvec2(in0, in1);
10622				${OUTPUT}
10623			}
10624		""
10625	end
10626
10627	case bool_bool_to_vec2
10628		version 310 es
10629		values
10630		{
10631			input bool in0 = [ true | false ];
10632			input bool in1 = [ true | false ];
10633			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
10634		}
10635
10636		both ""
10637			#version 310 es
10638			precision highp float;
10639			precision highp int;
10640
10641			${DECLARATIONS}
10642
10643			void main()
10644			{
10645				${SETUP}
10646				out0 = vec2(in0, in1);
10647				${OUTPUT}
10648			}
10649		""
10650	end
10651
10652	case bool_bool_to_ivec2
10653		version 310 es
10654		values
10655		{
10656			input bool in0 = [ true | false ];
10657			input bool in1 = [ true | false ];
10658			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
10659		}
10660
10661		both ""
10662			#version 310 es
10663			precision highp float;
10664			precision highp int;
10665
10666			${DECLARATIONS}
10667
10668			void main()
10669			{
10670				${SETUP}
10671				out0 = ivec2(in0, in1);
10672				${OUTPUT}
10673			}
10674		""
10675	end
10676
10677	case bool_bool_to_bvec2
10678		version 310 es
10679		values
10680		{
10681			input bool in0 = [ true | false ];
10682			input bool in1 = [ true | false ];
10683			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
10684		}
10685
10686		both ""
10687			#version 310 es
10688			precision highp float;
10689			precision highp int;
10690
10691			${DECLARATIONS}
10692
10693			void main()
10694			{
10695				${SETUP}
10696				out0 = bvec2(in0, in1);
10697				${OUTPUT}
10698			}
10699		""
10700	end
10701
10702	case float_int_to_vec2
10703		version 310 es
10704		values
10705		{
10706			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
10707			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
10708			output vec2 out0 = [ vec2(0.0, -66.0) | vec2(3.5, 1.0) | vec2(0.0, 255.0) | vec2(2.0, -192.0) | vec2(-8.25, 8.0) | vec2(36.8125, 2.0) | vec2(-20.125, 0.0) | vec2(1.0, 5.0) | vec2(1.0, -12.0) | vec2(-0.5, 11.0) ];
10709		}
10710
10711		both ""
10712			#version 310 es
10713			precision highp float;
10714			precision highp int;
10715
10716			${DECLARATIONS}
10717
10718			void main()
10719			{
10720				${SETUP}
10721				out0 = vec2(in0, in1);
10722				${OUTPUT}
10723			}
10724		""
10725	end
10726
10727	case float_int_to_ivec2
10728		version 310 es
10729		values
10730		{
10731			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
10732			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
10733			output ivec2 out0 = [ ivec2(0, -66) | ivec2(3, 1) | ivec2(0, 255) | ivec2(2, -192) | ivec2(-8, 8) | ivec2(36, 2) | ivec2(-20, 0) | ivec2(1, 5) | ivec2(1, -12) | ivec2(0, 11) ];
10734		}
10735
10736		both ""
10737			#version 310 es
10738			precision highp float;
10739			precision highp int;
10740
10741			${DECLARATIONS}
10742
10743			void main()
10744			{
10745				${SETUP}
10746				out0 = ivec2(in0, in1);
10747				${OUTPUT}
10748			}
10749		""
10750	end
10751
10752	case float_int_to_bvec2
10753		version 310 es
10754		values
10755		{
10756			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
10757			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
10758			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
10759		}
10760
10761		both ""
10762			#version 310 es
10763			precision highp float;
10764			precision highp int;
10765
10766			${DECLARATIONS}
10767
10768			void main()
10769			{
10770				${SETUP}
10771				out0 = bvec2(in0, in1);
10772				${OUTPUT}
10773			}
10774		""
10775	end
10776
10777	case float_bool_to_vec2
10778		version 310 es
10779		values
10780		{
10781			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
10782			input bool in1 = [ false | true | true | false | false | true | false | true ];
10783			output vec2 out0 = [ vec2(2.0, 0.0) | vec2(3.5, 1.0) | vec2(1.0, 1.0) | vec2(-20.125, 0.0) | vec2(-8.25, 0.0) | vec2(0.0, 1.0) | vec2(-0.5, 0.0) | vec2(36.8125, 1.0) ];
10784		}
10785
10786		both ""
10787			#version 310 es
10788			precision highp float;
10789			precision highp int;
10790
10791			${DECLARATIONS}
10792
10793			void main()
10794			{
10795				${SETUP}
10796				out0 = vec2(in0, in1);
10797				${OUTPUT}
10798			}
10799		""
10800	end
10801
10802	case float_bool_to_ivec2
10803		version 310 es
10804		values
10805		{
10806			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
10807			input bool in1 = [ false | true | true | false | false | true | false | true ];
10808			output ivec2 out0 = [ ivec2(2, 0) | ivec2(3, 1) | ivec2(1, 1) | ivec2(-20, 0) | ivec2(-8, 0) | ivec2(0, 1) | ivec2(0, 0) | ivec2(36, 1) ];
10809		}
10810
10811		both ""
10812			#version 310 es
10813			precision highp float;
10814			precision highp int;
10815
10816			${DECLARATIONS}
10817
10818			void main()
10819			{
10820				${SETUP}
10821				out0 = ivec2(in0, in1);
10822				${OUTPUT}
10823			}
10824		""
10825	end
10826
10827	case float_bool_to_bvec2
10828		version 310 es
10829		values
10830		{
10831			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
10832			input bool in1 = [ false | true | true | false | false | true | false | true ];
10833			output bvec2 out0 = [ bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, false) | bvec2(false, true) | bvec2(true, false) | bvec2(true, true) ];
10834		}
10835
10836		both ""
10837			#version 310 es
10838			precision highp float;
10839			precision highp int;
10840
10841			${DECLARATIONS}
10842
10843			void main()
10844			{
10845				${SETUP}
10846				out0 = bvec2(in0, in1);
10847				${OUTPUT}
10848			}
10849		""
10850	end
10851
10852	case int_bool_to_vec2
10853		version 310 es
10854		values
10855		{
10856			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
10857			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
10858			output vec2 out0 = [ vec2(255.0, 1.0) | vec2(2.0, 0.0) | vec2(-12.0, 0.0) | vec2(1.0, 0.0) | vec2(-192.0, 1.0) | vec2(5.0, 0.0) | vec2(8.0, 1.0) | vec2(0.0, 0.0) | vec2(-66.0, 1.0) | vec2(11.0, 1.0) ];
10859		}
10860
10861		both ""
10862			#version 310 es
10863			precision highp float;
10864			precision highp int;
10865
10866			${DECLARATIONS}
10867
10868			void main()
10869			{
10870				${SETUP}
10871				out0 = vec2(in0, in1);
10872				${OUTPUT}
10873			}
10874		""
10875	end
10876
10877	case int_bool_to_ivec2
10878		version 310 es
10879		values
10880		{
10881			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
10882			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
10883			output ivec2 out0 = [ ivec2(255, 1) | ivec2(2, 0) | ivec2(-12, 0) | ivec2(1, 0) | ivec2(-192, 1) | ivec2(5, 0) | ivec2(8, 1) | ivec2(0, 0) | ivec2(-66, 1) | ivec2(11, 1) ];
10884		}
10885
10886		both ""
10887			#version 310 es
10888			precision highp float;
10889			precision highp int;
10890
10891			${DECLARATIONS}
10892
10893			void main()
10894			{
10895				${SETUP}
10896				out0 = ivec2(in0, in1);
10897				${OUTPUT}
10898			}
10899		""
10900	end
10901
10902	case int_bool_to_bvec2
10903		version 310 es
10904		values
10905		{
10906			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
10907			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
10908			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(true, false) | bvec2(true, false) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) | bvec2(true, true) | bvec2(true, true) ];
10909		}
10910
10911		both ""
10912			#version 310 es
10913			precision highp float;
10914			precision highp int;
10915
10916			${DECLARATIONS}
10917
10918			void main()
10919			{
10920				${SETUP}
10921				out0 = bvec2(in0, in1);
10922				${OUTPUT}
10923			}
10924		""
10925	end
10926
10927	case int_uint_to_vec2
10928		version 310 es
10929		values
10930		{
10931			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
10932			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
10933			output vec2 out0 = [ vec2(-66.0, 193.0) | vec2(1.0, 0.0) | vec2(-192.0, 2.0) | vec2(-12.0, 10.0) | vec2(5.0, 255.0) | vec2(255.0, 12.0) | vec2(11.0, 45.0) | vec2(0.0, 8.0) | vec2(2.0, 9.0) | vec2(8.0, 3.0) ];
10934		}
10935
10936		both ""
10937			#version 310 es
10938			precision highp float;
10939			precision highp int;
10940
10941			${DECLARATIONS}
10942
10943			void main()
10944			{
10945				${SETUP}
10946				out0 = vec2(in0, in1);
10947				${OUTPUT}
10948			}
10949		""
10950	end
10951
10952	case int_uint_to_ivec2
10953		version 310 es
10954		values
10955		{
10956			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
10957			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
10958			output ivec2 out0 = [ ivec2(-66, 193) | ivec2(1, 0) | ivec2(-192, 2) | ivec2(-12, 10) | ivec2(5, 255) | ivec2(255, 12) | ivec2(11, 45) | ivec2(0, 8) | ivec2(2, 9) | ivec2(8, 3) ];
10959		}
10960
10961		both ""
10962			#version 310 es
10963			precision highp float;
10964			precision highp int;
10965
10966			${DECLARATIONS}
10967
10968			void main()
10969			{
10970				${SETUP}
10971				out0 = ivec2(in0, in1);
10972				${OUTPUT}
10973			}
10974		""
10975	end
10976
10977	case int_uint_to_bvec2
10978		version 310 es
10979		values
10980		{
10981			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
10982			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
10983			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(true, true) ];
10984		}
10985
10986		both ""
10987			#version 310 es
10988			precision highp float;
10989			precision highp int;
10990
10991			${DECLARATIONS}
10992
10993			void main()
10994			{
10995				${SETUP}
10996				out0 = bvec2(in0, in1);
10997				${OUTPUT}
10998			}
10999		""
11000	end
11001
11002	case uint_float_to_vec2
11003		version 310 es
11004		values
11005		{
11006			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
11007			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
11008			output vec2 out0 = [ vec2(12.0, -20.125) | vec2(0.0, 0.0) | vec2(8.0, 3.5) | vec2(193.0, -8.25) | vec2(3.0, 0.0) | vec2(10.0, 1.0) | vec2(9.0, 2.0) | vec2(2.0, 36.8125) | vec2(45.0, -0.5) | vec2(255.0, 1.0) ];
11009		}
11010
11011		both ""
11012			#version 310 es
11013			precision highp float;
11014			precision highp int;
11015
11016			${DECLARATIONS}
11017
11018			void main()
11019			{
11020				${SETUP}
11021				out0 = vec2(in0, in1);
11022				${OUTPUT}
11023			}
11024		""
11025	end
11026
11027	case uint_float_to_ivec2
11028		version 310 es
11029		values
11030		{
11031			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
11032			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
11033			output ivec2 out0 = [ ivec2(12, -20) | ivec2(0, 0) | ivec2(8, 3) | ivec2(193, -8) | ivec2(3, 0) | ivec2(10, 1) | ivec2(9, 2) | ivec2(2, 36) | ivec2(45, 0) | ivec2(255, 1) ];
11034		}
11035
11036		both ""
11037			#version 310 es
11038			precision highp float;
11039			precision highp int;
11040
11041			${DECLARATIONS}
11042
11043			void main()
11044			{
11045				${SETUP}
11046				out0 = ivec2(in0, in1);
11047				${OUTPUT}
11048			}
11049		""
11050	end
11051
11052	case uint_float_to_bvec2
11053		version 310 es
11054		values
11055		{
11056			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
11057			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
11058			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
11059		}
11060
11061		both ""
11062			#version 310 es
11063			precision highp float;
11064			precision highp int;
11065
11066			${DECLARATIONS}
11067
11068			void main()
11069			{
11070				${SETUP}
11071				out0 = bvec2(in0, in1);
11072				${OUTPUT}
11073			}
11074		""
11075	end
11076
11077	case float_float_to_uvec2
11078		version 310 es
11079		values
11080		{
11081			input float in0 = [ 8.25 | 36.8125 | 1.0 | 0.5 | 20.125 | 0.0 | 2.0 | 3.5 ];
11082			input float in1 = [ 0.5 | 36.8125 | 0.0 | 2.0 | 8.25 | 20.125 | 1.0 | 3.5 ];
11083			output uvec2 out0 = [ uvec2(8, 0) | uvec2(36, 36) | uvec2(1, 0) | uvec2(0, 2) | uvec2(20, 8) | uvec2(0, 20) | uvec2(2, 1) | uvec2(3, 3) ];
11084		}
11085
11086		both ""
11087			#version 310 es
11088			precision highp float;
11089			precision highp int;
11090
11091			${DECLARATIONS}
11092
11093			void main()
11094			{
11095				${SETUP}
11096				out0 = uvec2(in0, in1);
11097				${OUTPUT}
11098			}
11099		""
11100	end
11101
11102	case int_int_to_uvec2
11103		version 310 es
11104		values
11105		{
11106			input int in0 = [ 0 | 12 | 8 | 11 | 255 | 66 | 192 | 2 | 5 | 1 ];
11107			input int in1 = [ 11 | 12 | 2 | 5 | 66 | 192 | 255 | 0 | 1 | 8 ];
11108			output uvec2 out0 = [ uvec2(0, 11) | uvec2(12, 12) | uvec2(8, 2) | uvec2(11, 5) | uvec2(255, 66) | uvec2(66, 192) | uvec2(192, 255) | uvec2(2, 0) | uvec2(5, 1) | uvec2(1, 8) ];
11109		}
11110
11111		both ""
11112			#version 310 es
11113			precision highp float;
11114			precision highp int;
11115
11116			${DECLARATIONS}
11117
11118			void main()
11119			{
11120				${SETUP}
11121				out0 = uvec2(in0, in1);
11122				${OUTPUT}
11123			}
11124		""
11125	end
11126
11127	case uint_uint_to_uvec2
11128		version 310 es
11129		values
11130		{
11131			input uint in0 = [ 3 | 9 | 10 | 193 | 8 | 0 | 255 | 45 | 2 | 12 ];
11132			input uint in1 = [ 0 | 2 | 12 | 3 | 10 | 9 | 45 | 193 | 255 | 8 ];
11133			output uvec2 out0 = [ uvec2(3, 0) | uvec2(9, 2) | uvec2(10, 12) | uvec2(193, 3) | uvec2(8, 10) | uvec2(0, 9) | uvec2(255, 45) | uvec2(45, 193) | uvec2(2, 255) | uvec2(12, 8) ];
11134		}
11135
11136		both ""
11137			#version 310 es
11138			precision highp float;
11139			precision highp int;
11140
11141			${DECLARATIONS}
11142
11143			void main()
11144			{
11145				${SETUP}
11146				out0 = uvec2(in0, in1);
11147				${OUTPUT}
11148			}
11149		""
11150	end
11151
11152	case bool_bool_to_uvec2
11153		version 310 es
11154		values
11155		{
11156			input bool in0 = [ true | false ];
11157			input bool in1 = [ true | false ];
11158			output uvec2 out0 = [ uvec2(1, 1) | uvec2(0, 0) ];
11159		}
11160
11161		both ""
11162			#version 310 es
11163			precision highp float;
11164			precision highp int;
11165
11166			${DECLARATIONS}
11167
11168			void main()
11169			{
11170				${SETUP}
11171				out0 = uvec2(in0, in1);
11172				${OUTPUT}
11173			}
11174		""
11175	end
11176
11177	case float_int_to_uvec2
11178		version 310 es
11179		values
11180		{
11181			input float in0 = [ 8.25 | 1.0 | 0.5 | 3.5 | 2.0 | 0.0 | 36.8125 | 1.0 | 0.0 | 20.125 ];
11182			input int in1 = [ 0 | 255 | 12 | 5 | 192 | 2 | 66 | 11 | 1 | 8 ];
11183			output uvec2 out0 = [ uvec2(8, 0) | uvec2(1, 255) | uvec2(0, 12) | uvec2(3, 5) | uvec2(2, 192) | uvec2(0, 2) | uvec2(36, 66) | uvec2(1, 11) | uvec2(0, 1) | uvec2(20, 8) ];
11184		}
11185
11186		both ""
11187			#version 310 es
11188			precision highp float;
11189			precision highp int;
11190
11191			${DECLARATIONS}
11192
11193			void main()
11194			{
11195				${SETUP}
11196				out0 = uvec2(in0, in1);
11197				${OUTPUT}
11198			}
11199		""
11200	end
11201
11202	case float_bool_to_uvec2
11203		version 310 es
11204		values
11205		{
11206			input float in0 = [ 3.5 | 1.0 | 8.25 | 0.5 | 2.0 | 36.8125 | 0.0 | 20.125 ];
11207			input bool in1 = [ true | false | true | false | true | false | false | true ];
11208			output uvec2 out0 = [ uvec2(3, 1) | uvec2(1, 0) | uvec2(8, 1) | uvec2(0, 0) | uvec2(2, 1) | uvec2(36, 0) | uvec2(0, 0) | uvec2(20, 1) ];
11209		}
11210
11211		both ""
11212			#version 310 es
11213			precision highp float;
11214			precision highp int;
11215
11216			${DECLARATIONS}
11217
11218			void main()
11219			{
11220				${SETUP}
11221				out0 = uvec2(in0, in1);
11222				${OUTPUT}
11223			}
11224		""
11225	end
11226
11227	case int_bool_to_uvec2
11228		version 310 es
11229		values
11230		{
11231			input int in0 = [ 12 | 11 | 0 | 5 | 8 | 255 | 2 | 1 | 66 | 192 ];
11232			input bool in1 = [ true | true | false | false | false | true | false | false | true | true ];
11233			output uvec2 out0 = [ uvec2(12, 1) | uvec2(11, 1) | uvec2(0, 0) | uvec2(5, 0) | uvec2(8, 0) | uvec2(255, 1) | uvec2(2, 0) | uvec2(1, 0) | uvec2(66, 1) | uvec2(192, 1) ];
11234		}
11235
11236		both ""
11237			#version 310 es
11238			precision highp float;
11239			precision highp int;
11240
11241			${DECLARATIONS}
11242
11243			void main()
11244			{
11245				${SETUP}
11246				out0 = uvec2(in0, in1);
11247				${OUTPUT}
11248			}
11249		""
11250	end
11251
11252	case int_uint_to_uvec2
11253		version 310 es
11254		values
11255		{
11256			input int in0 = [ 8 | 5 | 1 | 0 | 11 | 12 | 192 | 66 | 255 | 2 ];
11257			input uint in1 = [ 8 | 10 | 45 | 255 | 9 | 193 | 2 | 3 | 0 | 12 ];
11258			output uvec2 out0 = [ uvec2(8, 8) | uvec2(5, 10) | uvec2(1, 45) | uvec2(0, 255) | uvec2(11, 9) | uvec2(12, 193) | uvec2(192, 2) | uvec2(66, 3) | uvec2(255, 0) | uvec2(2, 12) ];
11259		}
11260
11261		both ""
11262			#version 310 es
11263			precision highp float;
11264			precision highp int;
11265
11266			${DECLARATIONS}
11267
11268			void main()
11269			{
11270				${SETUP}
11271				out0 = uvec2(in0, in1);
11272				${OUTPUT}
11273			}
11274		""
11275	end
11276
11277	case uint_float_to_uvec2
11278		version 310 es
11279		values
11280		{
11281			input uint in0 = [ 9 | 45 | 8 | 3 | 10 | 2 | 193 | 12 | 255 | 0 ];
11282			input float in1 = [ 3.5 | 20.125 | 2.0 | 0.0 | 1.0 | 36.8125 | 8.25 | 1.0 | 0.0 | 0.5 ];
11283			output uvec2 out0 = [ uvec2(9, 3) | uvec2(45, 20) | uvec2(8, 2) | uvec2(3, 0) | uvec2(10, 1) | uvec2(2, 36) | uvec2(193, 8) | uvec2(12, 1) | uvec2(255, 0) | uvec2(0, 0) ];
11284		}
11285
11286		both ""
11287			#version 310 es
11288			precision highp float;
11289			precision highp int;
11290
11291			${DECLARATIONS}
11292
11293			void main()
11294			{
11295				${SETUP}
11296				out0 = uvec2(in0, in1);
11297				${OUTPUT}
11298			}
11299		""
11300	end
11301
11302
11303end # vector_combine
11304group matrix_combine "Matrix Combine Constructors"
11305
11306	case vec2_vec2_to_mat2
11307		version 310 es
11308		values
11309		{
11310			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
11311			input vec2 in1 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) ];
11312			output mat2 out0 = [ mat2(1.0, 1.25, 0.0, 0.5) | mat2(-32.0, 64.0, 1.0, 1.25) | mat2(-0.5, -2.25, -0.75, -0.0322580645161) | mat2(-0.75, -0.0322580645161, -32.0, 64.0) | mat2(0.0, 0.5, -0.5, -2.25) ];
11313		}
11314
11315		both ""
11316			#version 310 es
11317			precision highp float;
11318			precision highp int;
11319
11320			${DECLARATIONS}
11321
11322			void main()
11323			{
11324				${SETUP}
11325				out0 = mat2(in0, in1);
11326				${OUTPUT}
11327			}
11328		""
11329	end
11330
11331	case bvec2_bvec2_to_mat2
11332		version 310 es
11333		values
11334		{
11335			input bvec2 in0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) ];
11336			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, true) ];
11337			output mat2 out0 = [ mat2(0.0, 1.0, 0.0, 0.0) | mat2(1.0, 1.0, 1.0, 0.0) | mat2(1.0, 0.0, 0.0, 0.0) | mat2(0.0, 0.0, 1.0, 1.0) | mat2(0.0, 0.0, 0.0, 1.0) ];
11338		}
11339
11340		both ""
11341			#version 310 es
11342			precision highp float;
11343			precision highp int;
11344
11345			${DECLARATIONS}
11346
11347			void main()
11348			{
11349				${SETUP}
11350				out0 = mat2(in0, in1);
11351				${OUTPUT}
11352			}
11353		""
11354	end
11355
11356	case float_float_float_float_to_mat2
11357		version 310 es
11358		values
11359		{
11360			input float in0 = [ -8.25 | 3.5 | 36.8125 | 2.0 | -20.125 | 1.0 | -0.5 | 0.0 ];
11361			input float in1 = [ 3.5 | -20.125 | 1.0 | 0.0 | -8.25 | 2.0 | 36.8125 | -0.5 ];
11362			input float in2 = [ 36.8125 | 3.5 | 0.0 | -20.125 | -0.5 | -8.25 | 1.0 | 2.0 ];
11363			input float in3 = [ -0.5 | 0.0 | -8.25 | -20.125 | 2.0 | 3.5 | 1.0 | 36.8125 ];
11364			output mat2 out0 = [ mat2(-8.25, 3.5, 36.8125, -0.5) | mat2(3.5, -20.125, 3.5, 0.0) | mat2(36.8125, 1.0, 0.0, -8.25) | mat2(2.0, 0.0, -20.125, -20.125) | mat2(-20.125, -8.25, -0.5, 2.0) | mat2(1.0, 2.0, -8.25, 3.5) | mat2(-0.5, 36.8125, 1.0, 1.0) | mat2(0.0, -0.5, 2.0, 36.8125) ];
11365		}
11366
11367		both ""
11368			#version 310 es
11369			precision highp float;
11370			precision highp int;
11371
11372			${DECLARATIONS}
11373
11374			void main()
11375			{
11376				${SETUP}
11377				out0 = mat2(in0, in1, in2, in3);
11378				${OUTPUT}
11379			}
11380		""
11381	end
11382
11383	case int_int_int_int_to_mat2
11384		version 310 es
11385		values
11386		{
11387			input int in0 = [ 2 | 1 | -192 | 11 | -66 | 255 | 0 | 8 | -12 | 5 ];
11388			input int in1 = [ 11 | 255 | 5 | -66 | 8 | 2 | 0 | -12 | 1 | -192 ];
11389			input int in2 = [ 11 | 1 | -12 | 255 | 5 | 0 | 8 | -192 | 2 | -66 ];
11390			input int in3 = [ 2 | 1 | 0 | 8 | 255 | -66 | -192 | 11 | 5 | -12 ];
11391			output mat2 out0 = [ mat2(2.0, 11.0, 11.0, 2.0) | mat2(1.0, 255.0, 1.0, 1.0) | mat2(-192.0, 5.0, -12.0, 0.0) | mat2(11.0, -66.0, 255.0, 8.0) | mat2(-66.0, 8.0, 5.0, 255.0) | mat2(255.0, 2.0, 0.0, -66.0) | mat2(0.0, 0.0, 8.0, -192.0) | mat2(8.0, -12.0, -192.0, 11.0) | mat2(-12.0, 1.0, 2.0, 5.0) | mat2(5.0, -192.0, -66.0, -12.0) ];
11392		}
11393
11394		both ""
11395			#version 310 es
11396			precision highp float;
11397			precision highp int;
11398
11399			${DECLARATIONS}
11400
11401			void main()
11402			{
11403				${SETUP}
11404				out0 = mat2(in0, in1, in2, in3);
11405				${OUTPUT}
11406			}
11407		""
11408	end
11409
11410	case uint_uint_uint_uint_to_mat2
11411		version 310 es
11412		values
11413		{
11414			input uint in0 = [ 193 | 9 | 12 | 45 | 10 | 2 | 8 | 3 | 255 | 0 ];
11415			input uint in1 = [ 0 | 255 | 12 | 193 | 3 | 2 | 45 | 9 | 8 | 10 ];
11416			input uint in2 = [ 3 | 9 | 10 | 2 | 12 | 193 | 255 | 0 | 8 | 45 ];
11417			input uint in3 = [ 45 | 12 | 9 | 3 | 2 | 255 | 10 | 8 | 193 | 0 ];
11418			output mat2 out0 = [ mat2(193.0, 0.0, 3.0, 45.0) | mat2(9.0, 255.0, 9.0, 12.0) | mat2(12.0, 12.0, 10.0, 9.0) | mat2(45.0, 193.0, 2.0, 3.0) | mat2(10.0, 3.0, 12.0, 2.0) | mat2(2.0, 2.0, 193.0, 255.0) | mat2(8.0, 45.0, 255.0, 10.0) | mat2(3.0, 9.0, 0.0, 8.0) | mat2(255.0, 8.0, 8.0, 193.0) | mat2(0.0, 10.0, 45.0, 0.0) ];
11419		}
11420
11421		both ""
11422			#version 310 es
11423			precision highp float;
11424			precision highp int;
11425
11426			${DECLARATIONS}
11427
11428			void main()
11429			{
11430				${SETUP}
11431				out0 = mat2(in0, in1, in2, in3);
11432				${OUTPUT}
11433			}
11434		""
11435	end
11436
11437	case bool_bool_bool_bool_to_mat2
11438		version 310 es
11439		values
11440		{
11441			input bool in0 = [ true | false ];
11442			input bool in1 = [ true | false ];
11443			input bool in2 = [ true | false ];
11444			input bool in3 = [ false | true ];
11445			output mat2 out0 = [ mat2(1.0, 1.0, 1.0, 0.0) | mat2(0.0, 0.0, 0.0, 1.0) ];
11446		}
11447
11448		both ""
11449			#version 310 es
11450			precision highp float;
11451			precision highp int;
11452
11453			${DECLARATIONS}
11454
11455			void main()
11456			{
11457				${SETUP}
11458				out0 = mat2(in0, in1, in2, in3);
11459				${OUTPUT}
11460			}
11461		""
11462	end
11463
11464	case bool_float_int_bool_to_mat2
11465		version 310 es
11466		values
11467		{
11468			input bool in0 = [ false | true | false | true | true | false | true | true | false | false ];
11469			input float in1 = [ 2.0 | -0.5 | 0.0 | 1.0 | 1.0 | 36.8125 | 3.5 | 0.0 | -8.25 | -20.125 ];
11470			input int in2 = [ 0 | -12 | 8 | -192 | 1 | -66 | 5 | 11 | 2 | 255 ];
11471			input bool in3 = [ true | false | true | false | true | false | false | true | true | false ];
11472			output mat2 out0 = [ mat2(0.0, 2.0, 0.0, 1.0) | mat2(1.0, -0.5, -12.0, 0.0) | mat2(0.0, 0.0, 8.0, 1.0) | mat2(1.0, 1.0, -192.0, 0.0) | mat2(1.0, 1.0, 1.0, 1.0) | mat2(0.0, 36.8125, -66.0, 0.0) | mat2(1.0, 3.5, 5.0, 0.0) | mat2(1.0, 0.0, 11.0, 1.0) | mat2(0.0, -8.25, 2.0, 1.0) | mat2(0.0, -20.125, 255.0, 0.0) ];
11473		}
11474
11475		both ""
11476			#version 310 es
11477			precision highp float;
11478			precision highp int;
11479
11480			${DECLARATIONS}
11481
11482			void main()
11483			{
11484				${SETUP}
11485				out0 = mat2(in0, in1, in2, in3);
11486				${OUTPUT}
11487			}
11488		""
11489	end
11490
11491	case vec2_ivec2_to_mat2
11492		version 310 es
11493		values
11494		{
11495			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
11496			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
11497			output mat2 out0 = [ mat2(1.0, 1.25, 0.0, -2.0) | mat2(-32.0, 64.0, 0.0, 0.0) | mat2(-0.5, -2.25, 0.0, 0.0) | mat2(-0.75, -0.0322580645161, -32.0, 64.0) | mat2(0.0, 0.5, 1.0, 1.0) ];
11498		}
11499
11500		both ""
11501			#version 310 es
11502			precision highp float;
11503			precision highp int;
11504
11505			${DECLARATIONS}
11506
11507			void main()
11508			{
11509				${SETUP}
11510				out0 = mat2(in0, in1);
11511				${OUTPUT}
11512			}
11513		""
11514	end
11515
11516	case vec2_bvec2_to_mat2
11517		version 310 es
11518		values
11519		{
11520			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
11521			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) ];
11522			output mat2 out0 = [ mat2(-0.5, -2.25, 0.0, 0.0) | mat2(-32.0, 64.0, 1.0, 0.0) | mat2(1.0, 1.25, 0.0, 0.0) | mat2(-0.75, -0.0322580645161, 0.0, 1.0) | mat2(0.0, 0.5, 1.0, 1.0) ];
11523		}
11524
11525		both ""
11526			#version 310 es
11527			precision highp float;
11528			precision highp int;
11529
11530			${DECLARATIONS}
11531
11532			void main()
11533			{
11534				${SETUP}
11535				out0 = mat2(in0, in1);
11536				${OUTPUT}
11537			}
11538		""
11539	end
11540
11541	case bvec3_float_to_mat2
11542		version 310 es
11543		values
11544		{
11545			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(false, false, false) ];
11546			input float in1 = [ 36.8125 | -8.25 | 1.0 | -0.5 | 2.0 | -20.125 | 0.0 | 3.5 ];
11547			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 36.8125) | mat2(0.0, 1.0, 0.0, -8.25) | mat2(0.0, 0.0, 0.0, 1.0) | mat2(1.0, 1.0, 1.0, -0.5) | mat2(1.0, 0.0, 0.0, 2.0) | mat2(0.0, 1.0, 0.0, -20.125) | mat2(0.0, 0.0, 0.0, 0.0) | mat2(0.0, 0.0, 0.0, 3.5) ];
11548		}
11549
11550		both ""
11551			#version 310 es
11552			precision highp float;
11553			precision highp int;
11554
11555			${DECLARATIONS}
11556
11557			void main()
11558			{
11559				${SETUP}
11560				out0 = mat2(in0, in1);
11561				${OUTPUT}
11562			}
11563		""
11564	end
11565
11566	case vec3_float_to_mat2
11567		version 310 es
11568		values
11569		{
11570			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-0.5, -2.25, -4.875) | vec3(1.0, 1.25, 1.125) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
11571			input float in1 = [ -0.5 | -20.125 | 0.0 | 36.8125 | 3.5 | -8.25 | 2.0 | 1.0 ];
11572			output mat2 out0 = [ mat2(1.0, 1.25, 1.125, -0.5) | mat2(-0.5, -2.25, -4.875, -20.125) | mat2(-0.5, -2.25, -4.875, 0.0) | mat2(1.0, 1.25, 1.125, 36.8125) | mat2(0.0, 0.5, 0.75, 3.5) | mat2(-32.0, 64.0, -51.0, -8.25) | mat2(0.0, 0.5, 0.75, 2.0) | mat2(-0.75, -0.0322580645161, 0.0526315789474, 1.0) ];
11573		}
11574
11575		both ""
11576			#version 310 es
11577			precision highp float;
11578			precision highp int;
11579
11580			${DECLARATIONS}
11581
11582			void main()
11583			{
11584				${SETUP}
11585				out0 = mat2(in0, in1);
11586				${OUTPUT}
11587			}
11588		""
11589	end
11590
11591	case int_ivec2_int_to_mat2
11592		version 310 es
11593		values
11594		{
11595			input int in0 = [ 8 | -192 | 2 | 0 | -66 | 255 | 5 | 1 | -12 | 11 ];
11596			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(1, 1) ];
11597			input int in2 = [ 2 | 1 | -12 | 0 | 11 | 8 | 255 | -192 | 5 | -66 ];
11598			output mat2 out0 = [ mat2(8.0, 0.0, -2.0, 2.0) | mat2(-192.0, 0.0, 0.0, 1.0) | mat2(2.0, -32.0, 64.0, -12.0) | mat2(0.0, 0.0, 0.0, 0.0) | mat2(-66.0, 0.0, 0.0, 11.0) | mat2(255.0, -32.0, 64.0, 8.0) | mat2(5.0, 0.0, 0.0, 255.0) | mat2(1.0, 0.0, -2.0, -192.0) | mat2(-12.0, 1.0, 1.0, 5.0) | mat2(11.0, 1.0, 1.0, -66.0) ];
11599		}
11600
11601		both ""
11602			#version 310 es
11603			precision highp float;
11604			precision highp int;
11605
11606			${DECLARATIONS}
11607
11608			void main()
11609			{
11610				${SETUP}
11611				out0 = mat2(in0, in1, in2);
11612				${OUTPUT}
11613			}
11614		""
11615	end
11616
11617	case bool_float_ivec2_to_mat2
11618		version 310 es
11619		values
11620		{
11621			input bool in0 = [ true | true | true | false | false | true | false | false ];
11622			input float in1 = [ 1.0 | -0.5 | -20.125 | 36.8125 | 2.0 | 0.0 | -8.25 | 3.5 ];
11623			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, -2) ];
11624			output mat2 out0 = [ mat2(1.0, 1.0, 0.0, 0.0) | mat2(1.0, -0.5, 0.0, 0.0) | mat2(1.0, -20.125, 1.0, 1.0) | mat2(0.0, 36.8125, 0.0, 0.0) | mat2(0.0, 2.0, 1.0, 1.0) | mat2(1.0, 0.0, 0.0, -2.0) | mat2(0.0, -8.25, -32.0, 64.0) | mat2(0.0, 3.5, 0.0, -2.0) ];
11625		}
11626
11627		both ""
11628			#version 310 es
11629			precision highp float;
11630			precision highp int;
11631
11632			${DECLARATIONS}
11633
11634			void main()
11635			{
11636				${SETUP}
11637				out0 = mat2(in0, in1, in2);
11638				${OUTPUT}
11639			}
11640		""
11641	end
11642
11643	case float_uvec3_to_mat2
11644		version 310 es
11645		values
11646		{
11647			input float in0 = [ 36.8125 | 2.0 | -0.5 | 0.0 | -20.125 | 1.0 | 3.5 | -8.25 ];
11648			input uvec3 in1 = [ uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(0, 2, 4) | uvec3(0, 0, 0) | uvec3(32, 64, 51) | uvec3(0, 0, 0) | uvec3(0, 0, 0) | uvec3(1, 1, 1) ];
11649			output mat2 out0 = [ mat2(36.8125, 1.0, 1.0, 1.0) | mat2(2.0, 0.0, 2.0, 4.0) | mat2(-0.5, 0.0, 2.0, 4.0) | mat2(0.0, 0.0, 0.0, 0.0) | mat2(-20.125, 32.0, 64.0, 51.0) | mat2(1.0, 0.0, 0.0, 0.0) | mat2(3.5, 0.0, 0.0, 0.0) | mat2(-8.25, 1.0, 1.0, 1.0) ];
11650		}
11651
11652		both ""
11653			#version 310 es
11654			precision highp float;
11655			precision highp int;
11656
11657			${DECLARATIONS}
11658
11659			void main()
11660			{
11661				${SETUP}
11662				out0 = mat2(in0, in1);
11663				${OUTPUT}
11664			}
11665		""
11666	end
11667
11668	case int_uvec2_bool_to_mat2
11669		version 310 es
11670		values
11671		{
11672			input int in0 = [ 1 | -66 | 5 | -192 | 11 | 0 | 8 | 2 | -12 | 255 ];
11673			input uvec2 in1 = [ uvec2(0, 2) | uvec2(32, 64) | uvec2(1, 1) | uvec2(0, 0) | uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(0, 0) | uvec2(0, 0) | uvec2(32, 64) ];
11674			input bool in2 = [ true | false | true | false | false | false | true | true | true | false ];
11675			output mat2 out0 = [ mat2(1.0, 0.0, 2.0, 1.0) | mat2(-66.0, 32.0, 64.0, 0.0) | mat2(5.0, 1.0, 1.0, 1.0) | mat2(-192.0, 0.0, 0.0, 0.0) | mat2(11.0, 0.0, 0.0, 0.0) | mat2(0.0, 1.0, 1.0, 0.0) | mat2(8.0, 0.0, 2.0, 1.0) | mat2(2.0, 0.0, 0.0, 1.0) | mat2(-12.0, 0.0, 0.0, 1.0) | mat2(255.0, 32.0, 64.0, 0.0) ];
11676		}
11677
11678		both ""
11679			#version 310 es
11680			precision highp float;
11681			precision highp int;
11682
11683			${DECLARATIONS}
11684
11685			void main()
11686			{
11687				${SETUP}
11688				out0 = mat2(in0, in1, in2);
11689				${OUTPUT}
11690			}
11691		""
11692	end
11693
11694	case vec3_vec3_to_mat2x3
11695		version 310 es
11696		values
11697		{
11698			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) ];
11699			input vec3 in1 = [ vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
11700			output mat2x3 out0 = [ mat2x3(1.0, 1.25, 1.125, -32.0, 64.0, -51.0) | mat2x3(-0.75, -0.0322580645161, 0.0526315789474, -0.5, -2.25, -4.875) | mat2x3(-0.5, -2.25, -4.875, 0.0, 0.5, 0.75) | mat2x3(-32.0, 64.0, -51.0, 1.0, 1.25, 1.125) | mat2x3(0.0, 0.5, 0.75, -0.75, -0.0322580645161, 0.0526315789474) ];
11701		}
11702
11703		both ""
11704			#version 310 es
11705			precision highp float;
11706			precision highp int;
11707
11708			${DECLARATIONS}
11709
11710			void main()
11711			{
11712				${SETUP}
11713				out0 = mat2x3(in0, in1);
11714				${OUTPUT}
11715			}
11716		""
11717	end
11718
11719	case bvec3_bvec3_to_mat2x3
11720		version 310 es
11721		values
11722		{
11723			input bvec3 in0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(true, false, false) ];
11724			input bvec3 in1 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) ];
11725			output mat2x3 out0 = [ mat2x3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x3(0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat2x3(1.0, 1.0, 1.0, 1.0, 0.0, 0.0) | mat2x3(0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat2x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0) ];
11726		}
11727
11728		both ""
11729			#version 310 es
11730			precision highp float;
11731			precision highp int;
11732
11733			${DECLARATIONS}
11734
11735			void main()
11736			{
11737				${SETUP}
11738				out0 = mat2x3(in0, in1);
11739				${OUTPUT}
11740			}
11741		""
11742	end
11743
11744	case float_float_float_float_float_float_to_mat2x3
11745		version 310 es
11746		values
11747		{
11748			input float in0 = [ 1.0 | -8.25 | -20.125 | 36.8125 | -0.5 | 2.0 | 3.5 | 0.0 ];
11749			input float in1 = [ -0.5 | -20.125 | 36.8125 | -8.25 | 2.0 | 1.0 | 3.5 | 0.0 ];
11750			input float in2 = [ 3.5 | 1.0 | 36.8125 | -20.125 | -8.25 | -0.5 | 2.0 | 0.0 ];
11751			input float in3 = [ 1.0 | -8.25 | 0.0 | -20.125 | 2.0 | 3.5 | -0.5 | 36.8125 ];
11752			input float in4 = [ 1.0 | 0.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 ];
11753			input float in5 = [ 2.0 | -20.125 | -8.25 | -0.5 | 3.5 | 1.0 | 36.8125 | 0.0 ];
11754			output mat2x3 out0 = [ mat2x3(1.0, -0.5, 3.5, 1.0, 1.0, 2.0) | mat2x3(-8.25, -20.125, 1.0, -8.25, 0.0, -20.125) | mat2x3(-20.125, 36.8125, 36.8125, 0.0, 3.5, -8.25) | mat2x3(36.8125, -8.25, -20.125, -20.125, 2.0, -0.5) | mat2x3(-0.5, 2.0, -8.25, 2.0, -8.25, 3.5) | mat2x3(2.0, 1.0, -0.5, 3.5, -20.125, 1.0) | mat2x3(3.5, 3.5, 2.0, -0.5, -0.5, 36.8125) | mat2x3(0.0, 0.0, 0.0, 36.8125, 36.8125, 0.0) ];
11755		}
11756
11757		both ""
11758			#version 310 es
11759			precision highp float;
11760			precision highp int;
11761
11762			${DECLARATIONS}
11763
11764			void main()
11765			{
11766				${SETUP}
11767				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
11768				${OUTPUT}
11769			}
11770		""
11771	end
11772
11773	case int_int_int_int_int_int_to_mat2x3
11774		version 310 es
11775		values
11776		{
11777			input int in0 = [ 2 | 8 | -192 | 0 | 5 | -12 | 1 | 255 | -66 | 11 ];
11778			input int in1 = [ 1 | -192 | 8 | 0 | -12 | 2 | 11 | 255 | -66 | 5 ];
11779			input int in2 = [ -192 | 2 | -66 | 8 | 11 | 255 | 0 | 5 | -12 | 1 ];
11780			input int in3 = [ 2 | 11 | 255 | 0 | -66 | -12 | 5 | -192 | 8 | 1 ];
11781			input int in4 = [ 8 | 0 | -12 | -192 | 2 | -66 | 1 | 255 | 5 | 11 ];
11782			input int in5 = [ 0 | 11 | 5 | 8 | -12 | 255 | -192 | 2 | 1 | -66 ];
11783			output mat2x3 out0 = [ mat2x3(2.0, 1.0, -192.0, 2.0, 8.0, 0.0) | mat2x3(8.0, -192.0, 2.0, 11.0, 0.0, 11.0) | mat2x3(-192.0, 8.0, -66.0, 255.0, -12.0, 5.0) | mat2x3(0.0, 0.0, 8.0, 0.0, -192.0, 8.0) | mat2x3(5.0, -12.0, 11.0, -66.0, 2.0, -12.0) | mat2x3(-12.0, 2.0, 255.0, -12.0, -66.0, 255.0) | mat2x3(1.0, 11.0, 0.0, 5.0, 1.0, -192.0) | mat2x3(255.0, 255.0, 5.0, -192.0, 255.0, 2.0) | mat2x3(-66.0, -66.0, -12.0, 8.0, 5.0, 1.0) | mat2x3(11.0, 5.0, 1.0, 1.0, 11.0, -66.0) ];
11784		}
11785
11786		both ""
11787			#version 310 es
11788			precision highp float;
11789			precision highp int;
11790
11791			${DECLARATIONS}
11792
11793			void main()
11794			{
11795				${SETUP}
11796				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
11797				${OUTPUT}
11798			}
11799		""
11800	end
11801
11802	case bool_bool_bool_bool_bool_bool_to_mat2x3
11803		version 310 es
11804		values
11805		{
11806			input bool in0 = [ true | false ];
11807			input bool in1 = [ false | true ];
11808			input bool in2 = [ false | true ];
11809			input bool in3 = [ true | false ];
11810			input bool in4 = [ true | false ];
11811			input bool in5 = [ true | false ];
11812			output mat2x3 out0 = [ mat2x3(1.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat2x3(0.0, 1.0, 1.0, 0.0, 0.0, 0.0) ];
11813		}
11814
11815		both ""
11816			#version 310 es
11817			precision highp float;
11818			precision highp int;
11819
11820			${DECLARATIONS}
11821
11822			void main()
11823			{
11824				${SETUP}
11825				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
11826				${OUTPUT}
11827			}
11828		""
11829	end
11830
11831	case bool_float_int_bool_float_int_to_mat2x3
11832		version 310 es
11833		values
11834		{
11835			input bool in0 = [ false | true | false | true | false | true | false | true | true | false ];
11836			input float in1 = [ 0.0 | -8.25 | 2.0 | -20.125 | 3.5 | 0.0 | -0.5 | 36.8125 | 1.0 | 1.0 ];
11837			input int in2 = [ -66 | -12 | 2 | 8 | 255 | 11 | -192 | 1 | 5 | 0 ];
11838			input bool in3 = [ true | false | true | false | false | true | true | false | true | false ];
11839			input float in4 = [ 1.0 | 0.0 | -8.25 | 1.0 | 3.5 | -20.125 | -0.5 | 0.0 | 2.0 | 36.8125 ];
11840			input int in5 = [ 255 | -192 | 1 | 2 | -12 | -66 | 8 | 0 | 11 | 5 ];
11841			output mat2x3 out0 = [ mat2x3(0.0, 0.0, -66.0, 1.0, 1.0, 255.0) | mat2x3(1.0, -8.25, -12.0, 0.0, 0.0, -192.0) | mat2x3(0.0, 2.0, 2.0, 1.0, -8.25, 1.0) | mat2x3(1.0, -20.125, 8.0, 0.0, 1.0, 2.0) | mat2x3(0.0, 3.5, 255.0, 0.0, 3.5, -12.0) | mat2x3(1.0, 0.0, 11.0, 1.0, -20.125, -66.0) | mat2x3(0.0, -0.5, -192.0, 1.0, -0.5, 8.0) | mat2x3(1.0, 36.8125, 1.0, 0.0, 0.0, 0.0) | mat2x3(1.0, 1.0, 5.0, 1.0, 2.0, 11.0) | mat2x3(0.0, 1.0, 0.0, 0.0, 36.8125, 5.0) ];
11842		}
11843
11844		both ""
11845			#version 310 es
11846			precision highp float;
11847			precision highp int;
11848
11849			${DECLARATIONS}
11850
11851			void main()
11852			{
11853				${SETUP}
11854				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
11855				${OUTPUT}
11856			}
11857		""
11858	end
11859
11860	case vec3_ivec3_to_mat2x3
11861		version 310 es
11862		values
11863		{
11864			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
11865			input ivec3 in1 = [ ivec3(1, 1, 1) | ivec3(-32, 64, -51) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
11866			output mat2x3 out0 = [ mat2x3(1.0, 1.25, 1.125, 1.0, 1.0, 1.0) | mat2x3(-0.5, -2.25, -4.875, -32.0, 64.0, -51.0) | mat2x3(-32.0, 64.0, -51.0, 0.0, -2.0, -4.0) | mat2x3(0.0, 0.5, 0.75, 0.0, 0.0, 0.0) | mat2x3(-0.75, -0.0322580645161, 0.0526315789474, 0.0, 0.0, 0.0) ];
11867		}
11868
11869		both ""
11870			#version 310 es
11871			precision highp float;
11872			precision highp int;
11873
11874			${DECLARATIONS}
11875
11876			void main()
11877			{
11878				${SETUP}
11879				out0 = mat2x3(in0, in1);
11880				${OUTPUT}
11881			}
11882		""
11883	end
11884
11885	case vec2_bvec4_to_mat2x3
11886		version 310 es
11887		values
11888		{
11889			input vec2 in0 = [ vec2(-32.0, 64.0) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) ];
11890			input bvec4 in1 = [ bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
11891			output mat2x3 out0 = [ mat2x3(-32.0, 64.0, 1.0, 0.0, 0.0, 1.0) | mat2x3(0.0, 0.5, 0.0, 1.0, 0.0, 0.0) | mat2x3(-0.5, -2.25, 0.0, 0.0, 0.0, 1.0) | mat2x3(1.0, 1.25, 1.0, 1.0, 1.0, 1.0) | mat2x3(-0.75, -0.0322580645161, 0.0, 0.0, 0.0, 0.0) ];
11892		}
11893
11894		both ""
11895			#version 310 es
11896			precision highp float;
11897			precision highp int;
11898
11899			${DECLARATIONS}
11900
11901			void main()
11902			{
11903				${SETUP}
11904				out0 = mat2x3(in0, in1);
11905				${OUTPUT}
11906			}
11907		""
11908	end
11909
11910	case bvec3_float_ivec2_to_mat2x3
11911		version 310 es
11912		values
11913		{
11914			input bvec3 in0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, false, false) | bvec3(false, true, false) ];
11915			input float in1 = [ 1.0 | -8.25 | 36.8125 | 2.0 | 3.5 | -0.5 | -20.125 | 0.0 ];
11916			input ivec2 in2 = [ ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) ];
11917			output mat2x3 out0 = [ mat2x3(0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat2x3(0.0, 0.0, 0.0, -8.25, 0.0, 0.0) | mat2x3(1.0, 1.0, 1.0, 36.8125, -32.0, 64.0) | mat2x3(1.0, 0.0, 0.0, 2.0, 0.0, -2.0) | mat2x3(0.0, 0.0, 0.0, 3.5, 1.0, 1.0) | mat2x3(0.0, 1.0, 0.0, -0.5, 0.0, -2.0) | mat2x3(1.0, 0.0, 0.0, -20.125, 0.0, 0.0) | mat2x3(0.0, 1.0, 0.0, 0.0, 0.0, 0.0) ];
11918		}
11919
11920		both ""
11921			#version 310 es
11922			precision highp float;
11923			precision highp int;
11924
11925			${DECLARATIONS}
11926
11927			void main()
11928			{
11929				${SETUP}
11930				out0 = mat2x3(in0, in1, in2);
11931				${OUTPUT}
11932			}
11933		""
11934	end
11935
11936	case vec3_float_bvec2_to_mat2x3
11937		version 310 es
11938		values
11939		{
11940			input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
11941			input float in1 = [ 0.0 | 36.8125 | 3.5 | -0.5 | -8.25 | 2.0 | 1.0 | -20.125 ];
11942			input bvec2 in2 = [ bvec2(false, false) | bvec2(false, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
11943			output mat2x3 out0 = [ mat2x3(0.0, 0.5, 0.75, 0.0, 0.0, 0.0) | mat2x3(-0.5, -2.25, -4.875, 36.8125, 0.0, 1.0) | mat2x3(0.0, 0.5, 0.75, 3.5, 1.0, 0.0) | mat2x3(1.0, 1.25, 1.125, -0.5, 0.0, 1.0) | mat2x3(-0.5, -2.25, -4.875, -8.25, 0.0, 0.0) | mat2x3(-0.75, -0.0322580645161, 0.0526315789474, 2.0, 1.0, 0.0) | mat2x3(-32.0, 64.0, -51.0, 1.0, 1.0, 1.0) | mat2x3(1.0, 1.25, 1.125, -20.125, 0.0, 0.0) ];
11944		}
11945
11946		both ""
11947			#version 310 es
11948			precision highp float;
11949			precision highp int;
11950
11951			${DECLARATIONS}
11952
11953			void main()
11954			{
11955				${SETUP}
11956				out0 = mat2x3(in0, in1, in2);
11957				${OUTPUT}
11958			}
11959		""
11960	end
11961
11962	case vec3_vec3_vec2_to_mat2x4
11963		version 310 es
11964		values
11965		{
11966			input vec3 in0 = [ vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-32.0, 64.0, -51.0) ];
11967			input vec3 in1 = [ vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
11968			input vec2 in2 = [ vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
11969			output mat2x4 out0 = [ mat2x4(-0.5, -2.25, -4.875, 0.0, 0.5, 0.75, -0.75, -0.0322580645161) | mat2x4(-0.75, -0.0322580645161, 0.0526315789474, -0.5, -2.25, -4.875, -32.0, 64.0) | mat2x4(0.0, 0.5, 0.75, -0.75, -0.0322580645161, 0.0526315789474, 1.0, 1.25) | mat2x4(1.0, 1.25, 1.125, -32.0, 64.0, -51.0, 0.0, 0.5) | mat2x4(-32.0, 64.0, -51.0, 1.0, 1.25, 1.125, -0.5, -2.25) ];
11970		}
11971
11972		both ""
11973			#version 310 es
11974			precision highp float;
11975			precision highp int;
11976
11977			${DECLARATIONS}
11978
11979			void main()
11980			{
11981				${SETUP}
11982				out0 = mat2x4(in0, in1, in2);
11983				${OUTPUT}
11984			}
11985		""
11986	end
11987
11988	case ivec3_ivec3_ivec2_to_mat2x4
11989		version 310 es
11990		values
11991		{
11992			input ivec3 in0 = [ ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
11993			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
11994			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) ];
11995			output mat2x4 out0 = [ mat2x4(0.0, -2.0, -4.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x4(0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, -2.0) | mat2x4(1.0, 1.0, 1.0, 0.0, -2.0, -4.0, 1.0, 1.0) | mat2x4(0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 0.0, 0.0) | mat2x4(-32.0, 64.0, -51.0, 0.0, 0.0, 0.0, -32.0, 64.0) ];
11996		}
11997
11998		both ""
11999			#version 310 es
12000			precision highp float;
12001			precision highp int;
12002
12003			${DECLARATIONS}
12004
12005			void main()
12006			{
12007				${SETUP}
12008				out0 = mat2x4(in0, in1, in2);
12009				${OUTPUT}
12010			}
12011		""
12012	end
12013
12014	case vec2_ivec2_float_float_int_bool_to_mat2x4
12015		version 310 es
12016		values
12017		{
12018			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
12019			input ivec2 in1 = [ ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) ];
12020			input float in2 = [ -8.25 | -0.5 | 3.5 | 36.8125 | 0.0 | 0.0 | 2.0 | -20.125 | 1.0 | 1.0 ];
12021			input float in3 = [ 1.0 | 2.0 | -0.5 | 3.5 | 36.8125 | -8.25 | 1.0 | 0.0 | 0.0 | -20.125 ];
12022			input int in4 = [ 255 | 8 | 11 | -12 | -192 | 0 | 2 | 1 | -66 | 5 ];
12023			input bool in5 = [ true | false | false | true | false | true | true | false | true | false ];
12024			output mat2x4 out0 = [ mat2x4(0.0, 0.5, 1.0, 1.0, -8.25, 1.0, 255.0, 1.0) | mat2x4(-32.0, 64.0, 0.0, -2.0, -0.5, 2.0, 8.0, 0.0) | mat2x4(-0.5, -2.25, -32.0, 64.0, 3.5, -0.5, 11.0, 0.0) | mat2x4(0.0, 0.5, 0.0, -2.0, 36.8125, 3.5, -12.0, 1.0) | mat2x4(-32.0, 64.0, 0.0, 0.0, 0.0, 36.8125, -192.0, 0.0) | mat2x4(1.0, 1.25, 0.0, 0.0, 0.0, -8.25, 0.0, 1.0) | mat2x4(-0.75, -0.0322580645161, -32.0, 64.0, 2.0, 1.0, 2.0, 1.0) | mat2x4(1.0, 1.25, 0.0, 0.0, -20.125, 0.0, 1.0, 0.0) | mat2x4(-0.5, -2.25, 0.0, 0.0, 1.0, 0.0, -66.0, 1.0) | mat2x4(-0.75, -0.0322580645161, 1.0, 1.0, 1.0, -20.125, 5.0, 0.0) ];
12025		}
12026
12027		both ""
12028			#version 310 es
12029			precision highp float;
12030			precision highp int;
12031
12032			${DECLARATIONS}
12033
12034			void main()
12035			{
12036				${SETUP}
12037				out0 = mat2x4(in0, in1, in2, in3, in4, in5);
12038				${OUTPUT}
12039			}
12040		""
12041	end
12042
12043	case bool_float_int_vec2_bool_bvec2_to_mat2x4
12044		version 310 es
12045		values
12046		{
12047			input bool in0 = [ false | true | false | true | true | true | false | false | false | true ];
12048			input float in1 = [ 0.0 | -0.5 | -20.125 | -8.25 | 0.0 | 2.0 | 3.5 | 1.0 | 1.0 | 36.8125 ];
12049			input int in2 = [ 2 | 1 | 255 | 8 | -66 | 0 | -12 | 5 | -192 | 11 ];
12050			input vec2 in3 = [ vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
12051			input bool in4 = [ true | false | false | true | false | false | true | true | true | false ];
12052			input bvec2 in5 = [ bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) ];
12053			output mat2x4 out0 = [ mat2x4(0.0, 0.0, 2.0, -32.0, 64.0, 1.0, 1.0, 0.0) | mat2x4(1.0, -0.5, 1.0, -0.5, -2.25, 0.0, 1.0, 1.0) | mat2x4(0.0, -20.125, 255.0, 1.0, 1.25, 0.0, 0.0, 1.0) | mat2x4(1.0, -8.25, 8.0, -0.75, -0.0322580645161, 1.0, 1.0, 1.0) | mat2x4(1.0, 0.0, -66.0, 0.0, 0.5, 0.0, 0.0, 0.0) | mat2x4(1.0, 2.0, 0.0, 1.0, 1.25, 0.0, 0.0, 1.0) | mat2x4(0.0, 3.5, -12.0, -32.0, 64.0, 1.0, 0.0, 0.0) | mat2x4(0.0, 1.0, 5.0, -0.5, -2.25, 1.0, 0.0, 0.0) | mat2x4(0.0, 1.0, -192.0, 0.0, 0.5, 1.0, 0.0, 0.0) | mat2x4(1.0, 36.8125, 11.0, -0.75, -0.0322580645161, 0.0, 1.0, 0.0) ];
12054		}
12055
12056		both ""
12057			#version 310 es
12058			precision highp float;
12059			precision highp int;
12060
12061			${DECLARATIONS}
12062
12063			void main()
12064			{
12065				${SETUP}
12066				out0 = mat2x4(in0, in1, in2, in3, in4, in5);
12067				${OUTPUT}
12068			}
12069		""
12070	end
12071
12072	case bool_bvec2_int_vec4_to_mat2x4
12073		version 310 es
12074		values
12075		{
12076			input bool in0 = [ true | true | true | false | false | false | false | false | true | true ];
12077			input bvec2 in1 = [ bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) ];
12078			input int in2 = [ 8 | 1 | 5 | -66 | -192 | 11 | 255 | 0 | -12 | 2 ];
12079			input vec4 in3 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) ];
12080			output mat2x4 out0 = [ mat2x4(1.0, 1.0, 1.0, 8.0, 0.0, 0.5, 0.75, 0.825) | mat2x4(1.0, 0.0, 0.0, 1.0, 0.0, 0.5, 0.75, 0.825) | mat2x4(1.0, 1.0, 0.0, 5.0, -32.0, 64.0, -51.0, 24.0) | mat2x4(0.0, 0.0, 0.0, -66.0, 1.0, 1.25, 1.125, 1.75) | mat2x4(0.0, 1.0, 1.0, -192.0, -0.5, -2.25, -4.875, 9.0) | mat2x4(0.0, 1.0, 0.0, 11.0, 1.0, 1.25, 1.125, 1.75) | mat2x4(0.0, 0.0, 1.0, 255.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat2x4(0.0, 0.0, 0.0, 0.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat2x4(1.0, 0.0, 1.0, -12.0, -0.5, -2.25, -4.875, 9.0) | mat2x4(1.0, 0.0, 0.0, 2.0, -32.0, 64.0, -51.0, 24.0) ];
12081		}
12082
12083		both ""
12084			#version 310 es
12085			precision highp float;
12086			precision highp int;
12087
12088			${DECLARATIONS}
12089
12090			void main()
12091			{
12092				${SETUP}
12093				out0 = mat2x4(in0, in1, in2, in3);
12094				${OUTPUT}
12095			}
12096		""
12097	end
12098
12099	case float_bvec4_ivec2_bool_to_mat2x4
12100		version 310 es
12101		values
12102		{
12103			input float in0 = [ 0.0 | 3.5 | 2.0 | -8.25 | -20.125 | 36.8125 | 1.0 | -0.5 ];
12104			input bvec4 in1 = [ bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(false, true, false, false) | bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) ];
12105			input ivec2 in2 = [ ivec2(0, -2) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) ];
12106			input bool in3 = [ true | true | false | true | false | false | false | true ];
12107			output mat2x4 out0 = [ mat2x4(0.0, 1.0, 0.0, 0.0, 1.0, 0.0, -2.0, 1.0) | mat2x4(3.5, 1.0, 1.0, 1.0, 1.0, -32.0, 64.0, 1.0) | mat2x4(2.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0) | mat2x4(-8.25, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat2x4(-20.125, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat2x4(36.8125, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat2x4(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) | mat2x4(-0.5, 0.0, 0.0, 0.0, 0.0, 0.0, -2.0, 1.0) ];
12108		}
12109
12110		both ""
12111			#version 310 es
12112			precision highp float;
12113			precision highp int;
12114
12115			${DECLARATIONS}
12116
12117			void main()
12118			{
12119				${SETUP}
12120				out0 = mat2x4(in0, in1, in2, in3);
12121				${OUTPUT}
12122			}
12123		""
12124	end
12125
12126	case vec3_vec3_to_mat3x2
12127		version 310 es
12128		values
12129		{
12130			input vec3 in0 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
12131			input vec3 in1 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) ];
12132			output mat3x2 out0 = [ mat3x2(-0.75, -0.0322580645161, 0.0526315789474, 1.0, 1.25, 1.125) | mat3x2(-0.5, -2.25, -4.875, -0.75, -0.0322580645161, 0.0526315789474) | mat3x2(0.0, 0.5, 0.75, -32.0, 64.0, -51.0) | mat3x2(-32.0, 64.0, -51.0, -0.5, -2.25, -4.875) | mat3x2(1.0, 1.25, 1.125, 0.0, 0.5, 0.75) ];
12133		}
12134
12135		both ""
12136			#version 310 es
12137			precision highp float;
12138			precision highp int;
12139
12140			${DECLARATIONS}
12141
12142			void main()
12143			{
12144				${SETUP}
12145				out0 = mat3x2(in0, in1);
12146				${OUTPUT}
12147			}
12148		""
12149	end
12150
12151	case bvec3_bvec3_to_mat3x2
12152		version 310 es
12153		values
12154		{
12155			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
12156			input bvec3 in1 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(true, false, false) ];
12157			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat3x2(1.0, 1.0, 1.0, 0.0, 1.0, 0.0) | mat3x2(0.0, 0.0, 0.0, 1.0, 0.0, 0.0) ];
12158		}
12159
12160		both ""
12161			#version 310 es
12162			precision highp float;
12163			precision highp int;
12164
12165			${DECLARATIONS}
12166
12167			void main()
12168			{
12169				${SETUP}
12170				out0 = mat3x2(in0, in1);
12171				${OUTPUT}
12172			}
12173		""
12174	end
12175
12176	case float_float_float_float_float_float_to_mat3x2
12177		version 310 es
12178		values
12179		{
12180			input float in0 = [ -8.25 | 36.8125 | -20.125 | -0.5 | 3.5 | 1.0 | 2.0 | 0.0 ];
12181			input float in1 = [ 2.0 | 3.5 | -20.125 | 36.8125 | 1.0 | 0.0 | -8.25 | -0.5 ];
12182			input float in2 = [ -0.5 | 2.0 | 1.0 | 0.0 | -8.25 | 36.8125 | -20.125 | 3.5 ];
12183			input float in3 = [ 36.8125 | 0.0 | 1.0 | -0.5 | 2.0 | 3.5 | -20.125 | -8.25 ];
12184			input float in4 = [ 36.8125 | 2.0 | 0.0 | -0.5 | 3.5 | -20.125 | -8.25 | 1.0 ];
12185			input float in5 = [ 0.0 | 36.8125 | -20.125 | -0.5 | 3.5 | 2.0 | 1.0 | -8.25 ];
12186			output mat3x2 out0 = [ mat3x2(-8.25, 2.0, -0.5, 36.8125, 36.8125, 0.0) | mat3x2(36.8125, 3.5, 2.0, 0.0, 2.0, 36.8125) | mat3x2(-20.125, -20.125, 1.0, 1.0, 0.0, -20.125) | mat3x2(-0.5, 36.8125, 0.0, -0.5, -0.5, -0.5) | mat3x2(3.5, 1.0, -8.25, 2.0, 3.5, 3.5) | mat3x2(1.0, 0.0, 36.8125, 3.5, -20.125, 2.0) | mat3x2(2.0, -8.25, -20.125, -20.125, -8.25, 1.0) | mat3x2(0.0, -0.5, 3.5, -8.25, 1.0, -8.25) ];
12187		}
12188
12189		both ""
12190			#version 310 es
12191			precision highp float;
12192			precision highp int;
12193
12194			${DECLARATIONS}
12195
12196			void main()
12197			{
12198				${SETUP}
12199				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
12200				${OUTPUT}
12201			}
12202		""
12203	end
12204
12205	case int_int_int_int_int_int_to_mat3x2
12206		version 310 es
12207		values
12208		{
12209			input int in0 = [ 8 | -192 | 2 | 11 | 255 | -66 | 5 | -12 | 1 | 0 ];
12210			input int in1 = [ 1 | 2 | -12 | 5 | 0 | 255 | 8 | 11 | -192 | -66 ];
12211			input int in2 = [ -12 | 11 | 2 | 1 | 8 | -66 | -192 | 5 | 255 | 0 ];
12212			input int in3 = [ -192 | 0 | -12 | 11 | 1 | -66 | 8 | 255 | 2 | 5 ];
12213			input int in4 = [ -12 | 5 | 0 | -66 | 255 | 8 | -192 | 11 | 2 | 1 ];
12214			input int in5 = [ -66 | -12 | 8 | 2 | 255 | 0 | -192 | 11 | 1 | 5 ];
12215			output mat3x2 out0 = [ mat3x2(8.0, 1.0, -12.0, -192.0, -12.0, -66.0) | mat3x2(-192.0, 2.0, 11.0, 0.0, 5.0, -12.0) | mat3x2(2.0, -12.0, 2.0, -12.0, 0.0, 8.0) | mat3x2(11.0, 5.0, 1.0, 11.0, -66.0, 2.0) | mat3x2(255.0, 0.0, 8.0, 1.0, 255.0, 255.0) | mat3x2(-66.0, 255.0, -66.0, -66.0, 8.0, 0.0) | mat3x2(5.0, 8.0, -192.0, 8.0, -192.0, -192.0) | mat3x2(-12.0, 11.0, 5.0, 255.0, 11.0, 11.0) | mat3x2(1.0, -192.0, 255.0, 2.0, 2.0, 1.0) | mat3x2(0.0, -66.0, 0.0, 5.0, 1.0, 5.0) ];
12216		}
12217
12218		both ""
12219			#version 310 es
12220			precision highp float;
12221			precision highp int;
12222
12223			${DECLARATIONS}
12224
12225			void main()
12226			{
12227				${SETUP}
12228				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
12229				${OUTPUT}
12230			}
12231		""
12232	end
12233
12234	case bool_bool_bool_bool_bool_bool_to_mat3x2
12235		version 310 es
12236		values
12237		{
12238			input bool in0 = [ true | false ];
12239			input bool in1 = [ false | true ];
12240			input bool in2 = [ false | true ];
12241			input bool in3 = [ false | true ];
12242			input bool in4 = [ false | true ];
12243			input bool in5 = [ false | true ];
12244			output mat3x2 out0 = [ mat3x2(1.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(0.0, 1.0, 1.0, 1.0, 1.0, 1.0) ];
12245		}
12246
12247		both ""
12248			#version 310 es
12249			precision highp float;
12250			precision highp int;
12251
12252			${DECLARATIONS}
12253
12254			void main()
12255			{
12256				${SETUP}
12257				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
12258				${OUTPUT}
12259			}
12260		""
12261	end
12262
12263	case bool_float_int_bool_float_int_to_mat3x2
12264		version 310 es
12265		values
12266		{
12267			input bool in0 = [ true | false | true | true | false | true | false | true | false | false ];
12268			input float in1 = [ -20.125 | 0.0 | 3.5 | 0.0 | 1.0 | -8.25 | 1.0 | 2.0 | 36.8125 | -0.5 ];
12269			input int in2 = [ 255 | -66 | 8 | -192 | 5 | 11 | 1 | 2 | 0 | -12 ];
12270			input bool in3 = [ true | false | false | true | false | true | true | false | false | true ];
12271			input float in4 = [ 0.0 | -20.125 | 1.0 | -8.25 | 0.0 | -0.5 | 2.0 | 3.5 | 1.0 | 36.8125 ];
12272			input int in5 = [ -192 | 8 | 2 | 255 | -66 | -12 | 11 | 0 | 5 | 1 ];
12273			output mat3x2 out0 = [ mat3x2(1.0, -20.125, 255.0, 1.0, 0.0, -192.0) | mat3x2(0.0, 0.0, -66.0, 0.0, -20.125, 8.0) | mat3x2(1.0, 3.5, 8.0, 0.0, 1.0, 2.0) | mat3x2(1.0, 0.0, -192.0, 1.0, -8.25, 255.0) | mat3x2(0.0, 1.0, 5.0, 0.0, 0.0, -66.0) | mat3x2(1.0, -8.25, 11.0, 1.0, -0.5, -12.0) | mat3x2(0.0, 1.0, 1.0, 1.0, 2.0, 11.0) | mat3x2(1.0, 2.0, 2.0, 0.0, 3.5, 0.0) | mat3x2(0.0, 36.8125, 0.0, 0.0, 1.0, 5.0) | mat3x2(0.0, -0.5, -12.0, 1.0, 36.8125, 1.0) ];
12274		}
12275
12276		both ""
12277			#version 310 es
12278			precision highp float;
12279			precision highp int;
12280
12281			${DECLARATIONS}
12282
12283			void main()
12284			{
12285				${SETUP}
12286				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
12287				${OUTPUT}
12288			}
12289		""
12290	end
12291
12292	case vec3_ivec3_to_mat3x2
12293		version 310 es
12294		values
12295		{
12296			input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) ];
12297			input ivec3 in1 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
12298			output mat3x2 out0 = [ mat3x2(0.0, 0.5, 0.75, 1.0, 1.0, 1.0) | mat3x2(1.0, 1.25, 1.125, 0.0, 0.0, 0.0) | mat3x2(-0.75, -0.0322580645161, 0.0526315789474, 0.0, -2.0, -4.0) | mat3x2(-32.0, 64.0, -51.0, -32.0, 64.0, -51.0) | mat3x2(-0.5, -2.25, -4.875, 0.0, 0.0, 0.0) ];
12299		}
12300
12301		both ""
12302			#version 310 es
12303			precision highp float;
12304			precision highp int;
12305
12306			${DECLARATIONS}
12307
12308			void main()
12309			{
12310				${SETUP}
12311				out0 = mat3x2(in0, in1);
12312				${OUTPUT}
12313			}
12314		""
12315	end
12316
12317	case vec2_bvec4_to_mat3x2
12318		version 310 es
12319		values
12320		{
12321			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) ];
12322			input bvec4 in1 = [ bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(false, true, false, false) ];
12323			output mat3x2 out0 = [ mat3x2(0.0, 0.5, 1.0, 1.0, 1.0, 1.0) | mat3x2(-0.75, -0.0322580645161, 0.0, 0.0, 0.0, 1.0) | mat3x2(-32.0, 64.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(-0.5, -2.25, 1.0, 0.0, 0.0, 1.0) | mat3x2(1.0, 1.25, 0.0, 1.0, 0.0, 0.0) ];
12324		}
12325
12326		both ""
12327			#version 310 es
12328			precision highp float;
12329			precision highp int;
12330
12331			${DECLARATIONS}
12332
12333			void main()
12334			{
12335				${SETUP}
12336				out0 = mat3x2(in0, in1);
12337				${OUTPUT}
12338			}
12339		""
12340	end
12341
12342	case bvec3_float_ivec2_to_mat3x2
12343		version 310 es
12344		values
12345		{
12346			input bvec3 in0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(true, false, false) ];
12347			input float in1 = [ -8.25 | 1.0 | 2.0 | -0.5 | -20.125 | 0.0 | 36.8125 | 3.5 ];
12348			input ivec2 in2 = [ ivec2(1, 1) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) ];
12349			output mat3x2 out0 = [ mat3x2(0.0, 0.0, 0.0, -8.25, 1.0, 1.0) | mat3x2(1.0, 1.0, 1.0, 1.0, 1.0, 1.0) | mat3x2(0.0, 0.0, 0.0, 2.0, 0.0, 0.0) | mat3x2(0.0, 0.0, 0.0, -0.5, 0.0, -2.0) | mat3x2(0.0, 1.0, 0.0, -20.125, 0.0, 0.0) | mat3x2(1.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x2(0.0, 1.0, 0.0, 36.8125, 0.0, -2.0) | mat3x2(1.0, 0.0, 0.0, 3.5, -32.0, 64.0) ];
12350		}
12351
12352		both ""
12353			#version 310 es
12354			precision highp float;
12355			precision highp int;
12356
12357			${DECLARATIONS}
12358
12359			void main()
12360			{
12361				${SETUP}
12362				out0 = mat3x2(in0, in1, in2);
12363				${OUTPUT}
12364			}
12365		""
12366	end
12367
12368	case vec3_float_bvec2_to_mat3x2
12369		version 310 es
12370		values
12371		{
12372			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
12373			input float in1 = [ -8.25 | 36.8125 | -0.5 | 3.5 | 2.0 | -20.125 | 0.0 | 1.0 ];
12374			input bvec2 in2 = [ bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, true) | bvec2(true, false) | bvec2(false, false) ];
12375			output mat3x2 out0 = [ mat3x2(1.0, 1.25, 1.125, -8.25, 1.0, 0.0) | mat3x2(1.0, 1.25, 1.125, 36.8125, 0.0, 0.0) | mat3x2(-0.5, -2.25, -4.875, -0.5, 1.0, 1.0) | mat3x2(-0.5, -2.25, -4.875, 3.5, 0.0, 0.0) | mat3x2(-32.0, 64.0, -51.0, 2.0, 0.0, 1.0) | mat3x2(0.0, 0.5, 0.75, -20.125, 0.0, 1.0) | mat3x2(0.0, 0.5, 0.75, 0.0, 1.0, 0.0) | mat3x2(-0.75, -0.0322580645161, 0.0526315789474, 1.0, 0.0, 0.0) ];
12376		}
12377
12378		both ""
12379			#version 310 es
12380			precision highp float;
12381			precision highp int;
12382
12383			${DECLARATIONS}
12384
12385			void main()
12386			{
12387				${SETUP}
12388				out0 = mat3x2(in0, in1, in2);
12389				${OUTPUT}
12390			}
12391		""
12392	end
12393
12394	case vec3_vec3_vec3_to_mat3
12395		version 310 es
12396		values
12397		{
12398			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
12399			input vec3 in1 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(1.0, 1.25, 1.125) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) ];
12400			input vec3 in2 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(1.0, 1.25, 1.125) | vec3(0.0, 0.5, 0.75) ];
12401			output mat3 out0 = [ mat3(1.0, 1.25, 1.125, -0.75, -0.0322580645161, 0.0526315789474, -0.75, -0.0322580645161, 0.0526315789474) | mat3(-0.5, -2.25, -4.875, 1.0, 1.25, 1.125, -32.0, 64.0, -51.0) | mat3(-32.0, 64.0, -51.0, -32.0, 64.0, -51.0, -0.5, -2.25, -4.875) | mat3(0.0, 0.5, 0.75, -0.5, -2.25, -4.875, 1.0, 1.25, 1.125) | mat3(-0.75, -0.0322580645161, 0.0526315789474, 0.0, 0.5, 0.75, 0.0, 0.5, 0.75) ];
12402		}
12403
12404		both ""
12405			#version 310 es
12406			precision highp float;
12407			precision highp int;
12408
12409			${DECLARATIONS}
12410
12411			void main()
12412			{
12413				${SETUP}
12414				out0 = mat3(in0, in1, in2);
12415				${OUTPUT}
12416			}
12417		""
12418	end
12419
12420	case ivec3_ivec3_ivec3_to_mat3
12421		version 310 es
12422		values
12423		{
12424			input ivec3 in0 = [ ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
12425			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) | ivec3(1, 1, 1) ];
12426			input ivec3 in2 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, -2, -4) | ivec3(0, 0, 0) ];
12427			output mat3 out0 = [ mat3(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat3(0.0, -2.0, -4.0, 0.0, -2.0, -4.0, 0.0, 0.0, 0.0) | mat3(0.0, 0.0, 0.0, -32.0, 64.0, -51.0, -32.0, 64.0, -51.0) | mat3(-32.0, 64.0, -51.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0) | mat3(0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0) ];
12428		}
12429
12430		both ""
12431			#version 310 es
12432			precision highp float;
12433			precision highp int;
12434
12435			${DECLARATIONS}
12436
12437			void main()
12438			{
12439				${SETUP}
12440				out0 = mat3(in0, in1, in2);
12441				${OUTPUT}
12442			}
12443		""
12444	end
12445
12446	case vec2_ivec2_float_float_int_bool_bool_to_mat3
12447		version 310 es
12448		values
12449		{
12450			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) ];
12451			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(-32, 64) ];
12452			input float in2 = [ -0.5 | 3.5 | 0.0 | -20.125 | 1.0 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 ];
12453			input float in3 = [ 3.5 | 0.0 | -20.125 | 36.8125 | 2.0 | -8.25 | -0.5 | 1.0 | 0.0 | 1.0 ];
12454			input int in4 = [ 0 | 11 | 5 | -192 | 8 | -66 | 1 | 2 | 255 | -12 ];
12455			input bool in5 = [ true | true | true | false | true | false | false | false | true | false ];
12456			input bool in6 = [ false | false | true | false | false | false | true | true | true | true ];
12457			output mat3 out0 = [ mat3(1.0, 1.25, 0.0, 0.0, -0.5, 3.5, 0.0, 1.0, 0.0) | mat3(-0.5, -2.25, 0.0, -2.0, 3.5, 0.0, 11.0, 1.0, 0.0) | mat3(0.0, 0.5, 1.0, 1.0, 0.0, -20.125, 5.0, 1.0, 1.0) | mat3(-0.75, -0.0322580645161, 0.0, -2.0, -20.125, 36.8125, -192.0, 0.0, 0.0) | mat3(-32.0, 64.0, 0.0, 0.0, 1.0, 2.0, 8.0, 1.0, 0.0) | mat3(-0.75, -0.0322580645161, 0.0, 0.0, -8.25, -8.25, -66.0, 0.0, 0.0) | mat3(-0.5, -2.25, 1.0, 1.0, 0.0, -0.5, 1.0, 0.0, 1.0) | mat3(1.0, 1.25, -32.0, 64.0, 1.0, 1.0, 2.0, 0.0, 1.0) | mat3(0.0, 0.5, 0.0, 0.0, 2.0, 0.0, 255.0, 1.0, 1.0) | mat3(-32.0, 64.0, -32.0, 64.0, 36.8125, 1.0, -12.0, 0.0, 1.0) ];
12458		}
12459
12460		both ""
12461			#version 310 es
12462			precision highp float;
12463			precision highp int;
12464
12465			${DECLARATIONS}
12466
12467			void main()
12468			{
12469				${SETUP}
12470				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
12471				${OUTPUT}
12472			}
12473		""
12474	end
12475
12476	case bool_float_int_vec2_bool_bvec2_float_to_mat3
12477		version 310 es
12478		values
12479		{
12480			input bool in0 = [ false | true | true | true | true | true | false | false | false | false ];
12481			input float in1 = [ -8.25 | 1.0 | -0.5 | 36.8125 | 0.0 | 3.5 | -20.125 | 1.0 | 0.0 | 2.0 ];
12482			input int in2 = [ 8 | -66 | 5 | 1 | 0 | 2 | -12 | -192 | 11 | 255 ];
12483			input vec2 in3 = [ vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) ];
12484			input bool in4 = [ true | false | true | false | false | true | true | false | true | false ];
12485			input bvec2 in5 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) ];
12486			input float in6 = [ -0.5 | 1.0 | 1.0 | 0.0 | 36.8125 | 2.0 | 0.0 | 3.5 | -20.125 | -8.25 ];
12487			output mat3 out0 = [ mat3(0.0, -8.25, 8.0, 0.0, 0.5, 1.0, 0.0, 1.0, -0.5) | mat3(1.0, 1.0, -66.0, -32.0, 64.0, 0.0, 0.0, 0.0, 1.0) | mat3(1.0, -0.5, 5.0, 1.0, 1.25, 1.0, 1.0, 0.0, 1.0) | mat3(1.0, 36.8125, 1.0, -32.0, 64.0, 0.0, 0.0, 0.0, 0.0) | mat3(1.0, 0.0, 0.0, -0.5, -2.25, 0.0, 1.0, 1.0, 36.8125) | mat3(1.0, 3.5, 2.0, -0.75, -0.0322580645161, 1.0, 0.0, 0.0, 2.0) | mat3(0.0, -20.125, -12.0, -0.5, -2.25, 1.0, 1.0, 0.0, 0.0) | mat3(0.0, 1.0, -192.0, 0.0, 0.5, 0.0, 0.0, 0.0, 3.5) | mat3(0.0, 0.0, 11.0, 1.0, 1.25, 1.0, 0.0, 1.0, -20.125) | mat3(0.0, 2.0, 255.0, -0.75, -0.0322580645161, 0.0, 1.0, 1.0, -8.25) ];
12488		}
12489
12490		both ""
12491			#version 310 es
12492			precision highp float;
12493			precision highp int;
12494
12495			${DECLARATIONS}
12496
12497			void main()
12498			{
12499				${SETUP}
12500				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
12501				${OUTPUT}
12502			}
12503		""
12504	end
12505
12506	case bool_bvec2_int_vec4_bool_to_mat3
12507		version 310 es
12508		values
12509		{
12510			input bool in0 = [ true | false | true | true | false | false | true | false | false | true ];
12511			input bvec2 in1 = [ bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, true) | bvec2(true, false) | bvec2(true, false) | bvec2(false, false) ];
12512			input int in2 = [ -192 | 2 | 0 | 5 | 1 | -66 | 11 | -12 | 8 | 255 ];
12513			input vec4 in3 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | 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(-0.5, -2.25, -4.875, 9.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
12514			input bool in4 = [ false | true | false | true | false | false | false | true | true | true ];
12515			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, -192.0, -32.0, 64.0, -51.0, 24.0, 0.0) | mat3(0.0, 0.0, 1.0, 2.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0) | mat3(1.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.75, 0.825, 0.0) | mat3(1.0, 1.0, 1.0, 5.0, -32.0, 64.0, -51.0, 24.0, 1.0) | mat3(0.0, 1.0, 1.0, 1.0, 1.0, 1.25, 1.125, 1.75, 0.0) | mat3(0.0, 0.0, 0.0, -66.0, 0.0, 0.5, 0.75, 0.825, 0.0) | mat3(1.0, 0.0, 1.0, 11.0, 1.0, 1.25, 1.125, 1.75, 0.0) | mat3(0.0, 1.0, 0.0, -12.0, -0.5, -2.25, -4.875, 9.0, 1.0) | mat3(0.0, 1.0, 0.0, 8.0, -0.5, -2.25, -4.875, 9.0, 1.0) | mat3(1.0, 0.0, 0.0, 255.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0) ];
12516		}
12517
12518		both ""
12519			#version 310 es
12520			precision highp float;
12521			precision highp int;
12522
12523			${DECLARATIONS}
12524
12525			void main()
12526			{
12527				${SETUP}
12528				out0 = mat3(in0, in1, in2, in3, in4);
12529				${OUTPUT}
12530			}
12531		""
12532	end
12533
12534	case float_bvec4_ivec2_bool_bool_to_mat3
12535		version 310 es
12536		values
12537		{
12538			input float in0 = [ -8.25 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -20.125 | 0.0 ];
12539			input bvec4 in1 = [ bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, false, false, true) | bvec4(false, false, false, true) ];
12540			input ivec2 in2 = [ ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) ];
12541			input bool in3 = [ false | true | false | true | true | false | true | false ];
12542			input bool in4 = [ true | false | false | false | true | true | false | true ];
12543			output mat3 out0 = [ mat3(-8.25, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0) | mat3(2.0, 0.0, 1.0, 0.0, 0.0, 0.0, -2.0, 1.0, 0.0) | mat3(36.8125, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat3(3.5, 1.0, 1.0, 1.0, 1.0, -32.0, 64.0, 1.0, 0.0) | mat3(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0) | mat3(-0.5, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat3(-20.125, 1.0, 0.0, 0.0, 1.0, 0.0, -2.0, 1.0, 0.0) | mat3(0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0) ];
12544		}
12545
12546		both ""
12547			#version 310 es
12548			precision highp float;
12549			precision highp int;
12550
12551			${DECLARATIONS}
12552
12553			void main()
12554			{
12555				${SETUP}
12556				out0 = mat3(in0, in1, in2, in3, in4);
12557				${OUTPUT}
12558			}
12559		""
12560	end
12561
12562	case vec4_vec4_vec4_to_mat3x4
12563		version 310 es
12564		values
12565		{
12566			input vec4 in0 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) ];
12567			input vec4 in1 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) ];
12568			input vec4 in2 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) ];
12569			output mat3x4 out0 = [ mat3x4(-0.75, -0.0322580645161, 0.0526315789474, 0.25, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -32.0, 64.0, -51.0, 24.0) | mat3x4(1.0, 1.25, 1.125, 1.75, -0.5, -2.25, -4.875, 9.0, 1.0, 1.25, 1.125, 1.75) | mat3x4(-32.0, 64.0, -51.0, 24.0, 0.0, 0.5, 0.75, 0.825, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat3x4(-0.5, -2.25, -4.875, 9.0, -32.0, 64.0, -51.0, 24.0, -0.5, -2.25, -4.875, 9.0) | mat3x4(0.0, 0.5, 0.75, 0.825, 1.0, 1.25, 1.125, 1.75, 0.0, 0.5, 0.75, 0.825) ];
12570		}
12571
12572		both ""
12573			#version 310 es
12574			precision highp float;
12575			precision highp int;
12576
12577			${DECLARATIONS}
12578
12579			void main()
12580			{
12581				${SETUP}
12582				out0 = mat3x4(in0, in1, in2);
12583				${OUTPUT}
12584			}
12585		""
12586	end
12587
12588	case ivec4_ivec4_ivec4_to_mat3x4
12589		version 310 es
12590		values
12591		{
12592			input ivec4 in0 = [ ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) ];
12593			input ivec4 in1 = [ ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
12594			input ivec4 in2 = [ ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) ];
12595			output mat3x4 out0 = [ mat3x4(0.0, -2.0, -4.0, 9.0, 0.0, -2.0, -4.0, 9.0, 0.0, -2.0, -4.0, 9.0) | mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(-32.0, 64.0, -51.0, 24.0, -32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 1.0, 1.0) | mat3x4(0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0) ];
12596		}
12597
12598		both ""
12599			#version 310 es
12600			precision highp float;
12601			precision highp int;
12602
12603			${DECLARATIONS}
12604
12605			void main()
12606			{
12607				${SETUP}
12608				out0 = mat3x4(in0, in1, in2);
12609				${OUTPUT}
12610			}
12611		""
12612	end
12613
12614	case vec2_ivec2_float_float_float_int_int_bool_bool_bool_to_mat3x4
12615		version 310 es
12616		values
12617		{
12618			input vec2 in0 = [ vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(-0.5, -2.25) ];
12619			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, -2) ];
12620			input float in2 = [ 1.0 | -8.25 | 2.0 | 3.5 | -20.125 | 36.8125 | 0.0 | 1.0 | -0.5 | 0.0 ];
12621			input float in3 = [ -0.5 | 36.8125 | 1.0 | 1.0 | 0.0 | 3.5 | 2.0 | 0.0 | -8.25 | -20.125 ];
12622			input float in4 = [ -8.25 | 1.0 | 1.0 | 0.0 | 2.0 | 36.8125 | 0.0 | -20.125 | 3.5 | -0.5 ];
12623			input int in5 = [ 11 | 2 | 8 | 5 | 0 | -192 | 1 | -12 | 255 | -66 ];
12624			input int in6 = [ -12 | 5 | 8 | 1 | 0 | 255 | 11 | -192 | -66 | 2 ];
12625			input bool in7 = [ true | true | true | false | false | false | true | false | true | false ];
12626			input bool in8 = [ true | true | true | false | true | false | true | false | false | false ];
12627			input bool in9 = [ true | false | true | false | true | true | false | false | false | true ];
12628			output mat3x4 out0 = [ mat3x4(1.0, 1.25, 0.0, 0.0, 1.0, -0.5, -8.25, 11.0, -12.0, 1.0, 1.0, 1.0) | mat3x4(0.0, 0.5, 0.0, 0.0, -8.25, 36.8125, 1.0, 2.0, 5.0, 1.0, 1.0, 0.0) | mat3x4(0.0, 0.5, -32.0, 64.0, 2.0, 1.0, 1.0, 8.0, 8.0, 1.0, 1.0, 1.0) | mat3x4(-32.0, 64.0, 1.0, 1.0, 3.5, 1.0, 0.0, 5.0, 1.0, 0.0, 0.0, 0.0) | mat3x4(-32.0, 64.0, 1.0, 1.0, -20.125, 0.0, 2.0, 0.0, 0.0, 0.0, 1.0, 1.0) | mat3x4(-0.75, -0.0322580645161, -32.0, 64.0, 36.8125, 3.5, 36.8125, -192.0, 255.0, 0.0, 0.0, 1.0) | mat3x4(1.0, 1.25, 0.0, 0.0, 0.0, 2.0, 0.0, 1.0, 11.0, 1.0, 1.0, 0.0) | mat3x4(-0.75, -0.0322580645161, 0.0, -2.0, 1.0, 0.0, -20.125, -12.0, -192.0, 0.0, 0.0, 0.0) | mat3x4(-0.5, -2.25, 0.0, 0.0, -0.5, -8.25, 3.5, 255.0, -66.0, 1.0, 0.0, 0.0) | mat3x4(-0.5, -2.25, 0.0, -2.0, 0.0, -20.125, -0.5, -66.0, 2.0, 0.0, 0.0, 1.0) ];
12629		}
12630
12631		both ""
12632			#version 310 es
12633			precision highp float;
12634			precision highp int;
12635
12636			${DECLARATIONS}
12637
12638			void main()
12639			{
12640				${SETUP}
12641				out0 = mat3x4(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9);
12642				${OUTPUT}
12643			}
12644		""
12645	end
12646
12647	case bool_float_int_vec3_bool_bvec3_float_bool_to_mat3x4
12648		version 310 es
12649		values
12650		{
12651			input bool in0 = [ false | false | true | true | true | true | false | false | false | true ];
12652			input float in1 = [ 36.8125 | -8.25 | 1.0 | 0.0 | 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -20.125 ];
12653			input int in2 = [ -66 | -192 | 255 | 8 | 0 | -12 | 5 | 2 | 11 | 1 ];
12654			input vec3 in3 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-0.5, -2.25, -4.875) ];
12655			input bool in4 = [ false | true | true | true | false | false | true | true | false | false ];
12656			input bvec3 in5 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) ];
12657			input float in6 = [ -8.25 | 1.0 | -0.5 | 36.8125 | 0.0 | 2.0 | -20.125 | 1.0 | 0.0 | 3.5 ];
12658			input bool in7 = [ true | false | false | true | true | false | true | false | false | true ];
12659			output mat3x4 out0 = [ mat3x4(0.0, 36.8125, -66.0, -0.75, -0.0322580645161, 0.0526315789474, 0.0, 1.0, 0.0, 0.0, -8.25, 1.0) | mat3x4(0.0, -8.25, -192.0, -32.0, 64.0, -51.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(1.0, 1.0, 255.0, 0.0, 0.5, 0.75, 1.0, 0.0, 1.0, 0.0, -0.5, 0.0) | mat3x4(1.0, 0.0, 8.0, -0.75, -0.0322580645161, 0.0526315789474, 1.0, 0.0, 0.0, 0.0, 36.8125, 1.0) | mat3x4(1.0, 0.0, 0.0, 0.0, 0.5, 0.75, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0) | mat3x4(1.0, 1.0, -12.0, -32.0, 64.0, -51.0, 0.0, 1.0, 1.0, 1.0, 2.0, 0.0) | mat3x4(0.0, 2.0, 5.0, 1.0, 1.25, 1.125, 1.0, 1.0, 1.0, 1.0, -20.125, 1.0) | mat3x4(0.0, 3.5, 2.0, 1.0, 1.25, 1.125, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3x4(0.0, -0.5, 11.0, -0.5, -2.25, -4.875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3x4(1.0, -20.125, 1.0, -0.5, -2.25, -4.875, 0.0, 0.0, 0.0, 0.0, 3.5, 1.0) ];
12660		}
12661
12662		both ""
12663			#version 310 es
12664			precision highp float;
12665			precision highp int;
12666
12667			${DECLARATIONS}
12668
12669			void main()
12670			{
12671				${SETUP}
12672				out0 = mat3x4(in0, in1, in2, in3, in4, in5, in6, in7);
12673				${OUTPUT}
12674			}
12675		""
12676	end
12677
12678	case bool_bvec4_int_vec4_bool_float_to_mat3x4
12679		version 310 es
12680		values
12681		{
12682			input bool in0 = [ false | true | true | true | false | false | false | true | false | true ];
12683			input bvec4 in1 = [ bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, false, false, true) ];
12684			input int in2 = [ 255 | 2 | -192 | -12 | 11 | 1 | 0 | -66 | 8 | 5 ];
12685			input vec4 in3 = [ vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) ];
12686			input bool in4 = [ true | true | true | false | false | false | true | true | false | false ];
12687			input float in5 = [ 36.8125 | 2.0 | -8.25 | 0.0 | 1.0 | 1.0 | -0.5 | 3.5 | 0.0 | -20.125 ];
12688			output mat3x4 out0 = [ mat3x4(0.0, 0.0, 0.0, 0.0, 0.0, 255.0, -0.5, -2.25, -4.875, 9.0, 1.0, 36.8125) | mat3x4(1.0, 1.0, 0.0, 0.0, 1.0, 2.0, 1.0, 1.25, 1.125, 1.75, 1.0, 2.0) | mat3x4(1.0, 0.0, 1.0, 0.0, 0.0, -192.0, 1.0, 1.25, 1.125, 1.75, 1.0, -8.25) | mat3x4(1.0, 0.0, 0.0, 0.0, 1.0, -12.0, 0.0, 0.5, 0.75, 0.825, 0.0, 0.0) | mat3x4(0.0, 1.0, 1.0, 1.0, 1.0, 11.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 0.0, 1.0) | mat3x4(0.0, 0.0, 0.0, 0.0, 1.0, 1.0, -32.0, 64.0, -51.0, 24.0, 0.0, 1.0) | mat3x4(0.0, 1.0, 1.0, 1.0, 1.0, 0.0, -32.0, 64.0, -51.0, 24.0, 1.0, -0.5) | mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.5, 0.75, 0.825, 1.0, 3.5) | mat3x4(0.0, 0.0, 1.0, 0.0, 0.0, 8.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 0.0, 0.0) | mat3x4(1.0, 1.0, 0.0, 0.0, 1.0, 5.0, -0.5, -2.25, -4.875, 9.0, 0.0, -20.125) ];
12689		}
12690
12691		both ""
12692			#version 310 es
12693			precision highp float;
12694			precision highp int;
12695
12696			${DECLARATIONS}
12697
12698			void main()
12699			{
12700				${SETUP}
12701				out0 = mat3x4(in0, in1, in2, in3, in4, in5);
12702				${OUTPUT}
12703			}
12704		""
12705	end
12706
12707	case float_bvec4_ivec4_bool_bool_int_to_mat3x4
12708		version 310 es
12709		values
12710		{
12711			input float in0 = [ 36.8125 | 1.0 | 0.0 | 3.5 | -8.25 | -20.125 | 2.0 | 0.0 | 1.0 | -0.5 ];
12712			input bvec4 in1 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) | bvec4(false, false, false, false) ];
12713			input ivec4 in2 = [ ivec4(0, 0, 0, 0) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) ];
12714			input bool in3 = [ true | false | true | true | false | true | true | false | false | false ];
12715			input bool in4 = [ true | false | false | true | true | false | false | false | true | true ];
12716			input int in5 = [ 1 | 5 | -12 | 8 | -192 | 2 | -66 | 255 | 11 | 0 ];
12717			output mat3x4 out0 = [ mat3x4(36.8125, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat3x4(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 5.0) | mat3x4(0.0, 0.0, 1.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 1.0, 0.0, -12.0) | mat3x4(3.5, 0.0, 0.0, 0.0, 1.0, 0.0, -2.0, -4.0, 9.0, 1.0, 1.0, 8.0) | mat3x4(-8.25, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, -192.0) | mat3x4(-20.125, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 2.0) | mat3x4(2.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -66.0) | mat3x4(0.0, 0.0, 1.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 255.0) | mat3x4(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 11.0) | mat3x4(-0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0) ];
12718		}
12719
12720		both ""
12721			#version 310 es
12722			precision highp float;
12723			precision highp int;
12724
12725			${DECLARATIONS}
12726
12727			void main()
12728			{
12729				${SETUP}
12730				out0 = mat3x4(in0, in1, in2, in3, in4, in5);
12731				${OUTPUT}
12732			}
12733		""
12734	end
12735
12736	case vec3_vec3_vec2_to_mat4x2
12737		version 310 es
12738		values
12739		{
12740			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
12741			input vec3 in1 = [ vec3(-32.0, 64.0, -51.0) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) ];
12742			input vec2 in2 = [ vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(0.0, 0.5) ];
12743			output mat4x2 out0 = [ mat4x2(1.0, 1.25, 1.125, -32.0, 64.0, -51.0, 1.0, 1.25) | mat4x2(-32.0, 64.0, -51.0, -0.75, -0.0322580645161, 0.0526315789474, -0.5, -2.25) | mat4x2(0.0, 0.5, 0.75, -0.5, -2.25, -4.875, -0.75, -0.0322580645161) | mat4x2(-0.5, -2.25, -4.875, 0.0, 0.5, 0.75, -32.0, 64.0) | mat4x2(-0.75, -0.0322580645161, 0.0526315789474, 1.0, 1.25, 1.125, 0.0, 0.5) ];
12744		}
12745
12746		both ""
12747			#version 310 es
12748			precision highp float;
12749			precision highp int;
12750
12751			${DECLARATIONS}
12752
12753			void main()
12754			{
12755				${SETUP}
12756				out0 = mat4x2(in0, in1, in2);
12757				${OUTPUT}
12758			}
12759		""
12760	end
12761
12762	case ivec3_ivec3_ivec2_to_mat4x2
12763		version 310 es
12764		values
12765		{
12766			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
12767			input ivec3 in1 = [ ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
12768			input ivec2 in2 = [ ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) ];
12769			output mat4x2 out0 = [ mat4x2(0.0, 0.0, 0.0, 0.0, -2.0, -4.0, -32.0, 64.0) | mat4x2(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4x2(0.0, -2.0, -4.0, 1.0, 1.0, 1.0, 0.0, 0.0) | mat4x2(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0) | mat4x2(-32.0, 64.0, -51.0, -32.0, 64.0, -51.0, 0.0, -2.0) ];
12770		}
12771
12772		both ""
12773			#version 310 es
12774			precision highp float;
12775			precision highp int;
12776
12777			${DECLARATIONS}
12778
12779			void main()
12780			{
12781				${SETUP}
12782				out0 = mat4x2(in0, in1, in2);
12783				${OUTPUT}
12784			}
12785		""
12786	end
12787
12788	case vec2_ivec2_float_float_int_bool_to_mat4x2
12789		version 310 es
12790		values
12791		{
12792			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) ];
12793			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) ];
12794			input float in2 = [ 3.5 | -8.25 | 2.0 | 36.8125 | -0.5 | 1.0 | 1.0 | 0.0 | -20.125 | 0.0 ];
12795			input float in3 = [ 0.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | 2.0 | 0.0 | -20.125 | 1.0 ];
12796			input int in4 = [ -12 | -66 | 11 | 5 | 8 | 255 | -192 | 2 | 1 | 0 ];
12797			input bool in5 = [ true | true | false | true | false | true | false | true | false | false ];
12798			output mat4x2 out0 = [ mat4x2(-0.5, -2.25, 0.0, -2.0, 3.5, 0.0, -12.0, 1.0) | mat4x2(0.0, 0.5, 0.0, 0.0, -8.25, 36.8125, -66.0, 1.0) | mat4x2(1.0, 1.25, -32.0, 64.0, 2.0, 3.5, 11.0, 0.0) | mat4x2(0.0, 0.5, 1.0, 1.0, 36.8125, 1.0, 5.0, 1.0) | mat4x2(-32.0, 64.0, 1.0, 1.0, -0.5, -0.5, 8.0, 0.0) | mat4x2(-0.75, -0.0322580645161, 0.0, 0.0, 1.0, -8.25, 255.0, 1.0) | mat4x2(-0.75, -0.0322580645161, -32.0, 64.0, 1.0, 2.0, -192.0, 0.0) | mat4x2(-32.0, 64.0, 0.0, 0.0, 0.0, 0.0, 2.0, 1.0) | mat4x2(-0.5, -2.25, 0.0, 0.0, -20.125, -20.125, 1.0, 0.0) | mat4x2(1.0, 1.25, 0.0, -2.0, 0.0, 1.0, 0.0, 0.0) ];
12799		}
12800
12801		both ""
12802			#version 310 es
12803			precision highp float;
12804			precision highp int;
12805
12806			${DECLARATIONS}
12807
12808			void main()
12809			{
12810				${SETUP}
12811				out0 = mat4x2(in0, in1, in2, in3, in4, in5);
12812				${OUTPUT}
12813			}
12814		""
12815	end
12816
12817	case bool_float_int_vec2_bool_bvec2_to_mat4x2
12818		version 310 es
12819		values
12820		{
12821			input bool in0 = [ false | false | true | true | true | false | false | true | false | true ];
12822			input float in1 = [ 36.8125 | -8.25 | 3.5 | 1.0 | 2.0 | -0.5 | 0.0 | 1.0 | -20.125 | 0.0 ];
12823			input int in2 = [ -66 | 1 | -192 | 2 | 11 | 0 | 255 | 8 | 5 | -12 ];
12824			input vec2 in3 = [ vec2(-0.75, -0.0322580645161) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
12825			input bool in4 = [ true | false | false | false | false | true | true | true | false | true ];
12826			input bvec2 in5 = [ bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) | bvec2(true, false) ];
12827			output mat4x2 out0 = [ mat4x2(0.0, 36.8125, -66.0, -0.75, -0.0322580645161, 1.0, 0.0, 0.0) | mat4x2(0.0, -8.25, 1.0, -0.75, -0.0322580645161, 0.0, 0.0, 1.0) | mat4x2(1.0, 3.5, -192.0, -32.0, 64.0, 0.0, 0.0, 0.0) | mat4x2(1.0, 1.0, 2.0, 0.0, 0.5, 0.0, 1.0, 1.0) | mat4x2(1.0, 2.0, 11.0, 1.0, 1.25, 0.0, 1.0, 0.0) | mat4x2(0.0, -0.5, 0.0, 1.0, 1.25, 1.0, 0.0, 1.0) | mat4x2(0.0, 0.0, 255.0, -0.5, -2.25, 1.0, 0.0, 0.0) | mat4x2(1.0, 1.0, 8.0, -32.0, 64.0, 1.0, 1.0, 1.0) | mat4x2(0.0, -20.125, 5.0, 0.0, 0.5, 0.0, 0.0, 0.0) | mat4x2(1.0, 0.0, -12.0, -0.5, -2.25, 1.0, 1.0, 0.0) ];
12828		}
12829
12830		both ""
12831			#version 310 es
12832			precision highp float;
12833			precision highp int;
12834
12835			${DECLARATIONS}
12836
12837			void main()
12838			{
12839				${SETUP}
12840				out0 = mat4x2(in0, in1, in2, in3, in4, in5);
12841				${OUTPUT}
12842			}
12843		""
12844	end
12845
12846	case bool_bvec2_int_vec4_to_mat4x2
12847		version 310 es
12848		values
12849		{
12850			input bool in0 = [ false | false | true | false | true | false | true | true | true | false ];
12851			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(true, true) ];
12852			input int in2 = [ -12 | 8 | 2 | 255 | 5 | -192 | 0 | 11 | 1 | -66 ];
12853			input vec4 in3 = [ vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) ];
12854			output mat4x2 out0 = [ mat4x2(0.0, 1.0, 0.0, -12.0, 1.0, 1.25, 1.125, 1.75) | mat4x2(0.0, 0.0, 0.0, 8.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat4x2(1.0, 0.0, 0.0, 2.0, -32.0, 64.0, -51.0, 24.0) | mat4x2(0.0, 0.0, 0.0, 255.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat4x2(1.0, 1.0, 0.0, 5.0, -0.5, -2.25, -4.875, 9.0) | mat4x2(0.0, 0.0, 1.0, -192.0, -0.5, -2.25, -4.875, 9.0) | mat4x2(1.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.75, 0.825) | mat4x2(1.0, 0.0, 1.0, 11.0, -32.0, 64.0, -51.0, 24.0) | mat4x2(1.0, 1.0, 1.0, 1.0, 1.0, 1.25, 1.125, 1.75) | mat4x2(0.0, 1.0, 1.0, -66.0, 0.0, 0.5, 0.75, 0.825) ];
12855		}
12856
12857		both ""
12858			#version 310 es
12859			precision highp float;
12860			precision highp int;
12861
12862			${DECLARATIONS}
12863
12864			void main()
12865			{
12866				${SETUP}
12867				out0 = mat4x2(in0, in1, in2, in3);
12868				${OUTPUT}
12869			}
12870		""
12871	end
12872
12873	case float_bvec4_ivec2_bool_to_mat4x2
12874		version 310 es
12875		values
12876		{
12877			input float in0 = [ 1.0 | -8.25 | -20.125 | 3.5 | -0.5 | 2.0 | 36.8125 | 0.0 ];
12878			input bvec4 in1 = [ bvec4(false, false, false, true) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(false, true, false, false) | bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) ];
12879			input ivec2 in2 = [ ivec2(-32, 64) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) ];
12880			input bool in3 = [ true | true | false | true | true | false | false | false ];
12881			output mat4x2 out0 = [ mat4x2(1.0, 0.0, 0.0, 0.0, 1.0, -32.0, 64.0, 1.0) | mat4x2(-8.25, 1.0, 0.0, 0.0, 1.0, 0.0, -2.0, 1.0) | mat4x2(-20.125, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0) | mat4x2(3.5, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4x2(-0.5, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat4x2(2.0, 1.0, 0.0, 0.0, 1.0, 0.0, -2.0, 0.0) | mat4x2(36.8125, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0) | mat4x2(0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0) ];
12882		}
12883
12884		both ""
12885			#version 310 es
12886			precision highp float;
12887			precision highp int;
12888
12889			${DECLARATIONS}
12890
12891			void main()
12892			{
12893				${SETUP}
12894				out0 = mat4x2(in0, in1, in2, in3);
12895				${OUTPUT}
12896			}
12897		""
12898	end
12899
12900	case vec4_vec4_vec4_to_mat4x3
12901		version 310 es
12902		values
12903		{
12904			input vec4 in0 = [ vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) ];
12905			input vec4 in1 = [ vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
12906			input vec4 in2 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
12907			output mat4x3 out0 = [ mat4x3(-0.5, -2.25, -4.875, 9.0, 0.0, 0.5, 0.75, 0.825, -32.0, 64.0, -51.0, 24.0) | mat4x3(1.0, 1.25, 1.125, 1.75, -0.5, -2.25, -4.875, 9.0, 1.0, 1.25, 1.125, 1.75) | mat4x3(0.0, 0.5, 0.75, 0.825, -32.0, 64.0, -51.0, 24.0, -0.5, -2.25, -4.875, 9.0) | mat4x3(-0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0, 1.25, 1.125, 1.75, 0.0, 0.5, 0.75, 0.825) | mat4x3(-32.0, 64.0, -51.0, 24.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -0.75, -0.0322580645161, 0.0526315789474, 0.25) ];
12908		}
12909
12910		both ""
12911			#version 310 es
12912			precision highp float;
12913			precision highp int;
12914
12915			${DECLARATIONS}
12916
12917			void main()
12918			{
12919				${SETUP}
12920				out0 = mat4x3(in0, in1, in2);
12921				${OUTPUT}
12922			}
12923		""
12924	end
12925
12926	case ivec4_ivec4_ivec4_to_mat4x3
12927		version 310 es
12928		values
12929		{
12930			input ivec4 in0 = [ ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
12931			input ivec4 in1 = [ ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) | ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) ];
12932			input ivec4 in2 = [ ivec4(-32, 64, -51, 24) | ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) ];
12933			output mat4x3 out0 = [ mat4x3(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0) | mat4x3(0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0, -2.0, -4.0, 9.0) | mat4x3(0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0) | mat4x3(-32.0, 64.0, -51.0, 24.0, 0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0) | mat4x3(0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0) ];
12934		}
12935
12936		both ""
12937			#version 310 es
12938			precision highp float;
12939			precision highp int;
12940
12941			${DECLARATIONS}
12942
12943			void main()
12944			{
12945				${SETUP}
12946				out0 = mat4x3(in0, in1, in2);
12947				${OUTPUT}
12948			}
12949		""
12950	end
12951
12952	case vec2_ivec2_float_float_float_int_int_bool_bool_bool_to_mat4x3
12953		version 310 es
12954		values
12955		{
12956			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) ];
12957			input ivec2 in1 = [ ivec2(0, -2) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
12958			input float in2 = [ -20.125 | 3.5 | 2.0 | -0.5 | -8.25 | 0.0 | 1.0 | 0.0 | 1.0 | 36.8125 ];
12959			input float in3 = [ 0.0 | -8.25 | 36.8125 | 1.0 | 0.0 | -20.125 | 3.5 | 2.0 | -0.5 | 1.0 ];
12960			input float in4 = [ 0.0 | 1.0 | 3.5 | -20.125 | 0.0 | 36.8125 | 1.0 | -8.25 | 2.0 | -0.5 ];
12961			input int in5 = [ 2 | 8 | 1 | -192 | 0 | -12 | 11 | 255 | 5 | -66 ];
12962			input int in6 = [ 2 | -12 | 5 | 8 | 11 | 255 | 0 | -66 | 1 | -192 ];
12963			input bool in7 = [ true | true | false | true | false | false | false | true | false | true ];
12964			input bool in8 = [ true | false | false | true | true | false | true | true | false | false ];
12965			input bool in9 = [ false | true | false | false | false | false | true | true | true | true ];
12966			output mat4x3 out0 = [ mat4x3(-0.5, -2.25, 0.0, -2.0, -20.125, 0.0, 0.0, 2.0, 2.0, 1.0, 1.0, 0.0) | mat4x3(0.0, 0.5, -32.0, 64.0, 3.5, -8.25, 1.0, 8.0, -12.0, 1.0, 0.0, 1.0) | mat4x3(0.0, 0.5, 1.0, 1.0, 2.0, 36.8125, 3.5, 1.0, 5.0, 0.0, 0.0, 0.0) | mat4x3(1.0, 1.25, -32.0, 64.0, -0.5, 1.0, -20.125, -192.0, 8.0, 1.0, 1.0, 0.0) | mat4x3(-0.75, -0.0322580645161, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 11.0, 0.0, 1.0, 0.0) | mat4x3(-0.5, -2.25, 0.0, 0.0, 0.0, -20.125, 36.8125, -12.0, 255.0, 0.0, 0.0, 0.0) | mat4x3(-32.0, 64.0, 0.0, 0.0, 1.0, 3.5, 1.0, 11.0, 0.0, 0.0, 1.0, 1.0) | mat4x3(1.0, 1.25, 0.0, -2.0, 0.0, 2.0, -8.25, 255.0, -66.0, 1.0, 1.0, 1.0) | mat4x3(-32.0, 64.0, 0.0, 0.0, 1.0, -0.5, 2.0, 5.0, 1.0, 0.0, 0.0, 1.0) | mat4x3(-0.75, -0.0322580645161, 1.0, 1.0, 36.8125, 1.0, -0.5, -66.0, -192.0, 1.0, 0.0, 1.0) ];
12967		}
12968
12969		both ""
12970			#version 310 es
12971			precision highp float;
12972			precision highp int;
12973
12974			${DECLARATIONS}
12975
12976			void main()
12977			{
12978				${SETUP}
12979				out0 = mat4x3(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9);
12980				${OUTPUT}
12981			}
12982		""
12983	end
12984
12985	case bool_float_int_vec3_bool_bvec3_float_bool_to_mat4x3
12986		version 310 es
12987		values
12988		{
12989			input bool in0 = [ true | true | false | false | true | true | true | false | false | false ];
12990			input float in1 = [ -8.25 | 2.0 | 1.0 | -0.5 | 0.0 | 0.0 | 36.8125 | -20.125 | 3.5 | 1.0 ];
12991			input int in2 = [ 255 | 2 | 11 | 1 | 8 | -192 | 0 | -66 | -12 | 5 ];
12992			input vec3 in3 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(1.0, 1.25, 1.125) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) ];
12993			input bool in4 = [ true | true | false | false | true | false | false | false | true | true ];
12994			input bvec3 in5 = [ bvec3(false, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, false, false) | bvec3(true, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) ];
12995			input float in6 = [ 1.0 | 0.0 | -0.5 | 36.8125 | 1.0 | -20.125 | 2.0 | 0.0 | -8.25 | 3.5 ];
12996			input bool in7 = [ true | true | false | false | false | false | true | true | false | true ];
12997			output mat4x3 out0 = [ mat4x3(1.0, -8.25, 255.0, -0.75, -0.0322580645161, 0.0526315789474, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0) | mat4x3(1.0, 2.0, 2.0, 0.0, 0.5, 0.75, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0) | mat4x3(0.0, 1.0, 11.0, 0.0, 0.5, 0.75, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0) | mat4x3(0.0, -0.5, 1.0, -32.0, 64.0, -51.0, 0.0, 0.0, 1.0, 0.0, 36.8125, 0.0) | mat4x3(1.0, 0.0, 8.0, -0.5, -2.25, -4.875, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0) | mat4x3(1.0, 0.0, -192.0, 1.0, 1.25, 1.125, 0.0, 1.0, 0.0, 0.0, -20.125, 0.0) | mat4x3(1.0, 36.8125, 0.0, -32.0, 64.0, -51.0, 0.0, 1.0, 1.0, 1.0, 2.0, 1.0) | mat4x3(0.0, -20.125, -66.0, 1.0, 1.25, 1.125, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0) | mat4x3(0.0, 3.5, -12.0, -0.5, -2.25, -4.875, 1.0, 0.0, 0.0, 0.0, -8.25, 0.0) | mat4x3(0.0, 1.0, 5.0, -0.75, -0.0322580645161, 0.0526315789474, 1.0, 0.0, 0.0, 0.0, 3.5, 1.0) ];
12998		}
12999
13000		both ""
13001			#version 310 es
13002			precision highp float;
13003			precision highp int;
13004
13005			${DECLARATIONS}
13006
13007			void main()
13008			{
13009				${SETUP}
13010				out0 = mat4x3(in0, in1, in2, in3, in4, in5, in6, in7);
13011				${OUTPUT}
13012			}
13013		""
13014	end
13015
13016	case bool_bvec4_int_vec4_bool_float_to_mat4x3
13017		version 310 es
13018		values
13019		{
13020			input bool in0 = [ true | true | true | false | true | false | false | true | false | false ];
13021			input bvec4 in1 = [ bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(false, false, false, true) ];
13022			input int in2 = [ 5 | 11 | 0 | -192 | -66 | 255 | 1 | -12 | 8 | 2 ];
13023			input vec4 in3 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(0.0, 0.5, 0.75, 0.825) ];
13024			input bool in4 = [ false | true | true | false | true | false | true | true | false | false ];
13025			input float in5 = [ -20.125 | 0.0 | 1.0 | -0.5 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 ];
13026			output mat4x3 out0 = [ mat4x3(1.0, 0.0, 0.0, 0.0, 0.0, 5.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 0.0, -20.125) | mat4x3(1.0, 0.0, 1.0, 0.0, 0.0, 11.0, -32.0, 64.0, -51.0, 24.0, 1.0, 0.0) | mat4x3(1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.25, 1.125, 1.75, 1.0, 1.0) | mat4x3(0.0, 1.0, 1.0, 1.0, 1.0, -192.0, -0.5, -2.25, -4.875, 9.0, 0.0, -0.5) | mat4x3(1.0, 1.0, 1.0, 1.0, 1.0, -66.0, 1.0, 1.25, 1.125, 1.75, 1.0, 3.5) | mat4x3(0.0, 1.0, 0.0, 0.0, 1.0, 255.0, -32.0, 64.0, -51.0, 24.0, 0.0, -8.25) | mat4x3(0.0, 1.0, 0.0, 0.0, 1.0, 1.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0, 0.0) | mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, -12.0, -0.5, -2.25, -4.875, 9.0, 1.0, 1.0) | mat4x3(0.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.5, 0.75, 0.825, 0.0, 2.0) | mat4x3(0.0, 0.0, 0.0, 0.0, 1.0, 2.0, 0.0, 0.5, 0.75, 0.825, 0.0, 36.8125) ];
13027		}
13028
13029		both ""
13030			#version 310 es
13031			precision highp float;
13032			precision highp int;
13033
13034			${DECLARATIONS}
13035
13036			void main()
13037			{
13038				${SETUP}
13039				out0 = mat4x3(in0, in1, in2, in3, in4, in5);
13040				${OUTPUT}
13041			}
13042		""
13043	end
13044
13045	case float_bvec4_ivec4_bool_bool_int_to_mat4x3
13046		version 310 es
13047		values
13048		{
13049			input float in0 = [ 36.8125 | -0.5 | 3.5 | 2.0 | 1.0 | -20.125 | 0.0 | 0.0 | -8.25 | 1.0 ];
13050			input bvec4 in1 = [ bvec4(false, false, false, false) | bvec4(false, false, false, true) | bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) ];
13051			input ivec4 in2 = [ ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(0, -2, -4, 9) ];
13052			input bool in3 = [ false | true | false | true | false | false | false | true | true | true ];
13053			input bool in4 = [ false | true | false | true | false | true | false | false | true | true ];
13054			input int in5 = [ 2 | 1 | 8 | 11 | 255 | 5 | 0 | -66 | -192 | -12 ];
13055			output mat4x3 out0 = [ mat4x3(36.8125, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 2.0) | mat4x3(-0.5, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat4x3(3.5, 1.0, 0.0, 0.0, 1.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 8.0) | mat4x3(2.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 11.0) | mat4x3(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 255.0) | mat4x3(-20.125, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 5.0) | mat4x3(0.0, 1.0, 1.0, 1.0, 1.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 0.0) | mat4x3(0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, -66.0) | mat4x3(-8.25, 0.0, 1.0, 0.0, 0.0, 0.0, -2.0, -4.0, 9.0, 1.0, 1.0, -192.0) | mat4x3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, -2.0, -4.0, 9.0, 1.0, 1.0, -12.0) ];
13056		}
13057
13058		both ""
13059			#version 310 es
13060			precision highp float;
13061			precision highp int;
13062
13063			${DECLARATIONS}
13064
13065			void main()
13066			{
13067				${SETUP}
13068				out0 = mat4x3(in0, in1, in2, in3, in4, in5);
13069				${OUTPUT}
13070			}
13071		""
13072	end
13073
13074	case vec4_vec4_vec4_vec4_to_mat4
13075		version 310 es
13076		values
13077		{
13078			input vec4 in0 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) ];
13079			input vec4 in1 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) ];
13080			input vec4 in2 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) ];
13081			input vec4 in3 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.5, -2.25, -4.875, 9.0) ];
13082			output mat4 out0 = [ mat4(-0.75, -0.0322580645161, 0.0526315789474, 0.25, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -32.0, 64.0, -51.0, 24.0, -32.0, 64.0, -51.0, 24.0) | mat4(-32.0, 64.0, -51.0, 24.0, -32.0, 64.0, -51.0, 24.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat4(-0.5, -2.25, -4.875, 9.0, -0.5, -2.25, -4.875, 9.0, -0.5, -2.25, -4.875, 9.0, 1.0, 1.25, 1.125, 1.75) | mat4(1.0, 1.25, 1.125, 1.75, 1.0, 1.25, 1.125, 1.75, 1.0, 1.25, 1.125, 1.75, 0.0, 0.5, 0.75, 0.825) | mat4(0.0, 0.5, 0.75, 0.825, 0.0, 0.5, 0.75, 0.825, 0.0, 0.5, 0.75, 0.825, -0.5, -2.25, -4.875, 9.0) ];
13083		}
13084
13085		both ""
13086			#version 310 es
13087			precision highp float;
13088			precision highp int;
13089
13090			${DECLARATIONS}
13091
13092			void main()
13093			{
13094				${SETUP}
13095				out0 = mat4(in0, in1, in2, in3);
13096				${OUTPUT}
13097			}
13098		""
13099	end
13100
13101	case ivec4_ivec4_ivec4_ivec4_to_mat4
13102		version 310 es
13103		values
13104		{
13105			input ivec4 in0 = [ ivec4(-32, 64, -51, 24) | ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) ];
13106			input ivec4 in1 = [ ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
13107			input ivec4 in2 = [ ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) | ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
13108			input ivec4 in3 = [ ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) ];
13109			output mat4 out0 = [ mat4(-32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 1.0, 1.0, -32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 1.0, 1.0) | mat4(0.0, -2.0, -4.0, 9.0, 0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0, 9.0) | mat4(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0) | mat4(0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0) ];
13110		}
13111
13112		both ""
13113			#version 310 es
13114			precision highp float;
13115			precision highp int;
13116
13117			${DECLARATIONS}
13118
13119			void main()
13120			{
13121				${SETUP}
13122				out0 = mat4(in0, in1, in2, in3);
13123				${OUTPUT}
13124			}
13125		""
13126	end
13127
13128	case bvec4_bvec4_bvec4_bvec4_to_mat4
13129		version 310 es
13130		values
13131		{
13132			input bvec4 in0 = [ bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(true, false, false, true) ];
13133			input bvec4 in1 = [ bvec4(false, true, false, false) | bvec4(false, false, false, true) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
13134			input bvec4 in2 = [ bvec4(false, true, false, false) | bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(true, false, false, true) ];
13135			input bvec4 in3 = [ bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, false, false, true) ];
13136			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0) | mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0) | mat4(1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0) ];
13137		}
13138
13139		both ""
13140			#version 310 es
13141			precision highp float;
13142			precision highp int;
13143
13144			${DECLARATIONS}
13145
13146			void main()
13147			{
13148				${SETUP}
13149				out0 = mat4(in0, in1, in2, in3);
13150				${OUTPUT}
13151			}
13152		""
13153	end
13154
13155	case float_ivec3_bvec3_vec4_ivec2_float_vec2_to_mat4
13156		version 310 es
13157		values
13158		{
13159			input float in0 = [ 2.0 | 1.0 | 3.5 | 0.0 | -20.125 | 36.8125 | -0.5 | -8.25 ];
13160			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(0, -2, -4) ];
13161			input bvec3 in2 = [ bvec3(true, false, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(false, true, false) ];
13162			input vec4 in3 = [ vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.5, 0.75, 0.825) ];
13163			input ivec2 in4 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) ];
13164			input float in5 = [ 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 | -20.125 | 1.0 | -0.5 ];
13165			input vec2 in6 = [ vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(1.0, 1.25) ];
13166			output mat4 out0 = [ mat4(2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, -0.5, -2.25, -4.875, 9.0, 0.0, 0.0, 2.0, 0.0, 0.5) | mat4(1.0, -32.0, 64.0, -51.0, 1.0, 1.0, 1.0, 1.0, 1.25, 1.125, 1.75, 1.0, 1.0, 3.5, -0.5, -2.25) | mat4(3.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.75, 0.825, 0.0, -2.0, 36.8125, -32.0, 64.0) | mat4(0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, -0.5, -2.25, -4.875, 9.0, 0.0, 0.0, -8.25, 0.0, 0.5) | mat4(-20.125, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.25, 1.125, 1.75, 1.0, 1.0, 0.0, -0.75, -0.0322580645161) | mat4(36.8125, 0.0, -2.0, -4.0, 0.0, 1.0, 0.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -32.0, 64.0, -20.125, -0.5, -2.25) | mat4(-0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 1.0, 1.0, 1.25) | mat4(-8.25, 0.0, -2.0, -4.0, 0.0, 1.0, 0.0, 0.0, 0.5, 0.75, 0.825, 0.0, -2.0, -0.5, 1.0, 1.25) ];
13167		}
13168
13169		both ""
13170			#version 310 es
13171			precision highp float;
13172			precision highp int;
13173
13174			${DECLARATIONS}
13175
13176			void main()
13177			{
13178				${SETUP}
13179				out0 = mat4(in0, in1, in2, in3, in4, in5, in6);
13180				${OUTPUT}
13181			}
13182		""
13183	end
13184
13185
13186end # matrix_combine
13187