• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 300 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 300 es
16			precision mediump float;
17			precision mediump 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 300 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 300 es
40			precision mediump float;
41			precision mediump 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 300 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 300 es
64			precision mediump float;
65			precision mediump 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 300 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 300 es
88			precision mediump float;
89			precision mediump 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 300 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 300 es
112			precision mediump float;
113			precision mediump 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 300 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 300 es
136			precision mediump float;
137			precision mediump 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 300 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 300 es
160			precision mediump float;
161			precision mediump 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 300 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 300 es
184			precision mediump float;
185			precision mediump 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 300 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 300 es
208			precision mediump float;
209			precision mediump 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 300 es
224		values
225		{
226			input bool in0 = [ true | false ];
227			output float out0 = [ 1.0 | 0.0 ];
228		}
229
230		both ""
231			#version 300 es
232			precision mediump float;
233			precision mediump 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 300 es
248		values
249		{
250			input bool in0 = [ true | false ];
251			output int out0 = [ 1 | 0 ];
252		}
253
254		both ""
255			#version 300 es
256			precision mediump float;
257			precision mediump 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 300 es
272		values
273		{
274			input bool in0 = [ true | false ];
275			output bool out0 = [ true | false ];
276		}
277
278		both ""
279			#version 300 es
280			precision mediump float;
281			precision mediump 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 300 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 300 es
304			precision mediump float;
305			precision mediump 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 300 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 300 es
328			precision mediump float;
329			precision mediump 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 300 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 300 es
352			precision mediump float;
353			precision mediump 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 300 es
368		values
369		{
370			input bool in0 = [ true | false ];
371			output uint out0 = [ 1 | 0 ];
372		}
373
374		both ""
375			#version 300 es
376			precision mediump float;
377			precision mediump 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 300 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 300 es
404			precision mediump float;
405			precision mediump 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 300 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 300 es
428			precision mediump float;
429			precision mediump 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 300 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 300 es
452			precision mediump float;
453			precision mediump 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 300 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 300 es
476			precision mediump float;
477			precision mediump 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 300 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 300 es
500			precision mediump float;
501			precision mediump 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 300 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 300 es
524			precision mediump float;
525			precision mediump 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 300 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 300 es
548			precision mediump float;
549			precision mediump 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 300 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 300 es
572			precision mediump float;
573			precision mediump 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 300 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 300 es
596			precision mediump float;
597			precision mediump 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 300 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 300 es
620			precision mediump float;
621			precision mediump 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 300 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 300 es
644			precision mediump float;
645			precision mediump 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 300 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 300 es
668			precision mediump float;
669			precision mediump 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 300 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 300 es
692			precision mediump float;
693			precision mediump 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 300 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 300 es
716			precision mediump float;
717			precision mediump 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 300 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 300 es
740			precision mediump float;
741			precision mediump 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 300 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 300 es
764			precision mediump float;
765			precision mediump 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 300 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 300 es
788			precision mediump float;
789			precision mediump 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 300 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 300 es
812			precision mediump float;
813			precision mediump 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 300 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 300 es
836			precision mediump float;
837			precision mediump 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 300 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 300 es
860			precision mediump float;
861			precision mediump 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 300 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 300 es
884			precision mediump float;
885			precision mediump 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 300 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 300 es
908			precision mediump float;
909			precision mediump 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 300 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 300 es
932			precision mediump float;
933			precision mediump 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 300 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 300 es
956			precision mediump float;
957			precision mediump 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 300 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 300 es
980			precision mediump float;
981			precision mediump 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 300 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 300 es
1004			precision mediump float;
1005			precision mediump 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 300 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 300 es
1028			precision mediump float;
1029			precision mediump 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 300 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 300 es
1052			precision mediump float;
1053			precision mediump 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 300 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 300 es
1076			precision mediump float;
1077			precision mediump 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 300 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 300 es
1100			precision mediump float;
1101			precision mediump 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 300 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 300 es
1124			precision mediump float;
1125			precision mediump 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 300 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 300 es
1148			precision mediump float;
1149			precision mediump 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 300 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 300 es
1172			precision mediump float;
1173			precision mediump 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 300 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 300 es
1196			precision mediump float;
1197			precision mediump 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 300 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 300 es
1220			precision mediump float;
1221			precision mediump 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 300 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 300 es
1244			precision mediump float;
1245			precision mediump 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 300 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 300 es
1268			precision mediump float;
1269			precision mediump 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 300 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 300 es
1292			precision mediump float;
1293			precision mediump 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 300 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 300 es
1316			precision mediump float;
1317			precision mediump 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 300 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 300 es
1340			precision mediump float;
1341			precision mediump 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 300 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 300 es
1364			precision mediump float;
1365			precision mediump 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 300 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 300 es
1388			precision mediump float;
1389			precision mediump 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 300 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 300 es
1412			precision mediump float;
1413			precision mediump 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 300 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 300 es
1436			precision mediump float;
1437			precision mediump 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 300 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 300 es
1460			precision mediump float;
1461			precision mediump 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 300 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 300 es
1484			precision mediump float;
1485			precision mediump 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 300 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 300 es
1508			precision mediump float;
1509			precision mediump 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 300 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 300 es
1532			precision mediump float;
1533			precision mediump 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 300 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 300 es
1560			precision mediump float;
1561			precision mediump 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 300 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 300 es
1584			precision mediump float;
1585			precision mediump 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 300 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 300 es
1608			precision mediump float;
1609			precision mediump 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 300 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 300 es
1632			precision mediump float;
1633			precision mediump 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 300 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 300 es
1656			precision mediump float;
1657			precision mediump 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 300 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 300 es
1680			precision mediump float;
1681			precision mediump 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 300 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 300 es
1704			precision mediump float;
1705			precision mediump 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 300 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 300 es
1728			precision mediump float;
1729			precision mediump 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 300 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 300 es
1752			precision mediump float;
1753			precision mediump 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 300 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 300 es
1776			precision mediump float;
1777			precision mediump 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 300 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 300 es
1800			precision mediump float;
1801			precision mediump 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 300 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 300 es
1824			precision mediump float;
1825			precision mediump 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 300 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 300 es
1848			precision mediump float;
1849			precision mediump 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 300 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 300 es
1872			precision mediump float;
1873			precision mediump 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 300 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 300 es
1896			precision mediump float;
1897			precision mediump 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 300 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 300 es
1920			precision mediump float;
1921			precision mediump 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 300 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 300 es
1944			precision mediump float;
1945			precision mediump 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 300 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 300 es
1968			precision mediump float;
1969			precision mediump 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 300 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 300 es
1992			precision mediump float;
1993			precision mediump 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 300 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 300 es
2016			precision mediump float;
2017			precision mediump 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 300 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 300 es
2040			precision mediump float;
2041			precision mediump 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 300 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 300 es
2064			precision mediump float;
2065			precision mediump 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 300 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 300 es
2088			precision mediump float;
2089			precision mediump 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 300 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 300 es
2112			precision mediump float;
2113			precision mediump 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 300 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 300 es
2136			precision mediump float;
2137			precision mediump 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 300 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 300 es
2160			precision mediump float;
2161			precision mediump 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 300 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 300 es
2184			precision mediump float;
2185			precision mediump 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 300 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 300 es
2208			precision mediump float;
2209			precision mediump 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 300 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 300 es
2232			precision mediump float;
2233			precision mediump 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 300 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 300 es
2256			precision mediump float;
2257			precision mediump 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 300 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 300 es
2280			precision mediump float;
2281			precision mediump 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 300 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 300 es
2304			precision mediump float;
2305			precision mediump 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 300 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 300 es
2328			precision mediump float;
2329			precision mediump 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 300 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 300 es
2352			precision mediump float;
2353			precision mediump 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 300 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 300 es
2376			precision mediump float;
2377			precision mediump 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 300 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 300 es
2400			precision mediump float;
2401			precision mediump 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 300 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 300 es
2424			precision mediump float;
2425			precision mediump 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 300 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 300 es
2448			precision mediump float;
2449			precision mediump 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 300 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 300 es
2472			precision mediump float;
2473			precision mediump 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 300 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 300 es
2496			precision mediump float;
2497			precision mediump 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 300 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 300 es
2520			precision mediump float;
2521			precision mediump 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 300 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 300 es
2544			precision mediump float;
2545			precision mediump 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 300 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 300 es
2568			precision mediump float;
2569			precision mediump 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 300 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 300 es
2592			precision mediump float;
2593			precision mediump 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 300 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 300 es
2616			precision mediump float;
2617			precision mediump 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 300 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 300 es
2640			precision mediump float;
2641			precision mediump 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 300 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 300 es
2664			precision mediump float;
2665			precision mediump 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 300 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 300 es
2688			precision mediump float;
2689			precision mediump int;
2690
2691			${DECLARATIONS}
2692
2693			void main()
2694			{
2695				${SETUP}
2696				out0 = uint(in0);
2697				${OUTPUT}
2698			}
2699		""
2700	end
2701
2702
2703end # vector_to_scalar
2704group vector_illegal "Illegal Vector Conversions"
2705
2706	case vec2_to_vec3
2707		version 300 es
2708		expect compile_fail
2709		values {}
2710
2711		both ""
2712			#version 300 es
2713			precision mediump float;
2714			precision mediump int;
2715
2716			${DECLARATIONS}
2717
2718			void main()
2719			{
2720				${SETUP}
2721				vec2 in0 = vec2(0.0, 0.5);
2722				vec3 out0 = vec3(in0);
2723				${OUTPUT}
2724			}
2725		""
2726	end
2727
2728	case vec2_to_ivec3
2729		version 300 es
2730		expect compile_fail
2731		values {}
2732
2733		both ""
2734			#version 300 es
2735			precision mediump float;
2736			precision mediump int;
2737
2738			${DECLARATIONS}
2739
2740			void main()
2741			{
2742				${SETUP}
2743				vec2 in0 = vec2(0.0, 0.5);
2744				ivec3 out0 = ivec3(in0);
2745				${OUTPUT}
2746			}
2747		""
2748	end
2749
2750	case vec2_to_uvec3
2751		version 300 es
2752		expect compile_fail
2753		values {}
2754
2755		both ""
2756			#version 300 es
2757			precision mediump float;
2758			precision mediump int;
2759
2760			${DECLARATIONS}
2761
2762			void main()
2763			{
2764				${SETUP}
2765				vec2 in0 = vec2(0.0, 0.5);
2766				uvec3 out0 = uvec3(in0);
2767				${OUTPUT}
2768			}
2769		""
2770	end
2771
2772	case vec2_to_bvec3
2773		version 300 es
2774		expect compile_fail
2775		values {}
2776
2777		both ""
2778			#version 300 es
2779			precision mediump float;
2780			precision mediump int;
2781
2782			${DECLARATIONS}
2783
2784			void main()
2785			{
2786				${SETUP}
2787				vec2 in0 = vec2(0.0, 0.5);
2788				bvec3 out0 = bvec3(in0);
2789				${OUTPUT}
2790			}
2791		""
2792	end
2793
2794	case vec2_to_vec4
2795		version 300 es
2796		expect compile_fail
2797		values {}
2798
2799		both ""
2800			#version 300 es
2801			precision mediump float;
2802			precision mediump int;
2803
2804			${DECLARATIONS}
2805
2806			void main()
2807			{
2808				${SETUP}
2809				vec2 in0 = vec2(0.0, 0.5);
2810				vec4 out0 = vec4(in0);
2811				${OUTPUT}
2812			}
2813		""
2814	end
2815
2816	case vec2_to_ivec4
2817		version 300 es
2818		expect compile_fail
2819		values {}
2820
2821		both ""
2822			#version 300 es
2823			precision mediump float;
2824			precision mediump int;
2825
2826			${DECLARATIONS}
2827
2828			void main()
2829			{
2830				${SETUP}
2831				vec2 in0 = vec2(0.0, 0.5);
2832				ivec4 out0 = ivec4(in0);
2833				${OUTPUT}
2834			}
2835		""
2836	end
2837
2838	case vec2_to_uvec4
2839		version 300 es
2840		expect compile_fail
2841		values {}
2842
2843		both ""
2844			#version 300 es
2845			precision mediump float;
2846			precision mediump int;
2847
2848			${DECLARATIONS}
2849
2850			void main()
2851			{
2852				${SETUP}
2853				vec2 in0 = vec2(0.0, 0.5);
2854				uvec4 out0 = uvec4(in0);
2855				${OUTPUT}
2856			}
2857		""
2858	end
2859
2860	case vec2_to_bvec4
2861		version 300 es
2862		expect compile_fail
2863		values {}
2864
2865		both ""
2866			#version 300 es
2867			precision mediump float;
2868			precision mediump int;
2869
2870			${DECLARATIONS}
2871
2872			void main()
2873			{
2874				${SETUP}
2875				vec2 in0 = vec2(0.0, 0.5);
2876				bvec4 out0 = bvec4(in0);
2877				${OUTPUT}
2878			}
2879		""
2880	end
2881
2882	case ivec2_to_vec3
2883		version 300 es
2884		expect compile_fail
2885		values {}
2886
2887		both ""
2888			#version 300 es
2889			precision mediump float;
2890			precision mediump int;
2891
2892			${DECLARATIONS}
2893
2894			void main()
2895			{
2896				${SETUP}
2897				ivec2 in0 = ivec2(0, 0);
2898				vec3 out0 = vec3(in0);
2899				${OUTPUT}
2900			}
2901		""
2902	end
2903
2904	case ivec2_to_ivec3
2905		version 300 es
2906		expect compile_fail
2907		values {}
2908
2909		both ""
2910			#version 300 es
2911			precision mediump float;
2912			precision mediump int;
2913
2914			${DECLARATIONS}
2915
2916			void main()
2917			{
2918				${SETUP}
2919				ivec2 in0 = ivec2(0, 0);
2920				ivec3 out0 = ivec3(in0);
2921				${OUTPUT}
2922			}
2923		""
2924	end
2925
2926	case ivec2_to_uvec3
2927		version 300 es
2928		expect compile_fail
2929		values {}
2930
2931		both ""
2932			#version 300 es
2933			precision mediump float;
2934			precision mediump int;
2935
2936			${DECLARATIONS}
2937
2938			void main()
2939			{
2940				${SETUP}
2941				ivec2 in0 = ivec2(0, 0);
2942				uvec3 out0 = uvec3(in0);
2943				${OUTPUT}
2944			}
2945		""
2946	end
2947
2948	case ivec2_to_bvec3
2949		version 300 es
2950		expect compile_fail
2951		values {}
2952
2953		both ""
2954			#version 300 es
2955			precision mediump float;
2956			precision mediump int;
2957
2958			${DECLARATIONS}
2959
2960			void main()
2961			{
2962				${SETUP}
2963				ivec2 in0 = ivec2(0, 0);
2964				bvec3 out0 = bvec3(in0);
2965				${OUTPUT}
2966			}
2967		""
2968	end
2969
2970	case ivec2_to_vec4
2971		version 300 es
2972		expect compile_fail
2973		values {}
2974
2975		both ""
2976			#version 300 es
2977			precision mediump float;
2978			precision mediump int;
2979
2980			${DECLARATIONS}
2981
2982			void main()
2983			{
2984				${SETUP}
2985				ivec2 in0 = ivec2(0, 0);
2986				vec4 out0 = vec4(in0);
2987				${OUTPUT}
2988			}
2989		""
2990	end
2991
2992	case ivec2_to_ivec4
2993		version 300 es
2994		expect compile_fail
2995		values {}
2996
2997		both ""
2998			#version 300 es
2999			precision mediump float;
3000			precision mediump int;
3001
3002			${DECLARATIONS}
3003
3004			void main()
3005			{
3006				${SETUP}
3007				ivec2 in0 = ivec2(0, 0);
3008				ivec4 out0 = ivec4(in0);
3009				${OUTPUT}
3010			}
3011		""
3012	end
3013
3014	case ivec2_to_uvec4
3015		version 300 es
3016		expect compile_fail
3017		values {}
3018
3019		both ""
3020			#version 300 es
3021			precision mediump float;
3022			precision mediump int;
3023
3024			${DECLARATIONS}
3025
3026			void main()
3027			{
3028				${SETUP}
3029				ivec2 in0 = ivec2(0, 0);
3030				uvec4 out0 = uvec4(in0);
3031				${OUTPUT}
3032			}
3033		""
3034	end
3035
3036	case ivec2_to_bvec4
3037		version 300 es
3038		expect compile_fail
3039		values {}
3040
3041		both ""
3042			#version 300 es
3043			precision mediump float;
3044			precision mediump int;
3045
3046			${DECLARATIONS}
3047
3048			void main()
3049			{
3050				${SETUP}
3051				ivec2 in0 = ivec2(0, 0);
3052				bvec4 out0 = bvec4(in0);
3053				${OUTPUT}
3054			}
3055		""
3056	end
3057
3058	case uvec2_to_vec3
3059		version 300 es
3060		expect compile_fail
3061		values {}
3062
3063		both ""
3064			#version 300 es
3065			precision mediump float;
3066			precision mediump int;
3067
3068			${DECLARATIONS}
3069
3070			void main()
3071			{
3072				${SETUP}
3073				uvec2 in0 = uvec2(0, 0);
3074				vec3 out0 = vec3(in0);
3075				${OUTPUT}
3076			}
3077		""
3078	end
3079
3080	case uvec2_to_ivec3
3081		version 300 es
3082		expect compile_fail
3083		values {}
3084
3085		both ""
3086			#version 300 es
3087			precision mediump float;
3088			precision mediump int;
3089
3090			${DECLARATIONS}
3091
3092			void main()
3093			{
3094				${SETUP}
3095				uvec2 in0 = uvec2(0, 0);
3096				ivec3 out0 = ivec3(in0);
3097				${OUTPUT}
3098			}
3099		""
3100	end
3101
3102	case uvec2_to_uvec3
3103		version 300 es
3104		expect compile_fail
3105		values {}
3106
3107		both ""
3108			#version 300 es
3109			precision mediump float;
3110			precision mediump int;
3111
3112			${DECLARATIONS}
3113
3114			void main()
3115			{
3116				${SETUP}
3117				uvec2 in0 = uvec2(0, 0);
3118				uvec3 out0 = uvec3(in0);
3119				${OUTPUT}
3120			}
3121		""
3122	end
3123
3124	case uvec2_to_bvec3
3125		version 300 es
3126		expect compile_fail
3127		values {}
3128
3129		both ""
3130			#version 300 es
3131			precision mediump float;
3132			precision mediump int;
3133
3134			${DECLARATIONS}
3135
3136			void main()
3137			{
3138				${SETUP}
3139				uvec2 in0 = uvec2(0, 0);
3140				bvec3 out0 = bvec3(in0);
3141				${OUTPUT}
3142			}
3143		""
3144	end
3145
3146	case uvec2_to_vec4
3147		version 300 es
3148		expect compile_fail
3149		values {}
3150
3151		both ""
3152			#version 300 es
3153			precision mediump float;
3154			precision mediump int;
3155
3156			${DECLARATIONS}
3157
3158			void main()
3159			{
3160				${SETUP}
3161				uvec2 in0 = uvec2(0, 0);
3162				vec4 out0 = vec4(in0);
3163				${OUTPUT}
3164			}
3165		""
3166	end
3167
3168	case uvec2_to_ivec4
3169		version 300 es
3170		expect compile_fail
3171		values {}
3172
3173		both ""
3174			#version 300 es
3175			precision mediump float;
3176			precision mediump int;
3177
3178			${DECLARATIONS}
3179
3180			void main()
3181			{
3182				${SETUP}
3183				uvec2 in0 = uvec2(0, 0);
3184				ivec4 out0 = ivec4(in0);
3185				${OUTPUT}
3186			}
3187		""
3188	end
3189
3190	case uvec2_to_uvec4
3191		version 300 es
3192		expect compile_fail
3193		values {}
3194
3195		both ""
3196			#version 300 es
3197			precision mediump float;
3198			precision mediump int;
3199
3200			${DECLARATIONS}
3201
3202			void main()
3203			{
3204				${SETUP}
3205				uvec2 in0 = uvec2(0, 0);
3206				uvec4 out0 = uvec4(in0);
3207				${OUTPUT}
3208			}
3209		""
3210	end
3211
3212	case uvec2_to_bvec4
3213		version 300 es
3214		expect compile_fail
3215		values {}
3216
3217		both ""
3218			#version 300 es
3219			precision mediump float;
3220			precision mediump int;
3221
3222			${DECLARATIONS}
3223
3224			void main()
3225			{
3226				${SETUP}
3227				uvec2 in0 = uvec2(0, 0);
3228				bvec4 out0 = bvec4(in0);
3229				${OUTPUT}
3230			}
3231		""
3232	end
3233
3234	case bvec2_to_vec3
3235		version 300 es
3236		expect compile_fail
3237		values {}
3238
3239		both ""
3240			#version 300 es
3241			precision mediump float;
3242			precision mediump int;
3243
3244			${DECLARATIONS}
3245
3246			void main()
3247			{
3248				${SETUP}
3249				bvec2 in0 = bvec2(true, false);
3250				vec3 out0 = vec3(in0);
3251				${OUTPUT}
3252			}
3253		""
3254	end
3255
3256	case bvec2_to_ivec3
3257		version 300 es
3258		expect compile_fail
3259		values {}
3260
3261		both ""
3262			#version 300 es
3263			precision mediump float;
3264			precision mediump int;
3265
3266			${DECLARATIONS}
3267
3268			void main()
3269			{
3270				${SETUP}
3271				bvec2 in0 = bvec2(true, false);
3272				ivec3 out0 = ivec3(in0);
3273				${OUTPUT}
3274			}
3275		""
3276	end
3277
3278	case bvec2_to_uvec3
3279		version 300 es
3280		expect compile_fail
3281		values {}
3282
3283		both ""
3284			#version 300 es
3285			precision mediump float;
3286			precision mediump int;
3287
3288			${DECLARATIONS}
3289
3290			void main()
3291			{
3292				${SETUP}
3293				bvec2 in0 = bvec2(true, false);
3294				uvec3 out0 = uvec3(in0);
3295				${OUTPUT}
3296			}
3297		""
3298	end
3299
3300	case bvec2_to_bvec3
3301		version 300 es
3302		expect compile_fail
3303		values {}
3304
3305		both ""
3306			#version 300 es
3307			precision mediump float;
3308			precision mediump int;
3309
3310			${DECLARATIONS}
3311
3312			void main()
3313			{
3314				${SETUP}
3315				bvec2 in0 = bvec2(true, false);
3316				bvec3 out0 = bvec3(in0);
3317				${OUTPUT}
3318			}
3319		""
3320	end
3321
3322	case bvec2_to_vec4
3323		version 300 es
3324		expect compile_fail
3325		values {}
3326
3327		both ""
3328			#version 300 es
3329			precision mediump float;
3330			precision mediump int;
3331
3332			${DECLARATIONS}
3333
3334			void main()
3335			{
3336				${SETUP}
3337				bvec2 in0 = bvec2(true, false);
3338				vec4 out0 = vec4(in0);
3339				${OUTPUT}
3340			}
3341		""
3342	end
3343
3344	case bvec2_to_ivec4
3345		version 300 es
3346		expect compile_fail
3347		values {}
3348
3349		both ""
3350			#version 300 es
3351			precision mediump float;
3352			precision mediump int;
3353
3354			${DECLARATIONS}
3355
3356			void main()
3357			{
3358				${SETUP}
3359				bvec2 in0 = bvec2(true, false);
3360				ivec4 out0 = ivec4(in0);
3361				${OUTPUT}
3362			}
3363		""
3364	end
3365
3366	case bvec2_to_uvec4
3367		version 300 es
3368		expect compile_fail
3369		values {}
3370
3371		both ""
3372			#version 300 es
3373			precision mediump float;
3374			precision mediump int;
3375
3376			${DECLARATIONS}
3377
3378			void main()
3379			{
3380				${SETUP}
3381				bvec2 in0 = bvec2(true, false);
3382				uvec4 out0 = uvec4(in0);
3383				${OUTPUT}
3384			}
3385		""
3386	end
3387
3388	case bvec2_to_bvec4
3389		version 300 es
3390		expect compile_fail
3391		values {}
3392
3393		both ""
3394			#version 300 es
3395			precision mediump float;
3396			precision mediump int;
3397
3398			${DECLARATIONS}
3399
3400			void main()
3401			{
3402				${SETUP}
3403				bvec2 in0 = bvec2(true, false);
3404				bvec4 out0 = bvec4(in0);
3405				${OUTPUT}
3406			}
3407		""
3408	end
3409
3410	case vec3_to_vec4
3411		version 300 es
3412		expect compile_fail
3413		values {}
3414
3415		both ""
3416			#version 300 es
3417			precision mediump float;
3418			precision mediump int;
3419
3420			${DECLARATIONS}
3421
3422			void main()
3423			{
3424				${SETUP}
3425				vec3 in0 = vec3(0.0, 0.5, 0.75);
3426				vec4 out0 = vec4(in0);
3427				${OUTPUT}
3428			}
3429		""
3430	end
3431
3432	case vec3_to_ivec4
3433		version 300 es
3434		expect compile_fail
3435		values {}
3436
3437		both ""
3438			#version 300 es
3439			precision mediump float;
3440			precision mediump int;
3441
3442			${DECLARATIONS}
3443
3444			void main()
3445			{
3446				${SETUP}
3447				vec3 in0 = vec3(0.0, 0.5, 0.75);
3448				ivec4 out0 = ivec4(in0);
3449				${OUTPUT}
3450			}
3451		""
3452	end
3453
3454	case vec3_to_uvec4
3455		version 300 es
3456		expect compile_fail
3457		values {}
3458
3459		both ""
3460			#version 300 es
3461			precision mediump float;
3462			precision mediump int;
3463
3464			${DECLARATIONS}
3465
3466			void main()
3467			{
3468				${SETUP}
3469				vec3 in0 = vec3(0.0, 0.5, 0.75);
3470				uvec4 out0 = uvec4(in0);
3471				${OUTPUT}
3472			}
3473		""
3474	end
3475
3476	case vec3_to_bvec4
3477		version 300 es
3478		expect compile_fail
3479		values {}
3480
3481		both ""
3482			#version 300 es
3483			precision mediump float;
3484			precision mediump int;
3485
3486			${DECLARATIONS}
3487
3488			void main()
3489			{
3490				${SETUP}
3491				vec3 in0 = vec3(0.0, 0.5, 0.75);
3492				bvec4 out0 = bvec4(in0);
3493				${OUTPUT}
3494			}
3495		""
3496	end
3497
3498	case ivec3_to_vec4
3499		version 300 es
3500		expect compile_fail
3501		values {}
3502
3503		both ""
3504			#version 300 es
3505			precision mediump float;
3506			precision mediump int;
3507
3508			${DECLARATIONS}
3509
3510			void main()
3511			{
3512				${SETUP}
3513				ivec3 in0 = ivec3(0, 0, 0);
3514				vec4 out0 = vec4(in0);
3515				${OUTPUT}
3516			}
3517		""
3518	end
3519
3520	case ivec3_to_ivec4
3521		version 300 es
3522		expect compile_fail
3523		values {}
3524
3525		both ""
3526			#version 300 es
3527			precision mediump float;
3528			precision mediump int;
3529
3530			${DECLARATIONS}
3531
3532			void main()
3533			{
3534				${SETUP}
3535				ivec3 in0 = ivec3(0, 0, 0);
3536				ivec4 out0 = ivec4(in0);
3537				${OUTPUT}
3538			}
3539		""
3540	end
3541
3542	case ivec3_to_uvec4
3543		version 300 es
3544		expect compile_fail
3545		values {}
3546
3547		both ""
3548			#version 300 es
3549			precision mediump float;
3550			precision mediump int;
3551
3552			${DECLARATIONS}
3553
3554			void main()
3555			{
3556				${SETUP}
3557				ivec3 in0 = ivec3(0, 0, 0);
3558				uvec4 out0 = uvec4(in0);
3559				${OUTPUT}
3560			}
3561		""
3562	end
3563
3564	case ivec3_to_bvec4
3565		version 300 es
3566		expect compile_fail
3567		values {}
3568
3569		both ""
3570			#version 300 es
3571			precision mediump float;
3572			precision mediump int;
3573
3574			${DECLARATIONS}
3575
3576			void main()
3577			{
3578				${SETUP}
3579				ivec3 in0 = ivec3(0, 0, 0);
3580				bvec4 out0 = bvec4(in0);
3581				${OUTPUT}
3582			}
3583		""
3584	end
3585
3586	case uvec3_to_vec4
3587		version 300 es
3588		expect compile_fail
3589		values {}
3590
3591		both ""
3592			#version 300 es
3593			precision mediump float;
3594			precision mediump int;
3595
3596			${DECLARATIONS}
3597
3598			void main()
3599			{
3600				${SETUP}
3601				uvec3 in0 = uvec3(0, 0, 0);
3602				vec4 out0 = vec4(in0);
3603				${OUTPUT}
3604			}
3605		""
3606	end
3607
3608	case uvec3_to_ivec4
3609		version 300 es
3610		expect compile_fail
3611		values {}
3612
3613		both ""
3614			#version 300 es
3615			precision mediump float;
3616			precision mediump int;
3617
3618			${DECLARATIONS}
3619
3620			void main()
3621			{
3622				${SETUP}
3623				uvec3 in0 = uvec3(0, 0, 0);
3624				ivec4 out0 = ivec4(in0);
3625				${OUTPUT}
3626			}
3627		""
3628	end
3629
3630	case uvec3_to_uvec4
3631		version 300 es
3632		expect compile_fail
3633		values {}
3634
3635		both ""
3636			#version 300 es
3637			precision mediump float;
3638			precision mediump int;
3639
3640			${DECLARATIONS}
3641
3642			void main()
3643			{
3644				${SETUP}
3645				uvec3 in0 = uvec3(0, 0, 0);
3646				uvec4 out0 = uvec4(in0);
3647				${OUTPUT}
3648			}
3649		""
3650	end
3651
3652	case uvec3_to_bvec4
3653		version 300 es
3654		expect compile_fail
3655		values {}
3656
3657		both ""
3658			#version 300 es
3659			precision mediump float;
3660			precision mediump int;
3661
3662			${DECLARATIONS}
3663
3664			void main()
3665			{
3666				${SETUP}
3667				uvec3 in0 = uvec3(0, 0, 0);
3668				bvec4 out0 = bvec4(in0);
3669				${OUTPUT}
3670			}
3671		""
3672	end
3673
3674	case bvec3_to_vec4
3675		version 300 es
3676		expect compile_fail
3677		values {}
3678
3679		both ""
3680			#version 300 es
3681			precision mediump float;
3682			precision mediump int;
3683
3684			${DECLARATIONS}
3685
3686			void main()
3687			{
3688				${SETUP}
3689				bvec3 in0 = bvec3(true, false, false);
3690				vec4 out0 = vec4(in0);
3691				${OUTPUT}
3692			}
3693		""
3694	end
3695
3696	case bvec3_to_ivec4
3697		version 300 es
3698		expect compile_fail
3699		values {}
3700
3701		both ""
3702			#version 300 es
3703			precision mediump float;
3704			precision mediump int;
3705
3706			${DECLARATIONS}
3707
3708			void main()
3709			{
3710				${SETUP}
3711				bvec3 in0 = bvec3(true, false, false);
3712				ivec4 out0 = ivec4(in0);
3713				${OUTPUT}
3714			}
3715		""
3716	end
3717
3718	case bvec3_to_uvec4
3719		version 300 es
3720		expect compile_fail
3721		values {}
3722
3723		both ""
3724			#version 300 es
3725			precision mediump float;
3726			precision mediump int;
3727
3728			${DECLARATIONS}
3729
3730			void main()
3731			{
3732				${SETUP}
3733				bvec3 in0 = bvec3(true, false, false);
3734				uvec4 out0 = uvec4(in0);
3735				${OUTPUT}
3736			}
3737		""
3738	end
3739
3740	case bvec3_to_bvec4
3741		version 300 es
3742		expect compile_fail
3743		values {}
3744
3745		both ""
3746			#version 300 es
3747			precision mediump float;
3748			precision mediump int;
3749
3750			${DECLARATIONS}
3751
3752			void main()
3753			{
3754				${SETUP}
3755				bvec3 in0 = bvec3(true, false, false);
3756				bvec4 out0 = bvec4(in0);
3757				${OUTPUT}
3758			}
3759		""
3760	end
3761
3762
3763end # vector_illegal
3764group vector_to_vector "Vector to Vector Conversions"
3765
3766	case vec4_to_vec4
3767		version 300 es
3768		values
3769		{
3770			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) ];
3771			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) ];
3772		}
3773
3774		both ""
3775			#version 300 es
3776			precision mediump float;
3777			precision mediump int;
3778
3779			${DECLARATIONS}
3780
3781			void main()
3782			{
3783				${SETUP}
3784				out0 = vec4(in0);
3785				${OUTPUT}
3786			}
3787		""
3788	end
3789
3790	case vec4_to_vec3
3791		version 300 es
3792		values
3793		{
3794			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) ];
3795			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) ];
3796		}
3797
3798		both ""
3799			#version 300 es
3800			precision mediump float;
3801			precision mediump int;
3802
3803			${DECLARATIONS}
3804
3805			void main()
3806			{
3807				${SETUP}
3808				out0 = vec3(in0);
3809				${OUTPUT}
3810			}
3811		""
3812	end
3813
3814	case vec4_to_vec2
3815		version 300 es
3816		values
3817		{
3818			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) ];
3819			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) ];
3820		}
3821
3822		both ""
3823			#version 300 es
3824			precision mediump float;
3825			precision mediump int;
3826
3827			${DECLARATIONS}
3828
3829			void main()
3830			{
3831				${SETUP}
3832				out0 = vec2(in0);
3833				${OUTPUT}
3834			}
3835		""
3836	end
3837
3838	case vec4_to_ivec4
3839		version 300 es
3840		values
3841		{
3842			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) ];
3843			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) ];
3844		}
3845
3846		both ""
3847			#version 300 es
3848			precision mediump float;
3849			precision mediump int;
3850
3851			${DECLARATIONS}
3852
3853			void main()
3854			{
3855				${SETUP}
3856				out0 = ivec4(in0);
3857				${OUTPUT}
3858			}
3859		""
3860	end
3861
3862	case vec4_to_ivec3
3863		version 300 es
3864		values
3865		{
3866			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) ];
3867			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
3868		}
3869
3870		both ""
3871			#version 300 es
3872			precision mediump float;
3873			precision mediump int;
3874
3875			${DECLARATIONS}
3876
3877			void main()
3878			{
3879				${SETUP}
3880				out0 = ivec3(in0);
3881				${OUTPUT}
3882			}
3883		""
3884	end
3885
3886	case vec4_to_ivec2
3887		version 300 es
3888		values
3889		{
3890			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) ];
3891			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
3892		}
3893
3894		both ""
3895			#version 300 es
3896			precision mediump float;
3897			precision mediump int;
3898
3899			${DECLARATIONS}
3900
3901			void main()
3902			{
3903				${SETUP}
3904				out0 = ivec2(in0);
3905				${OUTPUT}
3906			}
3907		""
3908	end
3909
3910	case vec4_to_bvec4
3911		version 300 es
3912		values
3913		{
3914			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) ];
3915			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) ];
3916		}
3917
3918		both ""
3919			#version 300 es
3920			precision mediump float;
3921			precision mediump int;
3922
3923			${DECLARATIONS}
3924
3925			void main()
3926			{
3927				${SETUP}
3928				out0 = bvec4(in0);
3929				${OUTPUT}
3930			}
3931		""
3932	end
3933
3934	case vec4_to_bvec3
3935		version 300 es
3936		values
3937		{
3938			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) ];
3939			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
3940		}
3941
3942		both ""
3943			#version 300 es
3944			precision mediump float;
3945			precision mediump int;
3946
3947			${DECLARATIONS}
3948
3949			void main()
3950			{
3951				${SETUP}
3952				out0 = bvec3(in0);
3953				${OUTPUT}
3954			}
3955		""
3956	end
3957
3958	case vec4_to_bvec2
3959		version 300 es
3960		values
3961		{
3962			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) ];
3963			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
3964		}
3965
3966		both ""
3967			#version 300 es
3968			precision mediump float;
3969			precision mediump int;
3970
3971			${DECLARATIONS}
3972
3973			void main()
3974			{
3975				${SETUP}
3976				out0 = bvec2(in0);
3977				${OUTPUT}
3978			}
3979		""
3980	end
3981
3982	case ivec4_to_vec4
3983		version 300 es
3984		values
3985		{
3986			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) ];
3987			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) ];
3988		}
3989
3990		both ""
3991			#version 300 es
3992			precision mediump float;
3993			precision mediump int;
3994
3995			${DECLARATIONS}
3996
3997			void main()
3998			{
3999				${SETUP}
4000				out0 = vec4(in0);
4001				${OUTPUT}
4002			}
4003		""
4004	end
4005
4006	case ivec4_to_vec3
4007		version 300 es
4008		values
4009		{
4010			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) ];
4011			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) ];
4012		}
4013
4014		both ""
4015			#version 300 es
4016			precision mediump float;
4017			precision mediump int;
4018
4019			${DECLARATIONS}
4020
4021			void main()
4022			{
4023				${SETUP}
4024				out0 = vec3(in0);
4025				${OUTPUT}
4026			}
4027		""
4028	end
4029
4030	case ivec4_to_vec2
4031		version 300 es
4032		values
4033		{
4034			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) ];
4035			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) ];
4036		}
4037
4038		both ""
4039			#version 300 es
4040			precision mediump float;
4041			precision mediump int;
4042
4043			${DECLARATIONS}
4044
4045			void main()
4046			{
4047				${SETUP}
4048				out0 = vec2(in0);
4049				${OUTPUT}
4050			}
4051		""
4052	end
4053
4054	case ivec4_to_ivec4
4055		version 300 es
4056		values
4057		{
4058			input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4059			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
4060		}
4061
4062		both ""
4063			#version 300 es
4064			precision mediump float;
4065			precision mediump int;
4066
4067			${DECLARATIONS}
4068
4069			void main()
4070			{
4071				${SETUP}
4072				out0 = ivec4(in0);
4073				${OUTPUT}
4074			}
4075		""
4076	end
4077
4078	case ivec4_to_ivec3
4079		version 300 es
4080		values
4081		{
4082			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) ];
4083			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4084		}
4085
4086		both ""
4087			#version 300 es
4088			precision mediump float;
4089			precision mediump int;
4090
4091			${DECLARATIONS}
4092
4093			void main()
4094			{
4095				${SETUP}
4096				out0 = ivec3(in0);
4097				${OUTPUT}
4098			}
4099		""
4100	end
4101
4102	case ivec4_to_ivec2
4103		version 300 es
4104		values
4105		{
4106			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) ];
4107			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4108		}
4109
4110		both ""
4111			#version 300 es
4112			precision mediump float;
4113			precision mediump int;
4114
4115			${DECLARATIONS}
4116
4117			void main()
4118			{
4119				${SETUP}
4120				out0 = ivec2(in0);
4121				${OUTPUT}
4122			}
4123		""
4124	end
4125
4126	case ivec4_to_bvec4
4127		version 300 es
4128		values
4129		{
4130			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) ];
4131			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) ];
4132		}
4133
4134		both ""
4135			#version 300 es
4136			precision mediump float;
4137			precision mediump int;
4138
4139			${DECLARATIONS}
4140
4141			void main()
4142			{
4143				${SETUP}
4144				out0 = bvec4(in0);
4145				${OUTPUT}
4146			}
4147		""
4148	end
4149
4150	case ivec4_to_bvec3
4151		version 300 es
4152		values
4153		{
4154			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) ];
4155			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4156		}
4157
4158		both ""
4159			#version 300 es
4160			precision mediump float;
4161			precision mediump int;
4162
4163			${DECLARATIONS}
4164
4165			void main()
4166			{
4167				${SETUP}
4168				out0 = bvec3(in0);
4169				${OUTPUT}
4170			}
4171		""
4172	end
4173
4174	case ivec4_to_bvec2
4175		version 300 es
4176		values
4177		{
4178			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) ];
4179			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4180		}
4181
4182		both ""
4183			#version 300 es
4184			precision mediump float;
4185			precision mediump int;
4186
4187			${DECLARATIONS}
4188
4189			void main()
4190			{
4191				${SETUP}
4192				out0 = bvec2(in0);
4193				${OUTPUT}
4194			}
4195		""
4196	end
4197
4198	case uvec4_to_vec4
4199		version 300 es
4200		values
4201		{
4202			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) ];
4203			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) ];
4204		}
4205
4206		both ""
4207			#version 300 es
4208			precision mediump float;
4209			precision mediump int;
4210
4211			${DECLARATIONS}
4212
4213			void main()
4214			{
4215				${SETUP}
4216				out0 = vec4(in0);
4217				${OUTPUT}
4218			}
4219		""
4220	end
4221
4222	case uvec4_to_vec3
4223		version 300 es
4224		values
4225		{
4226			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) ];
4227			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) ];
4228		}
4229
4230		both ""
4231			#version 300 es
4232			precision mediump float;
4233			precision mediump int;
4234
4235			${DECLARATIONS}
4236
4237			void main()
4238			{
4239				${SETUP}
4240				out0 = vec3(in0);
4241				${OUTPUT}
4242			}
4243		""
4244	end
4245
4246	case uvec4_to_vec2
4247		version 300 es
4248		values
4249		{
4250			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) ];
4251			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) ];
4252		}
4253
4254		both ""
4255			#version 300 es
4256			precision mediump float;
4257			precision mediump int;
4258
4259			${DECLARATIONS}
4260
4261			void main()
4262			{
4263				${SETUP}
4264				out0 = vec2(in0);
4265				${OUTPUT}
4266			}
4267		""
4268	end
4269
4270	case uvec4_to_ivec4
4271		version 300 es
4272		values
4273		{
4274			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) ];
4275			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) ];
4276		}
4277
4278		both ""
4279			#version 300 es
4280			precision mediump float;
4281			precision mediump int;
4282
4283			${DECLARATIONS}
4284
4285			void main()
4286			{
4287				${SETUP}
4288				out0 = ivec4(in0);
4289				${OUTPUT}
4290			}
4291		""
4292	end
4293
4294	case uvec4_to_ivec3
4295		version 300 es
4296		values
4297		{
4298			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) ];
4299			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
4300		}
4301
4302		both ""
4303			#version 300 es
4304			precision mediump float;
4305			precision mediump int;
4306
4307			${DECLARATIONS}
4308
4309			void main()
4310			{
4311				${SETUP}
4312				out0 = ivec3(in0);
4313				${OUTPUT}
4314			}
4315		""
4316	end
4317
4318	case uvec4_to_ivec2
4319		version 300 es
4320		values
4321		{
4322			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) ];
4323			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
4324		}
4325
4326		both ""
4327			#version 300 es
4328			precision mediump float;
4329			precision mediump int;
4330
4331			${DECLARATIONS}
4332
4333			void main()
4334			{
4335				${SETUP}
4336				out0 = ivec2(in0);
4337				${OUTPUT}
4338			}
4339		""
4340	end
4341
4342	case uvec4_to_bvec4
4343		version 300 es
4344		values
4345		{
4346			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) ];
4347			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) ];
4348		}
4349
4350		both ""
4351			#version 300 es
4352			precision mediump float;
4353			precision mediump int;
4354
4355			${DECLARATIONS}
4356
4357			void main()
4358			{
4359				${SETUP}
4360				out0 = bvec4(in0);
4361				${OUTPUT}
4362			}
4363		""
4364	end
4365
4366	case uvec4_to_bvec3
4367		version 300 es
4368		values
4369		{
4370			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) ];
4371			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
4372		}
4373
4374		both ""
4375			#version 300 es
4376			precision mediump float;
4377			precision mediump int;
4378
4379			${DECLARATIONS}
4380
4381			void main()
4382			{
4383				${SETUP}
4384				out0 = bvec3(in0);
4385				${OUTPUT}
4386			}
4387		""
4388	end
4389
4390	case uvec4_to_bvec2
4391		version 300 es
4392		values
4393		{
4394			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) ];
4395			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4396		}
4397
4398		both ""
4399			#version 300 es
4400			precision mediump float;
4401			precision mediump int;
4402
4403			${DECLARATIONS}
4404
4405			void main()
4406			{
4407				${SETUP}
4408				out0 = bvec2(in0);
4409				${OUTPUT}
4410			}
4411		""
4412	end
4413
4414	case bvec4_to_vec4
4415		version 300 es
4416		values
4417		{
4418			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) ];
4419			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) ];
4420		}
4421
4422		both ""
4423			#version 300 es
4424			precision mediump float;
4425			precision mediump int;
4426
4427			${DECLARATIONS}
4428
4429			void main()
4430			{
4431				${SETUP}
4432				out0 = vec4(in0);
4433				${OUTPUT}
4434			}
4435		""
4436	end
4437
4438	case bvec4_to_vec3
4439		version 300 es
4440		values
4441		{
4442			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) ];
4443			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) ];
4444		}
4445
4446		both ""
4447			#version 300 es
4448			precision mediump float;
4449			precision mediump int;
4450
4451			${DECLARATIONS}
4452
4453			void main()
4454			{
4455				${SETUP}
4456				out0 = vec3(in0);
4457				${OUTPUT}
4458			}
4459		""
4460	end
4461
4462	case bvec4_to_vec2
4463		version 300 es
4464		values
4465		{
4466			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) ];
4467			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) ];
4468		}
4469
4470		both ""
4471			#version 300 es
4472			precision mediump float;
4473			precision mediump int;
4474
4475			${DECLARATIONS}
4476
4477			void main()
4478			{
4479				${SETUP}
4480				out0 = vec2(in0);
4481				${OUTPUT}
4482			}
4483		""
4484	end
4485
4486	case bvec4_to_ivec4
4487		version 300 es
4488		values
4489		{
4490			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) ];
4491			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) ];
4492		}
4493
4494		both ""
4495			#version 300 es
4496			precision mediump float;
4497			precision mediump int;
4498
4499			${DECLARATIONS}
4500
4501			void main()
4502			{
4503				${SETUP}
4504				out0 = ivec4(in0);
4505				${OUTPUT}
4506			}
4507		""
4508	end
4509
4510	case bvec4_to_ivec3
4511		version 300 es
4512		values
4513		{
4514			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) ];
4515			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
4516		}
4517
4518		both ""
4519			#version 300 es
4520			precision mediump float;
4521			precision mediump int;
4522
4523			${DECLARATIONS}
4524
4525			void main()
4526			{
4527				${SETUP}
4528				out0 = ivec3(in0);
4529				${OUTPUT}
4530			}
4531		""
4532	end
4533
4534	case bvec4_to_ivec2
4535		version 300 es
4536		values
4537		{
4538			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) ];
4539			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
4540		}
4541
4542		both ""
4543			#version 300 es
4544			precision mediump float;
4545			precision mediump int;
4546
4547			${DECLARATIONS}
4548
4549			void main()
4550			{
4551				${SETUP}
4552				out0 = ivec2(in0);
4553				${OUTPUT}
4554			}
4555		""
4556	end
4557
4558	case bvec4_to_bvec4
4559		version 300 es
4560		values
4561		{
4562			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) ];
4563			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) ];
4564		}
4565
4566		both ""
4567			#version 300 es
4568			precision mediump float;
4569			precision mediump int;
4570
4571			${DECLARATIONS}
4572
4573			void main()
4574			{
4575				${SETUP}
4576				out0 = bvec4(in0);
4577				${OUTPUT}
4578			}
4579		""
4580	end
4581
4582	case bvec4_to_bvec3
4583		version 300 es
4584		values
4585		{
4586			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) ];
4587			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
4588		}
4589
4590		both ""
4591			#version 300 es
4592			precision mediump float;
4593			precision mediump int;
4594
4595			${DECLARATIONS}
4596
4597			void main()
4598			{
4599				${SETUP}
4600				out0 = bvec3(in0);
4601				${OUTPUT}
4602			}
4603		""
4604	end
4605
4606	case bvec4_to_bvec2
4607		version 300 es
4608		values
4609		{
4610			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) ];
4611			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
4612		}
4613
4614		both ""
4615			#version 300 es
4616			precision mediump float;
4617			precision mediump int;
4618
4619			${DECLARATIONS}
4620
4621			void main()
4622			{
4623				${SETUP}
4624				out0 = bvec2(in0);
4625				${OUTPUT}
4626			}
4627		""
4628	end
4629
4630	case vec4_to_uvec4
4631		version 300 es
4632		values
4633		{
4634			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) ];
4635			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) ];
4636		}
4637
4638		both ""
4639			#version 300 es
4640			precision mediump float;
4641			precision mediump int;
4642
4643			${DECLARATIONS}
4644
4645			void main()
4646			{
4647				${SETUP}
4648				out0 = uvec4(in0);
4649				${OUTPUT}
4650			}
4651		""
4652	end
4653
4654	case vec4_to_uvec3
4655		version 300 es
4656		values
4657		{
4658			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) ];
4659			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4660		}
4661
4662		both ""
4663			#version 300 es
4664			precision mediump float;
4665			precision mediump int;
4666
4667			${DECLARATIONS}
4668
4669			void main()
4670			{
4671				${SETUP}
4672				out0 = uvec3(in0);
4673				${OUTPUT}
4674			}
4675		""
4676	end
4677
4678	case vec4_to_uvec2
4679		version 300 es
4680		values
4681		{
4682			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) ];
4683			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4684		}
4685
4686		both ""
4687			#version 300 es
4688			precision mediump float;
4689			precision mediump int;
4690
4691			${DECLARATIONS}
4692
4693			void main()
4694			{
4695				${SETUP}
4696				out0 = uvec2(in0);
4697				${OUTPUT}
4698			}
4699		""
4700	end
4701
4702	case ivec4_to_uvec4
4703		version 300 es
4704		values
4705		{
4706			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) ];
4707			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) ];
4708		}
4709
4710		both ""
4711			#version 300 es
4712			precision mediump float;
4713			precision mediump int;
4714
4715			${DECLARATIONS}
4716
4717			void main()
4718			{
4719				${SETUP}
4720				out0 = uvec4(in0);
4721				${OUTPUT}
4722			}
4723		""
4724	end
4725
4726	case ivec4_to_uvec3
4727		version 300 es
4728		values
4729		{
4730			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) ];
4731			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4732		}
4733
4734		both ""
4735			#version 300 es
4736			precision mediump float;
4737			precision mediump int;
4738
4739			${DECLARATIONS}
4740
4741			void main()
4742			{
4743				${SETUP}
4744				out0 = uvec3(in0);
4745				${OUTPUT}
4746			}
4747		""
4748	end
4749
4750	case ivec4_to_uvec2
4751		version 300 es
4752		values
4753		{
4754			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) ];
4755			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4756		}
4757
4758		both ""
4759			#version 300 es
4760			precision mediump float;
4761			precision mediump int;
4762
4763			${DECLARATIONS}
4764
4765			void main()
4766			{
4767				${SETUP}
4768				out0 = uvec2(in0);
4769				${OUTPUT}
4770			}
4771		""
4772	end
4773
4774	case uvec4_to_uvec4
4775		version 300 es
4776		values
4777		{
4778			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) ];
4779			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) ];
4780		}
4781
4782		both ""
4783			#version 300 es
4784			precision mediump float;
4785			precision mediump int;
4786
4787			${DECLARATIONS}
4788
4789			void main()
4790			{
4791				${SETUP}
4792				out0 = uvec4(in0);
4793				${OUTPUT}
4794			}
4795		""
4796	end
4797
4798	case uvec4_to_uvec3
4799		version 300 es
4800		values
4801		{
4802			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) ];
4803			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
4804		}
4805
4806		both ""
4807			#version 300 es
4808			precision mediump float;
4809			precision mediump int;
4810
4811			${DECLARATIONS}
4812
4813			void main()
4814			{
4815				${SETUP}
4816				out0 = uvec3(in0);
4817				${OUTPUT}
4818			}
4819		""
4820	end
4821
4822	case uvec4_to_uvec2
4823		version 300 es
4824		values
4825		{
4826			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) ];
4827			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
4828		}
4829
4830		both ""
4831			#version 300 es
4832			precision mediump float;
4833			precision mediump int;
4834
4835			${DECLARATIONS}
4836
4837			void main()
4838			{
4839				${SETUP}
4840				out0 = uvec2(in0);
4841				${OUTPUT}
4842			}
4843		""
4844	end
4845
4846	case bvec4_to_uvec4
4847		version 300 es
4848		values
4849		{
4850			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) ];
4851			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) ];
4852		}
4853
4854		both ""
4855			#version 300 es
4856			precision mediump float;
4857			precision mediump int;
4858
4859			${DECLARATIONS}
4860
4861			void main()
4862			{
4863				${SETUP}
4864				out0 = uvec4(in0);
4865				${OUTPUT}
4866			}
4867		""
4868	end
4869
4870	case bvec4_to_uvec3
4871		version 300 es
4872		values
4873		{
4874			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) ];
4875			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
4876		}
4877
4878		both ""
4879			#version 300 es
4880			precision mediump float;
4881			precision mediump int;
4882
4883			${DECLARATIONS}
4884
4885			void main()
4886			{
4887				${SETUP}
4888				out0 = uvec3(in0);
4889				${OUTPUT}
4890			}
4891		""
4892	end
4893
4894	case bvec4_to_uvec2
4895		version 300 es
4896		values
4897		{
4898			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) ];
4899			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
4900		}
4901
4902		both ""
4903			#version 300 es
4904			precision mediump float;
4905			precision mediump int;
4906
4907			${DECLARATIONS}
4908
4909			void main()
4910			{
4911				${SETUP}
4912				out0 = uvec2(in0);
4913				${OUTPUT}
4914			}
4915		""
4916	end
4917
4918	case vec3_to_vec3
4919		version 300 es
4920		values
4921		{
4922			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) ];
4923			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) ];
4924		}
4925
4926		both ""
4927			#version 300 es
4928			precision mediump float;
4929			precision mediump int;
4930
4931			${DECLARATIONS}
4932
4933			void main()
4934			{
4935				${SETUP}
4936				out0 = vec3(in0);
4937				${OUTPUT}
4938			}
4939		""
4940	end
4941
4942	case vec3_to_vec2
4943		version 300 es
4944		values
4945		{
4946			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) ];
4947			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) ];
4948		}
4949
4950		both ""
4951			#version 300 es
4952			precision mediump float;
4953			precision mediump int;
4954
4955			${DECLARATIONS}
4956
4957			void main()
4958			{
4959				${SETUP}
4960				out0 = vec2(in0);
4961				${OUTPUT}
4962			}
4963		""
4964	end
4965
4966	case vec3_to_ivec3
4967		version 300 es
4968		values
4969		{
4970			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) ];
4971			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
4972		}
4973
4974		both ""
4975			#version 300 es
4976			precision mediump float;
4977			precision mediump int;
4978
4979			${DECLARATIONS}
4980
4981			void main()
4982			{
4983				${SETUP}
4984				out0 = ivec3(in0);
4985				${OUTPUT}
4986			}
4987		""
4988	end
4989
4990	case vec3_to_ivec2
4991		version 300 es
4992		values
4993		{
4994			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) ];
4995			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
4996		}
4997
4998		both ""
4999			#version 300 es
5000			precision mediump float;
5001			precision mediump int;
5002
5003			${DECLARATIONS}
5004
5005			void main()
5006			{
5007				${SETUP}
5008				out0 = ivec2(in0);
5009				${OUTPUT}
5010			}
5011		""
5012	end
5013
5014	case vec3_to_bvec3
5015		version 300 es
5016		values
5017		{
5018			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) ];
5019			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
5020		}
5021
5022		both ""
5023			#version 300 es
5024			precision mediump float;
5025			precision mediump int;
5026
5027			${DECLARATIONS}
5028
5029			void main()
5030			{
5031				${SETUP}
5032				out0 = bvec3(in0);
5033				${OUTPUT}
5034			}
5035		""
5036	end
5037
5038	case vec3_to_bvec2
5039		version 300 es
5040		values
5041		{
5042			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) ];
5043			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
5044		}
5045
5046		both ""
5047			#version 300 es
5048			precision mediump float;
5049			precision mediump int;
5050
5051			${DECLARATIONS}
5052
5053			void main()
5054			{
5055				${SETUP}
5056				out0 = bvec2(in0);
5057				${OUTPUT}
5058			}
5059		""
5060	end
5061
5062	case ivec3_to_vec3
5063		version 300 es
5064		values
5065		{
5066			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5067			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) ];
5068		}
5069
5070		both ""
5071			#version 300 es
5072			precision mediump float;
5073			precision mediump int;
5074
5075			${DECLARATIONS}
5076
5077			void main()
5078			{
5079				${SETUP}
5080				out0 = vec3(in0);
5081				${OUTPUT}
5082			}
5083		""
5084	end
5085
5086	case ivec3_to_vec2
5087		version 300 es
5088		values
5089		{
5090			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5091			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) ];
5092		}
5093
5094		both ""
5095			#version 300 es
5096			precision mediump float;
5097			precision mediump int;
5098
5099			${DECLARATIONS}
5100
5101			void main()
5102			{
5103				${SETUP}
5104				out0 = vec2(in0);
5105				${OUTPUT}
5106			}
5107		""
5108	end
5109
5110	case ivec3_to_ivec3
5111		version 300 es
5112		values
5113		{
5114			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5115			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5116		}
5117
5118		both ""
5119			#version 300 es
5120			precision mediump float;
5121			precision mediump int;
5122
5123			${DECLARATIONS}
5124
5125			void main()
5126			{
5127				${SETUP}
5128				out0 = ivec3(in0);
5129				${OUTPUT}
5130			}
5131		""
5132	end
5133
5134	case ivec3_to_ivec2
5135		version 300 es
5136		values
5137		{
5138			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5139			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5140		}
5141
5142		both ""
5143			#version 300 es
5144			precision mediump float;
5145			precision mediump int;
5146
5147			${DECLARATIONS}
5148
5149			void main()
5150			{
5151				${SETUP}
5152				out0 = ivec2(in0);
5153				${OUTPUT}
5154			}
5155		""
5156	end
5157
5158	case ivec3_to_bvec3
5159		version 300 es
5160		values
5161		{
5162			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5163			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5164		}
5165
5166		both ""
5167			#version 300 es
5168			precision mediump float;
5169			precision mediump int;
5170
5171			${DECLARATIONS}
5172
5173			void main()
5174			{
5175				${SETUP}
5176				out0 = bvec3(in0);
5177				${OUTPUT}
5178			}
5179		""
5180	end
5181
5182	case ivec3_to_bvec2
5183		version 300 es
5184		values
5185		{
5186			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
5187			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5188		}
5189
5190		both ""
5191			#version 300 es
5192			precision mediump float;
5193			precision mediump int;
5194
5195			${DECLARATIONS}
5196
5197			void main()
5198			{
5199				${SETUP}
5200				out0 = bvec2(in0);
5201				${OUTPUT}
5202			}
5203		""
5204	end
5205
5206	case uvec3_to_vec3
5207		version 300 es
5208		values
5209		{
5210			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5211			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) ];
5212		}
5213
5214		both ""
5215			#version 300 es
5216			precision mediump float;
5217			precision mediump int;
5218
5219			${DECLARATIONS}
5220
5221			void main()
5222			{
5223				${SETUP}
5224				out0 = vec3(in0);
5225				${OUTPUT}
5226			}
5227		""
5228	end
5229
5230	case uvec3_to_vec2
5231		version 300 es
5232		values
5233		{
5234			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5235			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) ];
5236		}
5237
5238		both ""
5239			#version 300 es
5240			precision mediump float;
5241			precision mediump int;
5242
5243			${DECLARATIONS}
5244
5245			void main()
5246			{
5247				${SETUP}
5248				out0 = vec2(in0);
5249				${OUTPUT}
5250			}
5251		""
5252	end
5253
5254	case uvec3_to_ivec3
5255		version 300 es
5256		values
5257		{
5258			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5259			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
5260		}
5261
5262		both ""
5263			#version 300 es
5264			precision mediump float;
5265			precision mediump int;
5266
5267			${DECLARATIONS}
5268
5269			void main()
5270			{
5271				${SETUP}
5272				out0 = ivec3(in0);
5273				${OUTPUT}
5274			}
5275		""
5276	end
5277
5278	case uvec3_to_ivec2
5279		version 300 es
5280		values
5281		{
5282			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5283			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
5284		}
5285
5286		both ""
5287			#version 300 es
5288			precision mediump float;
5289			precision mediump int;
5290
5291			${DECLARATIONS}
5292
5293			void main()
5294			{
5295				${SETUP}
5296				out0 = ivec2(in0);
5297				${OUTPUT}
5298			}
5299		""
5300	end
5301
5302	case uvec3_to_bvec3
5303		version 300 es
5304		values
5305		{
5306			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5307			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
5308		}
5309
5310		both ""
5311			#version 300 es
5312			precision mediump float;
5313			precision mediump int;
5314
5315			${DECLARATIONS}
5316
5317			void main()
5318			{
5319				${SETUP}
5320				out0 = bvec3(in0);
5321				${OUTPUT}
5322			}
5323		""
5324	end
5325
5326	case uvec3_to_bvec2
5327		version 300 es
5328		values
5329		{
5330			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5331			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5332		}
5333
5334		both ""
5335			#version 300 es
5336			precision mediump float;
5337			precision mediump int;
5338
5339			${DECLARATIONS}
5340
5341			void main()
5342			{
5343				${SETUP}
5344				out0 = bvec2(in0);
5345				${OUTPUT}
5346			}
5347		""
5348	end
5349
5350	case bvec3_to_vec3
5351		version 300 es
5352		values
5353		{
5354			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5355			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) ];
5356		}
5357
5358		both ""
5359			#version 300 es
5360			precision mediump float;
5361			precision mediump int;
5362
5363			${DECLARATIONS}
5364
5365			void main()
5366			{
5367				${SETUP}
5368				out0 = vec3(in0);
5369				${OUTPUT}
5370			}
5371		""
5372	end
5373
5374	case bvec3_to_vec2
5375		version 300 es
5376		values
5377		{
5378			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5379			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) ];
5380		}
5381
5382		both ""
5383			#version 300 es
5384			precision mediump float;
5385			precision mediump int;
5386
5387			${DECLARATIONS}
5388
5389			void main()
5390			{
5391				${SETUP}
5392				out0 = vec2(in0);
5393				${OUTPUT}
5394			}
5395		""
5396	end
5397
5398	case bvec3_to_ivec3
5399		version 300 es
5400		values
5401		{
5402			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5403			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
5404		}
5405
5406		both ""
5407			#version 300 es
5408			precision mediump float;
5409			precision mediump int;
5410
5411			${DECLARATIONS}
5412
5413			void main()
5414			{
5415				${SETUP}
5416				out0 = ivec3(in0);
5417				${OUTPUT}
5418			}
5419		""
5420	end
5421
5422	case bvec3_to_ivec2
5423		version 300 es
5424		values
5425		{
5426			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5427			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
5428		}
5429
5430		both ""
5431			#version 300 es
5432			precision mediump float;
5433			precision mediump int;
5434
5435			${DECLARATIONS}
5436
5437			void main()
5438			{
5439				${SETUP}
5440				out0 = ivec2(in0);
5441				${OUTPUT}
5442			}
5443		""
5444	end
5445
5446	case bvec3_to_bvec3
5447		version 300 es
5448		values
5449		{
5450			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5451			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5452		}
5453
5454		both ""
5455			#version 300 es
5456			precision mediump float;
5457			precision mediump int;
5458
5459			${DECLARATIONS}
5460
5461			void main()
5462			{
5463				${SETUP}
5464				out0 = bvec3(in0);
5465				${OUTPUT}
5466			}
5467		""
5468	end
5469
5470	case bvec3_to_bvec2
5471		version 300 es
5472		values
5473		{
5474			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5475			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5476		}
5477
5478		both ""
5479			#version 300 es
5480			precision mediump float;
5481			precision mediump int;
5482
5483			${DECLARATIONS}
5484
5485			void main()
5486			{
5487				${SETUP}
5488				out0 = bvec2(in0);
5489				${OUTPUT}
5490			}
5491		""
5492	end
5493
5494	case vec3_to_uvec3
5495		version 300 es
5496		values
5497		{
5498			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) ];
5499			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5500		}
5501
5502		both ""
5503			#version 300 es
5504			precision mediump float;
5505			precision mediump int;
5506
5507			${DECLARATIONS}
5508
5509			void main()
5510			{
5511				${SETUP}
5512				out0 = uvec3(in0);
5513				${OUTPUT}
5514			}
5515		""
5516	end
5517
5518	case vec3_to_uvec2
5519		version 300 es
5520		values
5521		{
5522			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) ];
5523			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5524		}
5525
5526		both ""
5527			#version 300 es
5528			precision mediump float;
5529			precision mediump int;
5530
5531			${DECLARATIONS}
5532
5533			void main()
5534			{
5535				${SETUP}
5536				out0 = uvec2(in0);
5537				${OUTPUT}
5538			}
5539		""
5540	end
5541
5542	case ivec3_to_uvec3
5543		version 300 es
5544		values
5545		{
5546			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
5547			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5548		}
5549
5550		both ""
5551			#version 300 es
5552			precision mediump float;
5553			precision mediump int;
5554
5555			${DECLARATIONS}
5556
5557			void main()
5558			{
5559				${SETUP}
5560				out0 = uvec3(in0);
5561				${OUTPUT}
5562			}
5563		""
5564	end
5565
5566	case ivec3_to_uvec2
5567		version 300 es
5568		values
5569		{
5570			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
5571			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5572		}
5573
5574		both ""
5575			#version 300 es
5576			precision mediump float;
5577			precision mediump int;
5578
5579			${DECLARATIONS}
5580
5581			void main()
5582			{
5583				${SETUP}
5584				out0 = uvec2(in0);
5585				${OUTPUT}
5586			}
5587		""
5588	end
5589
5590	case uvec3_to_uvec3
5591		version 300 es
5592		values
5593		{
5594			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5595			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5596		}
5597
5598		both ""
5599			#version 300 es
5600			precision mediump float;
5601			precision mediump int;
5602
5603			${DECLARATIONS}
5604
5605			void main()
5606			{
5607				${SETUP}
5608				out0 = uvec3(in0);
5609				${OUTPUT}
5610			}
5611		""
5612	end
5613
5614	case uvec3_to_uvec2
5615		version 300 es
5616		values
5617		{
5618			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
5619			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5620		}
5621
5622		both ""
5623			#version 300 es
5624			precision mediump float;
5625			precision mediump int;
5626
5627			${DECLARATIONS}
5628
5629			void main()
5630			{
5631				${SETUP}
5632				out0 = uvec2(in0);
5633				${OUTPUT}
5634			}
5635		""
5636	end
5637
5638	case bvec3_to_uvec3
5639		version 300 es
5640		values
5641		{
5642			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5643			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
5644		}
5645
5646		both ""
5647			#version 300 es
5648			precision mediump float;
5649			precision mediump int;
5650
5651			${DECLARATIONS}
5652
5653			void main()
5654			{
5655				${SETUP}
5656				out0 = uvec3(in0);
5657				${OUTPUT}
5658			}
5659		""
5660	end
5661
5662	case bvec3_to_uvec2
5663		version 300 es
5664		values
5665		{
5666			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
5667			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
5668		}
5669
5670		both ""
5671			#version 300 es
5672			precision mediump float;
5673			precision mediump int;
5674
5675			${DECLARATIONS}
5676
5677			void main()
5678			{
5679				${SETUP}
5680				out0 = uvec2(in0);
5681				${OUTPUT}
5682			}
5683		""
5684	end
5685
5686	case vec2_to_vec2
5687		version 300 es
5688		values
5689		{
5690			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) ];
5691			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) ];
5692		}
5693
5694		both ""
5695			#version 300 es
5696			precision mediump float;
5697			precision mediump int;
5698
5699			${DECLARATIONS}
5700
5701			void main()
5702			{
5703				${SETUP}
5704				out0 = vec2(in0);
5705				${OUTPUT}
5706			}
5707		""
5708	end
5709
5710	case vec2_to_ivec2
5711		version 300 es
5712		values
5713		{
5714			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) ];
5715			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5716		}
5717
5718		both ""
5719			#version 300 es
5720			precision mediump float;
5721			precision mediump int;
5722
5723			${DECLARATIONS}
5724
5725			void main()
5726			{
5727				${SETUP}
5728				out0 = ivec2(in0);
5729				${OUTPUT}
5730			}
5731		""
5732	end
5733
5734	case vec2_to_bvec2
5735		version 300 es
5736		values
5737		{
5738			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) ];
5739			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
5740		}
5741
5742		both ""
5743			#version 300 es
5744			precision mediump float;
5745			precision mediump int;
5746
5747			${DECLARATIONS}
5748
5749			void main()
5750			{
5751				${SETUP}
5752				out0 = bvec2(in0);
5753				${OUTPUT}
5754			}
5755		""
5756	end
5757
5758	case ivec2_to_vec2
5759		version 300 es
5760		values
5761		{
5762			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5763			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) ];
5764		}
5765
5766		both ""
5767			#version 300 es
5768			precision mediump float;
5769			precision mediump int;
5770
5771			${DECLARATIONS}
5772
5773			void main()
5774			{
5775				${SETUP}
5776				out0 = vec2(in0);
5777				${OUTPUT}
5778			}
5779		""
5780	end
5781
5782	case ivec2_to_ivec2
5783		version 300 es
5784		values
5785		{
5786			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5787			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5788		}
5789
5790		both ""
5791			#version 300 es
5792			precision mediump float;
5793			precision mediump int;
5794
5795			${DECLARATIONS}
5796
5797			void main()
5798			{
5799				${SETUP}
5800				out0 = ivec2(in0);
5801				${OUTPUT}
5802			}
5803		""
5804	end
5805
5806	case ivec2_to_bvec2
5807		version 300 es
5808		values
5809		{
5810			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
5811			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5812		}
5813
5814		both ""
5815			#version 300 es
5816			precision mediump float;
5817			precision mediump int;
5818
5819			${DECLARATIONS}
5820
5821			void main()
5822			{
5823				${SETUP}
5824				out0 = bvec2(in0);
5825				${OUTPUT}
5826			}
5827		""
5828	end
5829
5830	case uvec2_to_vec2
5831		version 300 es
5832		values
5833		{
5834			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5835			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) ];
5836		}
5837
5838		both ""
5839			#version 300 es
5840			precision mediump float;
5841			precision mediump int;
5842
5843			${DECLARATIONS}
5844
5845			void main()
5846			{
5847				${SETUP}
5848				out0 = vec2(in0);
5849				${OUTPUT}
5850			}
5851		""
5852	end
5853
5854	case uvec2_to_ivec2
5855		version 300 es
5856		values
5857		{
5858			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5859			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
5860		}
5861
5862		both ""
5863			#version 300 es
5864			precision mediump float;
5865			precision mediump int;
5866
5867			${DECLARATIONS}
5868
5869			void main()
5870			{
5871				${SETUP}
5872				out0 = ivec2(in0);
5873				${OUTPUT}
5874			}
5875		""
5876	end
5877
5878	case uvec2_to_bvec2
5879		version 300 es
5880		values
5881		{
5882			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5883			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5884		}
5885
5886		both ""
5887			#version 300 es
5888			precision mediump float;
5889			precision mediump int;
5890
5891			${DECLARATIONS}
5892
5893			void main()
5894			{
5895				${SETUP}
5896				out0 = bvec2(in0);
5897				${OUTPUT}
5898			}
5899		""
5900	end
5901
5902	case bvec2_to_vec2
5903		version 300 es
5904		values
5905		{
5906			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5907			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) ];
5908		}
5909
5910		both ""
5911			#version 300 es
5912			precision mediump float;
5913			precision mediump int;
5914
5915			${DECLARATIONS}
5916
5917			void main()
5918			{
5919				${SETUP}
5920				out0 = vec2(in0);
5921				${OUTPUT}
5922			}
5923		""
5924	end
5925
5926	case bvec2_to_ivec2
5927		version 300 es
5928		values
5929		{
5930			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5931			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
5932		}
5933
5934		both ""
5935			#version 300 es
5936			precision mediump float;
5937			precision mediump int;
5938
5939			${DECLARATIONS}
5940
5941			void main()
5942			{
5943				${SETUP}
5944				out0 = ivec2(in0);
5945				${OUTPUT}
5946			}
5947		""
5948	end
5949
5950	case bvec2_to_bvec2
5951		version 300 es
5952		values
5953		{
5954			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5955			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
5956		}
5957
5958		both ""
5959			#version 300 es
5960			precision mediump float;
5961			precision mediump int;
5962
5963			${DECLARATIONS}
5964
5965			void main()
5966			{
5967				${SETUP}
5968				out0 = bvec2(in0);
5969				${OUTPUT}
5970			}
5971		""
5972	end
5973
5974	case vec2_to_uvec2
5975		version 300 es
5976		values
5977		{
5978			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) ];
5979			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
5980		}
5981
5982		both ""
5983			#version 300 es
5984			precision mediump float;
5985			precision mediump int;
5986
5987			${DECLARATIONS}
5988
5989			void main()
5990			{
5991				${SETUP}
5992				out0 = uvec2(in0);
5993				${OUTPUT}
5994			}
5995		""
5996	end
5997
5998	case ivec2_to_uvec2
5999		version 300 es
6000		values
6001		{
6002			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
6003			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
6004		}
6005
6006		both ""
6007			#version 300 es
6008			precision mediump float;
6009			precision mediump int;
6010
6011			${DECLARATIONS}
6012
6013			void main()
6014			{
6015				${SETUP}
6016				out0 = uvec2(in0);
6017				${OUTPUT}
6018			}
6019		""
6020	end
6021
6022	case uvec2_to_uvec2
6023		version 300 es
6024		values
6025		{
6026			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
6027			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
6028		}
6029
6030		both ""
6031			#version 300 es
6032			precision mediump float;
6033			precision mediump int;
6034
6035			${DECLARATIONS}
6036
6037			void main()
6038			{
6039				${SETUP}
6040				out0 = uvec2(in0);
6041				${OUTPUT}
6042			}
6043		""
6044	end
6045
6046	case bvec2_to_uvec2
6047		version 300 es
6048		values
6049		{
6050			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
6051			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
6052		}
6053
6054		both ""
6055			#version 300 es
6056			precision mediump float;
6057			precision mediump int;
6058
6059			${DECLARATIONS}
6060
6061			void main()
6062			{
6063				${SETUP}
6064				out0 = uvec2(in0);
6065				${OUTPUT}
6066			}
6067		""
6068	end
6069
6070
6071end # vector_to_vector
6072group scalar_to_matrix "Scalar to Matrix Conversions"
6073
6074	case float_to_mat4
6075		version 300 es
6076		values
6077		{
6078			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6079			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) ];
6080		}
6081
6082		both ""
6083			#version 300 es
6084			precision mediump float;
6085			precision mediump int;
6086
6087			${DECLARATIONS}
6088
6089			void main()
6090			{
6091				${SETUP}
6092				out0 = mat4(in0);
6093				${OUTPUT}
6094			}
6095		""
6096	end
6097
6098	case float_to_mat4x3
6099		version 300 es
6100		values
6101		{
6102			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6103			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) ];
6104		}
6105
6106		both ""
6107			#version 300 es
6108			precision mediump float;
6109			precision mediump int;
6110
6111			${DECLARATIONS}
6112
6113			void main()
6114			{
6115				${SETUP}
6116				out0 = mat4x3(in0);
6117				${OUTPUT}
6118			}
6119		""
6120	end
6121
6122	case float_to_mat4x2
6123		version 300 es
6124		values
6125		{
6126			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6127			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) ];
6128		}
6129
6130		both ""
6131			#version 300 es
6132			precision mediump float;
6133			precision mediump int;
6134
6135			${DECLARATIONS}
6136
6137			void main()
6138			{
6139				${SETUP}
6140				out0 = mat4x2(in0);
6141				${OUTPUT}
6142			}
6143		""
6144	end
6145
6146	case float_to_mat3x4
6147		version 300 es
6148		values
6149		{
6150			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6151			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) ];
6152		}
6153
6154		both ""
6155			#version 300 es
6156			precision mediump float;
6157			precision mediump int;
6158
6159			${DECLARATIONS}
6160
6161			void main()
6162			{
6163				${SETUP}
6164				out0 = mat3x4(in0);
6165				${OUTPUT}
6166			}
6167		""
6168	end
6169
6170	case float_to_mat3
6171		version 300 es
6172		values
6173		{
6174			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6175			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) ];
6176		}
6177
6178		both ""
6179			#version 300 es
6180			precision mediump float;
6181			precision mediump int;
6182
6183			${DECLARATIONS}
6184
6185			void main()
6186			{
6187				${SETUP}
6188				out0 = mat3(in0);
6189				${OUTPUT}
6190			}
6191		""
6192	end
6193
6194	case float_to_mat3x2
6195		version 300 es
6196		values
6197		{
6198			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6199			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) ];
6200		}
6201
6202		both ""
6203			#version 300 es
6204			precision mediump float;
6205			precision mediump int;
6206
6207			${DECLARATIONS}
6208
6209			void main()
6210			{
6211				${SETUP}
6212				out0 = mat3x2(in0);
6213				${OUTPUT}
6214			}
6215		""
6216	end
6217
6218	case float_to_mat2x4
6219		version 300 es
6220		values
6221		{
6222			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6223			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) ];
6224		}
6225
6226		both ""
6227			#version 300 es
6228			precision mediump float;
6229			precision mediump int;
6230
6231			${DECLARATIONS}
6232
6233			void main()
6234			{
6235				${SETUP}
6236				out0 = mat2x4(in0);
6237				${OUTPUT}
6238			}
6239		""
6240	end
6241
6242	case float_to_mat2x3
6243		version 300 es
6244		values
6245		{
6246			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6247			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) ];
6248		}
6249
6250		both ""
6251			#version 300 es
6252			precision mediump float;
6253			precision mediump int;
6254
6255			${DECLARATIONS}
6256
6257			void main()
6258			{
6259				${SETUP}
6260				out0 = mat2x3(in0);
6261				${OUTPUT}
6262			}
6263		""
6264	end
6265
6266	case float_to_mat2
6267		version 300 es
6268		values
6269		{
6270			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
6271			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) ];
6272		}
6273
6274		both ""
6275			#version 300 es
6276			precision mediump float;
6277			precision mediump int;
6278
6279			${DECLARATIONS}
6280
6281			void main()
6282			{
6283				${SETUP}
6284				out0 = mat2(in0);
6285				${OUTPUT}
6286			}
6287		""
6288	end
6289
6290	case int_to_mat4
6291		version 300 es
6292		values
6293		{
6294			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6295			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) ];
6296		}
6297
6298		both ""
6299			#version 300 es
6300			precision mediump float;
6301			precision mediump int;
6302
6303			${DECLARATIONS}
6304
6305			void main()
6306			{
6307				${SETUP}
6308				out0 = mat4(in0);
6309				${OUTPUT}
6310			}
6311		""
6312	end
6313
6314	case int_to_mat4x3
6315		version 300 es
6316		values
6317		{
6318			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6319			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) ];
6320		}
6321
6322		both ""
6323			#version 300 es
6324			precision mediump float;
6325			precision mediump int;
6326
6327			${DECLARATIONS}
6328
6329			void main()
6330			{
6331				${SETUP}
6332				out0 = mat4x3(in0);
6333				${OUTPUT}
6334			}
6335		""
6336	end
6337
6338	case int_to_mat4x2
6339		version 300 es
6340		values
6341		{
6342			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6343			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) ];
6344		}
6345
6346		both ""
6347			#version 300 es
6348			precision mediump float;
6349			precision mediump int;
6350
6351			${DECLARATIONS}
6352
6353			void main()
6354			{
6355				${SETUP}
6356				out0 = mat4x2(in0);
6357				${OUTPUT}
6358			}
6359		""
6360	end
6361
6362	case int_to_mat3x4
6363		version 300 es
6364		values
6365		{
6366			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6367			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) ];
6368		}
6369
6370		both ""
6371			#version 300 es
6372			precision mediump float;
6373			precision mediump int;
6374
6375			${DECLARATIONS}
6376
6377			void main()
6378			{
6379				${SETUP}
6380				out0 = mat3x4(in0);
6381				${OUTPUT}
6382			}
6383		""
6384	end
6385
6386	case int_to_mat3
6387		version 300 es
6388		values
6389		{
6390			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6391			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) ];
6392		}
6393
6394		both ""
6395			#version 300 es
6396			precision mediump float;
6397			precision mediump int;
6398
6399			${DECLARATIONS}
6400
6401			void main()
6402			{
6403				${SETUP}
6404				out0 = mat3(in0);
6405				${OUTPUT}
6406			}
6407		""
6408	end
6409
6410	case int_to_mat3x2
6411		version 300 es
6412		values
6413		{
6414			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6415			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) ];
6416		}
6417
6418		both ""
6419			#version 300 es
6420			precision mediump float;
6421			precision mediump int;
6422
6423			${DECLARATIONS}
6424
6425			void main()
6426			{
6427				${SETUP}
6428				out0 = mat3x2(in0);
6429				${OUTPUT}
6430			}
6431		""
6432	end
6433
6434	case int_to_mat2x4
6435		version 300 es
6436		values
6437		{
6438			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6439			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) ];
6440		}
6441
6442		both ""
6443			#version 300 es
6444			precision mediump float;
6445			precision mediump int;
6446
6447			${DECLARATIONS}
6448
6449			void main()
6450			{
6451				${SETUP}
6452				out0 = mat2x4(in0);
6453				${OUTPUT}
6454			}
6455		""
6456	end
6457
6458	case int_to_mat2x3
6459		version 300 es
6460		values
6461		{
6462			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6463			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) ];
6464		}
6465
6466		both ""
6467			#version 300 es
6468			precision mediump float;
6469			precision mediump int;
6470
6471			${DECLARATIONS}
6472
6473			void main()
6474			{
6475				${SETUP}
6476				out0 = mat2x3(in0);
6477				${OUTPUT}
6478			}
6479		""
6480	end
6481
6482	case int_to_mat2
6483		version 300 es
6484		values
6485		{
6486			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
6487			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) ];
6488		}
6489
6490		both ""
6491			#version 300 es
6492			precision mediump float;
6493			precision mediump int;
6494
6495			${DECLARATIONS}
6496
6497			void main()
6498			{
6499				${SETUP}
6500				out0 = mat2(in0);
6501				${OUTPUT}
6502			}
6503		""
6504	end
6505
6506	case uint_to_mat4
6507		version 300 es
6508		values
6509		{
6510			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6511			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) ];
6512		}
6513
6514		both ""
6515			#version 300 es
6516			precision mediump float;
6517			precision mediump int;
6518
6519			${DECLARATIONS}
6520
6521			void main()
6522			{
6523				${SETUP}
6524				out0 = mat4(in0);
6525				${OUTPUT}
6526			}
6527		""
6528	end
6529
6530	case uint_to_mat4x3
6531		version 300 es
6532		values
6533		{
6534			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6535			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) ];
6536		}
6537
6538		both ""
6539			#version 300 es
6540			precision mediump float;
6541			precision mediump int;
6542
6543			${DECLARATIONS}
6544
6545			void main()
6546			{
6547				${SETUP}
6548				out0 = mat4x3(in0);
6549				${OUTPUT}
6550			}
6551		""
6552	end
6553
6554	case uint_to_mat4x2
6555		version 300 es
6556		values
6557		{
6558			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6559			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) ];
6560		}
6561
6562		both ""
6563			#version 300 es
6564			precision mediump float;
6565			precision mediump int;
6566
6567			${DECLARATIONS}
6568
6569			void main()
6570			{
6571				${SETUP}
6572				out0 = mat4x2(in0);
6573				${OUTPUT}
6574			}
6575		""
6576	end
6577
6578	case uint_to_mat3x4
6579		version 300 es
6580		values
6581		{
6582			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6583			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) ];
6584		}
6585
6586		both ""
6587			#version 300 es
6588			precision mediump float;
6589			precision mediump int;
6590
6591			${DECLARATIONS}
6592
6593			void main()
6594			{
6595				${SETUP}
6596				out0 = mat3x4(in0);
6597				${OUTPUT}
6598			}
6599		""
6600	end
6601
6602	case uint_to_mat3
6603		version 300 es
6604		values
6605		{
6606			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6607			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) ];
6608		}
6609
6610		both ""
6611			#version 300 es
6612			precision mediump float;
6613			precision mediump int;
6614
6615			${DECLARATIONS}
6616
6617			void main()
6618			{
6619				${SETUP}
6620				out0 = mat3(in0);
6621				${OUTPUT}
6622			}
6623		""
6624	end
6625
6626	case uint_to_mat3x2
6627		version 300 es
6628		values
6629		{
6630			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6631			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) ];
6632		}
6633
6634		both ""
6635			#version 300 es
6636			precision mediump float;
6637			precision mediump int;
6638
6639			${DECLARATIONS}
6640
6641			void main()
6642			{
6643				${SETUP}
6644				out0 = mat3x2(in0);
6645				${OUTPUT}
6646			}
6647		""
6648	end
6649
6650	case uint_to_mat2x4
6651		version 300 es
6652		values
6653		{
6654			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6655			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) ];
6656		}
6657
6658		both ""
6659			#version 300 es
6660			precision mediump float;
6661			precision mediump int;
6662
6663			${DECLARATIONS}
6664
6665			void main()
6666			{
6667				${SETUP}
6668				out0 = mat2x4(in0);
6669				${OUTPUT}
6670			}
6671		""
6672	end
6673
6674	case uint_to_mat2x3
6675		version 300 es
6676		values
6677		{
6678			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6679			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) ];
6680		}
6681
6682		both ""
6683			#version 300 es
6684			precision mediump float;
6685			precision mediump int;
6686
6687			${DECLARATIONS}
6688
6689			void main()
6690			{
6691				${SETUP}
6692				out0 = mat2x3(in0);
6693				${OUTPUT}
6694			}
6695		""
6696	end
6697
6698	case uint_to_mat2
6699		version 300 es
6700		values
6701		{
6702			input uint in0 = [ 0 | 2 | 3 | 8 | 9 | 12 | 10 | 45 | 193 | 255 ];
6703			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) ];
6704		}
6705
6706		both ""
6707			#version 300 es
6708			precision mediump float;
6709			precision mediump int;
6710
6711			${DECLARATIONS}
6712
6713			void main()
6714			{
6715				${SETUP}
6716				out0 = mat2(in0);
6717				${OUTPUT}
6718			}
6719		""
6720	end
6721
6722	case bool_to_mat4
6723		version 300 es
6724		values
6725		{
6726			input bool in0 = [ true | false ];
6727			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) ];
6728		}
6729
6730		both ""
6731			#version 300 es
6732			precision mediump float;
6733			precision mediump int;
6734
6735			${DECLARATIONS}
6736
6737			void main()
6738			{
6739				${SETUP}
6740				out0 = mat4(in0);
6741				${OUTPUT}
6742			}
6743		""
6744	end
6745
6746	case bool_to_mat4x3
6747		version 300 es
6748		values
6749		{
6750			input bool in0 = [ true | false ];
6751			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) ];
6752		}
6753
6754		both ""
6755			#version 300 es
6756			precision mediump float;
6757			precision mediump int;
6758
6759			${DECLARATIONS}
6760
6761			void main()
6762			{
6763				${SETUP}
6764				out0 = mat4x3(in0);
6765				${OUTPUT}
6766			}
6767		""
6768	end
6769
6770	case bool_to_mat4x2
6771		version 300 es
6772		values
6773		{
6774			input bool in0 = [ true | false ];
6775			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) ];
6776		}
6777
6778		both ""
6779			#version 300 es
6780			precision mediump float;
6781			precision mediump int;
6782
6783			${DECLARATIONS}
6784
6785			void main()
6786			{
6787				${SETUP}
6788				out0 = mat4x2(in0);
6789				${OUTPUT}
6790			}
6791		""
6792	end
6793
6794	case bool_to_mat3x4
6795		version 300 es
6796		values
6797		{
6798			input bool in0 = [ true | false ];
6799			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) ];
6800		}
6801
6802		both ""
6803			#version 300 es
6804			precision mediump float;
6805			precision mediump int;
6806
6807			${DECLARATIONS}
6808
6809			void main()
6810			{
6811				${SETUP}
6812				out0 = mat3x4(in0);
6813				${OUTPUT}
6814			}
6815		""
6816	end
6817
6818	case bool_to_mat3
6819		version 300 es
6820		values
6821		{
6822			input bool in0 = [ true | false ];
6823			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) ];
6824		}
6825
6826		both ""
6827			#version 300 es
6828			precision mediump float;
6829			precision mediump int;
6830
6831			${DECLARATIONS}
6832
6833			void main()
6834			{
6835				${SETUP}
6836				out0 = mat3(in0);
6837				${OUTPUT}
6838			}
6839		""
6840	end
6841
6842	case bool_to_mat3x2
6843		version 300 es
6844		values
6845		{
6846			input bool in0 = [ true | false ];
6847			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) ];
6848		}
6849
6850		both ""
6851			#version 300 es
6852			precision mediump float;
6853			precision mediump int;
6854
6855			${DECLARATIONS}
6856
6857			void main()
6858			{
6859				${SETUP}
6860				out0 = mat3x2(in0);
6861				${OUTPUT}
6862			}
6863		""
6864	end
6865
6866	case bool_to_mat2x4
6867		version 300 es
6868		values
6869		{
6870			input bool in0 = [ true | false ];
6871			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) ];
6872		}
6873
6874		both ""
6875			#version 300 es
6876			precision mediump float;
6877			precision mediump int;
6878
6879			${DECLARATIONS}
6880
6881			void main()
6882			{
6883				${SETUP}
6884				out0 = mat2x4(in0);
6885				${OUTPUT}
6886			}
6887		""
6888	end
6889
6890	case bool_to_mat2x3
6891		version 300 es
6892		values
6893		{
6894			input bool in0 = [ true | false ];
6895			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) ];
6896		}
6897
6898		both ""
6899			#version 300 es
6900			precision mediump float;
6901			precision mediump int;
6902
6903			${DECLARATIONS}
6904
6905			void main()
6906			{
6907				${SETUP}
6908				out0 = mat2x3(in0);
6909				${OUTPUT}
6910			}
6911		""
6912	end
6913
6914	case bool_to_mat2
6915		version 300 es
6916		values
6917		{
6918			input bool in0 = [ true | false ];
6919			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(0.0, 0.0, 0.0, 0.0) ];
6920		}
6921
6922		both ""
6923			#version 300 es
6924			precision mediump float;
6925			precision mediump int;
6926
6927			${DECLARATIONS}
6928
6929			void main()
6930			{
6931				${SETUP}
6932				out0 = mat2(in0);
6933				${OUTPUT}
6934			}
6935		""
6936	end
6937
6938
6939end # scalar_to_matrix
6940group matrix_to_matrix "Matrix to Matrix Conversions"
6941
6942	case mat4_to_mat4
6943		version 300 es
6944		values
6945		{
6946			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) ];
6947			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) ];
6948		}
6949
6950		both ""
6951			#version 300 es
6952			precision mediump float;
6953			precision mediump int;
6954
6955			${DECLARATIONS}
6956
6957			void main()
6958			{
6959				${SETUP}
6960				out0 = mat4(in0);
6961				${OUTPUT}
6962			}
6963		""
6964	end
6965
6966	case mat4_to_mat4x3
6967		version 300 es
6968		values
6969		{
6970			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) ];
6971			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) ];
6972		}
6973
6974		both ""
6975			#version 300 es
6976			precision mediump float;
6977			precision mediump int;
6978
6979			${DECLARATIONS}
6980
6981			void main()
6982			{
6983				${SETUP}
6984				out0 = mat4x3(in0);
6985				${OUTPUT}
6986			}
6987		""
6988	end
6989
6990	case mat4_to_mat4x2
6991		version 300 es
6992		values
6993		{
6994			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) ];
6995			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) ];
6996		}
6997
6998		both ""
6999			#version 300 es
7000			precision mediump float;
7001			precision mediump int;
7002
7003			${DECLARATIONS}
7004
7005			void main()
7006			{
7007				${SETUP}
7008				out0 = mat4x2(in0);
7009				${OUTPUT}
7010			}
7011		""
7012	end
7013
7014	case mat4_to_mat3x4
7015		version 300 es
7016		values
7017		{
7018			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) ];
7019			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) ];
7020		}
7021
7022		both ""
7023			#version 300 es
7024			precision mediump float;
7025			precision mediump int;
7026
7027			${DECLARATIONS}
7028
7029			void main()
7030			{
7031				${SETUP}
7032				out0 = mat3x4(in0);
7033				${OUTPUT}
7034			}
7035		""
7036	end
7037
7038	case mat4_to_mat3
7039		version 300 es
7040		values
7041		{
7042			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) ];
7043			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) ];
7044		}
7045
7046		both ""
7047			#version 300 es
7048			precision mediump float;
7049			precision mediump int;
7050
7051			${DECLARATIONS}
7052
7053			void main()
7054			{
7055				${SETUP}
7056				out0 = mat3(in0);
7057				${OUTPUT}
7058			}
7059		""
7060	end
7061
7062	case mat4_to_mat3x2
7063		version 300 es
7064		values
7065		{
7066			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) ];
7067			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) ];
7068		}
7069
7070		both ""
7071			#version 300 es
7072			precision mediump float;
7073			precision mediump int;
7074
7075			${DECLARATIONS}
7076
7077			void main()
7078			{
7079				${SETUP}
7080				out0 = mat3x2(in0);
7081				${OUTPUT}
7082			}
7083		""
7084	end
7085
7086	case mat4_to_mat2x4
7087		version 300 es
7088		values
7089		{
7090			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) ];
7091			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) ];
7092		}
7093
7094		both ""
7095			#version 300 es
7096			precision mediump float;
7097			precision mediump int;
7098
7099			${DECLARATIONS}
7100
7101			void main()
7102			{
7103				${SETUP}
7104				out0 = mat2x4(in0);
7105				${OUTPUT}
7106			}
7107		""
7108	end
7109
7110	case mat4_to_mat2x3
7111		version 300 es
7112		values
7113		{
7114			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) ];
7115			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) ];
7116		}
7117
7118		both ""
7119			#version 300 es
7120			precision mediump float;
7121			precision mediump int;
7122
7123			${DECLARATIONS}
7124
7125			void main()
7126			{
7127				${SETUP}
7128				out0 = mat2x3(in0);
7129				${OUTPUT}
7130			}
7131		""
7132	end
7133
7134	case mat4_to_mat2
7135		version 300 es
7136		values
7137		{
7138			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) ];
7139			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7140		}
7141
7142		both ""
7143			#version 300 es
7144			precision mediump float;
7145			precision mediump int;
7146
7147			${DECLARATIONS}
7148
7149			void main()
7150			{
7151				${SETUP}
7152				out0 = mat2(in0);
7153				${OUTPUT}
7154			}
7155		""
7156	end
7157
7158	case mat4x3_to_mat4
7159		version 300 es
7160		values
7161		{
7162			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) ];
7163			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) ];
7164		}
7165
7166		both ""
7167			#version 300 es
7168			precision mediump float;
7169			precision mediump int;
7170
7171			${DECLARATIONS}
7172
7173			void main()
7174			{
7175				${SETUP}
7176				out0 = mat4(in0);
7177				${OUTPUT}
7178			}
7179		""
7180	end
7181
7182	case mat4x3_to_mat4x3
7183		version 300 es
7184		values
7185		{
7186			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) ];
7187			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) ];
7188		}
7189
7190		both ""
7191			#version 300 es
7192			precision mediump float;
7193			precision mediump int;
7194
7195			${DECLARATIONS}
7196
7197			void main()
7198			{
7199				${SETUP}
7200				out0 = mat4x3(in0);
7201				${OUTPUT}
7202			}
7203		""
7204	end
7205
7206	case mat4x3_to_mat4x2
7207		version 300 es
7208		values
7209		{
7210			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) ];
7211			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) ];
7212		}
7213
7214		both ""
7215			#version 300 es
7216			precision mediump float;
7217			precision mediump int;
7218
7219			${DECLARATIONS}
7220
7221			void main()
7222			{
7223				${SETUP}
7224				out0 = mat4x2(in0);
7225				${OUTPUT}
7226			}
7227		""
7228	end
7229
7230	case mat4x3_to_mat3x4
7231		version 300 es
7232		values
7233		{
7234			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) ];
7235			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) ];
7236		}
7237
7238		both ""
7239			#version 300 es
7240			precision mediump float;
7241			precision mediump int;
7242
7243			${DECLARATIONS}
7244
7245			void main()
7246			{
7247				${SETUP}
7248				out0 = mat3x4(in0);
7249				${OUTPUT}
7250			}
7251		""
7252	end
7253
7254	case mat4x3_to_mat3
7255		version 300 es
7256		values
7257		{
7258			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) ];
7259			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) ];
7260		}
7261
7262		both ""
7263			#version 300 es
7264			precision mediump float;
7265			precision mediump int;
7266
7267			${DECLARATIONS}
7268
7269			void main()
7270			{
7271				${SETUP}
7272				out0 = mat3(in0);
7273				${OUTPUT}
7274			}
7275		""
7276	end
7277
7278	case mat4x3_to_mat3x2
7279		version 300 es
7280		values
7281		{
7282			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) ];
7283			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) ];
7284		}
7285
7286		both ""
7287			#version 300 es
7288			precision mediump float;
7289			precision mediump int;
7290
7291			${DECLARATIONS}
7292
7293			void main()
7294			{
7295				${SETUP}
7296				out0 = mat3x2(in0);
7297				${OUTPUT}
7298			}
7299		""
7300	end
7301
7302	case mat4x3_to_mat2x4
7303		version 300 es
7304		values
7305		{
7306			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) ];
7307			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) ];
7308		}
7309
7310		both ""
7311			#version 300 es
7312			precision mediump float;
7313			precision mediump int;
7314
7315			${DECLARATIONS}
7316
7317			void main()
7318			{
7319				${SETUP}
7320				out0 = mat2x4(in0);
7321				${OUTPUT}
7322			}
7323		""
7324	end
7325
7326	case mat4x3_to_mat2x3
7327		version 300 es
7328		values
7329		{
7330			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) ];
7331			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) ];
7332		}
7333
7334		both ""
7335			#version 300 es
7336			precision mediump float;
7337			precision mediump int;
7338
7339			${DECLARATIONS}
7340
7341			void main()
7342			{
7343				${SETUP}
7344				out0 = mat2x3(in0);
7345				${OUTPUT}
7346			}
7347		""
7348	end
7349
7350	case mat4x3_to_mat2
7351		version 300 es
7352		values
7353		{
7354			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) ];
7355			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7356		}
7357
7358		both ""
7359			#version 300 es
7360			precision mediump float;
7361			precision mediump int;
7362
7363			${DECLARATIONS}
7364
7365			void main()
7366			{
7367				${SETUP}
7368				out0 = mat2(in0);
7369				${OUTPUT}
7370			}
7371		""
7372	end
7373
7374	case mat4x2_to_mat4
7375		version 300 es
7376		values
7377		{
7378			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) ];
7379			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) ];
7380		}
7381
7382		both ""
7383			#version 300 es
7384			precision mediump float;
7385			precision mediump int;
7386
7387			${DECLARATIONS}
7388
7389			void main()
7390			{
7391				${SETUP}
7392				out0 = mat4(in0);
7393				${OUTPUT}
7394			}
7395		""
7396	end
7397
7398	case mat4x2_to_mat4x3
7399		version 300 es
7400		values
7401		{
7402			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) ];
7403			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) ];
7404		}
7405
7406		both ""
7407			#version 300 es
7408			precision mediump float;
7409			precision mediump int;
7410
7411			${DECLARATIONS}
7412
7413			void main()
7414			{
7415				${SETUP}
7416				out0 = mat4x3(in0);
7417				${OUTPUT}
7418			}
7419		""
7420	end
7421
7422	case mat4x2_to_mat4x2
7423		version 300 es
7424		values
7425		{
7426			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) ];
7427			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) ];
7428		}
7429
7430		both ""
7431			#version 300 es
7432			precision mediump float;
7433			precision mediump int;
7434
7435			${DECLARATIONS}
7436
7437			void main()
7438			{
7439				${SETUP}
7440				out0 = mat4x2(in0);
7441				${OUTPUT}
7442			}
7443		""
7444	end
7445
7446	case mat4x2_to_mat3x4
7447		version 300 es
7448		values
7449		{
7450			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) ];
7451			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) ];
7452		}
7453
7454		both ""
7455			#version 300 es
7456			precision mediump float;
7457			precision mediump int;
7458
7459			${DECLARATIONS}
7460
7461			void main()
7462			{
7463				${SETUP}
7464				out0 = mat3x4(in0);
7465				${OUTPUT}
7466			}
7467		""
7468	end
7469
7470	case mat4x2_to_mat3
7471		version 300 es
7472		values
7473		{
7474			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) ];
7475			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) ];
7476		}
7477
7478		both ""
7479			#version 300 es
7480			precision mediump float;
7481			precision mediump int;
7482
7483			${DECLARATIONS}
7484
7485			void main()
7486			{
7487				${SETUP}
7488				out0 = mat3(in0);
7489				${OUTPUT}
7490			}
7491		""
7492	end
7493
7494	case mat4x2_to_mat3x2
7495		version 300 es
7496		values
7497		{
7498			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) ];
7499			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) ];
7500		}
7501
7502		both ""
7503			#version 300 es
7504			precision mediump float;
7505			precision mediump int;
7506
7507			${DECLARATIONS}
7508
7509			void main()
7510			{
7511				${SETUP}
7512				out0 = mat3x2(in0);
7513				${OUTPUT}
7514			}
7515		""
7516	end
7517
7518	case mat4x2_to_mat2x4
7519		version 300 es
7520		values
7521		{
7522			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) ];
7523			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) ];
7524		}
7525
7526		both ""
7527			#version 300 es
7528			precision mediump float;
7529			precision mediump int;
7530
7531			${DECLARATIONS}
7532
7533			void main()
7534			{
7535				${SETUP}
7536				out0 = mat2x4(in0);
7537				${OUTPUT}
7538			}
7539		""
7540	end
7541
7542	case mat4x2_to_mat2x3
7543		version 300 es
7544		values
7545		{
7546			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) ];
7547			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) ];
7548		}
7549
7550		both ""
7551			#version 300 es
7552			precision mediump float;
7553			precision mediump int;
7554
7555			${DECLARATIONS}
7556
7557			void main()
7558			{
7559				${SETUP}
7560				out0 = mat2x3(in0);
7561				${OUTPUT}
7562			}
7563		""
7564	end
7565
7566	case mat4x2_to_mat2
7567		version 300 es
7568		values
7569		{
7570			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) ];
7571			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7572		}
7573
7574		both ""
7575			#version 300 es
7576			precision mediump float;
7577			precision mediump int;
7578
7579			${DECLARATIONS}
7580
7581			void main()
7582			{
7583				${SETUP}
7584				out0 = mat2(in0);
7585				${OUTPUT}
7586			}
7587		""
7588	end
7589
7590	case mat3x4_to_mat4
7591		version 300 es
7592		values
7593		{
7594			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) ];
7595			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) ];
7596		}
7597
7598		both ""
7599			#version 300 es
7600			precision mediump float;
7601			precision mediump int;
7602
7603			${DECLARATIONS}
7604
7605			void main()
7606			{
7607				${SETUP}
7608				out0 = mat4(in0);
7609				${OUTPUT}
7610			}
7611		""
7612	end
7613
7614	case mat3x4_to_mat4x3
7615		version 300 es
7616		values
7617		{
7618			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) ];
7619			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) ];
7620		}
7621
7622		both ""
7623			#version 300 es
7624			precision mediump float;
7625			precision mediump int;
7626
7627			${DECLARATIONS}
7628
7629			void main()
7630			{
7631				${SETUP}
7632				out0 = mat4x3(in0);
7633				${OUTPUT}
7634			}
7635		""
7636	end
7637
7638	case mat3x4_to_mat4x2
7639		version 300 es
7640		values
7641		{
7642			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) ];
7643			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) ];
7644		}
7645
7646		both ""
7647			#version 300 es
7648			precision mediump float;
7649			precision mediump int;
7650
7651			${DECLARATIONS}
7652
7653			void main()
7654			{
7655				${SETUP}
7656				out0 = mat4x2(in0);
7657				${OUTPUT}
7658			}
7659		""
7660	end
7661
7662	case mat3x4_to_mat3x4
7663		version 300 es
7664		values
7665		{
7666			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) ];
7667			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) ];
7668		}
7669
7670		both ""
7671			#version 300 es
7672			precision mediump float;
7673			precision mediump int;
7674
7675			${DECLARATIONS}
7676
7677			void main()
7678			{
7679				${SETUP}
7680				out0 = mat3x4(in0);
7681				${OUTPUT}
7682			}
7683		""
7684	end
7685
7686	case mat3x4_to_mat3
7687		version 300 es
7688		values
7689		{
7690			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) ];
7691			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) ];
7692		}
7693
7694		both ""
7695			#version 300 es
7696			precision mediump float;
7697			precision mediump int;
7698
7699			${DECLARATIONS}
7700
7701			void main()
7702			{
7703				${SETUP}
7704				out0 = mat3(in0);
7705				${OUTPUT}
7706			}
7707		""
7708	end
7709
7710	case mat3x4_to_mat3x2
7711		version 300 es
7712		values
7713		{
7714			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) ];
7715			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) ];
7716		}
7717
7718		both ""
7719			#version 300 es
7720			precision mediump float;
7721			precision mediump int;
7722
7723			${DECLARATIONS}
7724
7725			void main()
7726			{
7727				${SETUP}
7728				out0 = mat3x2(in0);
7729				${OUTPUT}
7730			}
7731		""
7732	end
7733
7734	case mat3x4_to_mat2x4
7735		version 300 es
7736		values
7737		{
7738			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) ];
7739			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) ];
7740		}
7741
7742		both ""
7743			#version 300 es
7744			precision mediump float;
7745			precision mediump int;
7746
7747			${DECLARATIONS}
7748
7749			void main()
7750			{
7751				${SETUP}
7752				out0 = mat2x4(in0);
7753				${OUTPUT}
7754			}
7755		""
7756	end
7757
7758	case mat3x4_to_mat2x3
7759		version 300 es
7760		values
7761		{
7762			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) ];
7763			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) ];
7764		}
7765
7766		both ""
7767			#version 300 es
7768			precision mediump float;
7769			precision mediump int;
7770
7771			${DECLARATIONS}
7772
7773			void main()
7774			{
7775				${SETUP}
7776				out0 = mat2x3(in0);
7777				${OUTPUT}
7778			}
7779		""
7780	end
7781
7782	case mat3x4_to_mat2
7783		version 300 es
7784		values
7785		{
7786			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) ];
7787			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
7788		}
7789
7790		both ""
7791			#version 300 es
7792			precision mediump float;
7793			precision mediump int;
7794
7795			${DECLARATIONS}
7796
7797			void main()
7798			{
7799				${SETUP}
7800				out0 = mat2(in0);
7801				${OUTPUT}
7802			}
7803		""
7804	end
7805
7806	case mat3_to_mat4
7807		version 300 es
7808		values
7809		{
7810			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) ];
7811			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) ];
7812		}
7813
7814		both ""
7815			#version 300 es
7816			precision mediump float;
7817			precision mediump int;
7818
7819			${DECLARATIONS}
7820
7821			void main()
7822			{
7823				${SETUP}
7824				out0 = mat4(in0);
7825				${OUTPUT}
7826			}
7827		""
7828	end
7829
7830	case mat3_to_mat4x3
7831		version 300 es
7832		values
7833		{
7834			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) ];
7835			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) ];
7836		}
7837
7838		both ""
7839			#version 300 es
7840			precision mediump float;
7841			precision mediump int;
7842
7843			${DECLARATIONS}
7844
7845			void main()
7846			{
7847				${SETUP}
7848				out0 = mat4x3(in0);
7849				${OUTPUT}
7850			}
7851		""
7852	end
7853
7854	case mat3_to_mat4x2
7855		version 300 es
7856		values
7857		{
7858			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) ];
7859			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) ];
7860		}
7861
7862		both ""
7863			#version 300 es
7864			precision mediump float;
7865			precision mediump int;
7866
7867			${DECLARATIONS}
7868
7869			void main()
7870			{
7871				${SETUP}
7872				out0 = mat4x2(in0);
7873				${OUTPUT}
7874			}
7875		""
7876	end
7877
7878	case mat3_to_mat3x4
7879		version 300 es
7880		values
7881		{
7882			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) ];
7883			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) ];
7884		}
7885
7886		both ""
7887			#version 300 es
7888			precision mediump float;
7889			precision mediump int;
7890
7891			${DECLARATIONS}
7892
7893			void main()
7894			{
7895				${SETUP}
7896				out0 = mat3x4(in0);
7897				${OUTPUT}
7898			}
7899		""
7900	end
7901
7902	case mat3_to_mat3
7903		version 300 es
7904		values
7905		{
7906			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) ];
7907			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) ];
7908		}
7909
7910		both ""
7911			#version 300 es
7912			precision mediump float;
7913			precision mediump int;
7914
7915			${DECLARATIONS}
7916
7917			void main()
7918			{
7919				${SETUP}
7920				out0 = mat3(in0);
7921				${OUTPUT}
7922			}
7923		""
7924	end
7925
7926	case mat3_to_mat3x2
7927		version 300 es
7928		values
7929		{
7930			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) ];
7931			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) ];
7932		}
7933
7934		both ""
7935			#version 300 es
7936			precision mediump float;
7937			precision mediump int;
7938
7939			${DECLARATIONS}
7940
7941			void main()
7942			{
7943				${SETUP}
7944				out0 = mat3x2(in0);
7945				${OUTPUT}
7946			}
7947		""
7948	end
7949
7950	case mat3_to_mat2x4
7951		version 300 es
7952		values
7953		{
7954			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) ];
7955			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) ];
7956		}
7957
7958		both ""
7959			#version 300 es
7960			precision mediump float;
7961			precision mediump int;
7962
7963			${DECLARATIONS}
7964
7965			void main()
7966			{
7967				${SETUP}
7968				out0 = mat2x4(in0);
7969				${OUTPUT}
7970			}
7971		""
7972	end
7973
7974	case mat3_to_mat2x3
7975		version 300 es
7976		values
7977		{
7978			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) ];
7979			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) ];
7980		}
7981
7982		both ""
7983			#version 300 es
7984			precision mediump float;
7985			precision mediump int;
7986
7987			${DECLARATIONS}
7988
7989			void main()
7990			{
7991				${SETUP}
7992				out0 = mat2x3(in0);
7993				${OUTPUT}
7994			}
7995		""
7996	end
7997
7998	case mat3_to_mat2
7999		version 300 es
8000		values
8001		{
8002			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) ];
8003			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
8004		}
8005
8006		both ""
8007			#version 300 es
8008			precision mediump float;
8009			precision mediump int;
8010
8011			${DECLARATIONS}
8012
8013			void main()
8014			{
8015				${SETUP}
8016				out0 = mat2(in0);
8017				${OUTPUT}
8018			}
8019		""
8020	end
8021
8022	case mat3x2_to_mat4
8023		version 300 es
8024		values
8025		{
8026			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) ];
8027			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) ];
8028		}
8029
8030		both ""
8031			#version 300 es
8032			precision mediump float;
8033			precision mediump int;
8034
8035			${DECLARATIONS}
8036
8037			void main()
8038			{
8039				${SETUP}
8040				out0 = mat4(in0);
8041				${OUTPUT}
8042			}
8043		""
8044	end
8045
8046	case mat3x2_to_mat4x3
8047		version 300 es
8048		values
8049		{
8050			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) ];
8051			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) ];
8052		}
8053
8054		both ""
8055			#version 300 es
8056			precision mediump float;
8057			precision mediump int;
8058
8059			${DECLARATIONS}
8060
8061			void main()
8062			{
8063				${SETUP}
8064				out0 = mat4x3(in0);
8065				${OUTPUT}
8066			}
8067		""
8068	end
8069
8070	case mat3x2_to_mat4x2
8071		version 300 es
8072		values
8073		{
8074			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) ];
8075			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) ];
8076		}
8077
8078		both ""
8079			#version 300 es
8080			precision mediump float;
8081			precision mediump int;
8082
8083			${DECLARATIONS}
8084
8085			void main()
8086			{
8087				${SETUP}
8088				out0 = mat4x2(in0);
8089				${OUTPUT}
8090			}
8091		""
8092	end
8093
8094	case mat3x2_to_mat3x4
8095		version 300 es
8096		values
8097		{
8098			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) ];
8099			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) ];
8100		}
8101
8102		both ""
8103			#version 300 es
8104			precision mediump float;
8105			precision mediump int;
8106
8107			${DECLARATIONS}
8108
8109			void main()
8110			{
8111				${SETUP}
8112				out0 = mat3x4(in0);
8113				${OUTPUT}
8114			}
8115		""
8116	end
8117
8118	case mat3x2_to_mat3
8119		version 300 es
8120		values
8121		{
8122			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) ];
8123			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) ];
8124		}
8125
8126		both ""
8127			#version 300 es
8128			precision mediump float;
8129			precision mediump int;
8130
8131			${DECLARATIONS}
8132
8133			void main()
8134			{
8135				${SETUP}
8136				out0 = mat3(in0);
8137				${OUTPUT}
8138			}
8139		""
8140	end
8141
8142	case mat3x2_to_mat3x2
8143		version 300 es
8144		values
8145		{
8146			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) ];
8147			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) ];
8148		}
8149
8150		both ""
8151			#version 300 es
8152			precision mediump float;
8153			precision mediump int;
8154
8155			${DECLARATIONS}
8156
8157			void main()
8158			{
8159				${SETUP}
8160				out0 = mat3x2(in0);
8161				${OUTPUT}
8162			}
8163		""
8164	end
8165
8166	case mat3x2_to_mat2x4
8167		version 300 es
8168		values
8169		{
8170			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) ];
8171			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) ];
8172		}
8173
8174		both ""
8175			#version 300 es
8176			precision mediump float;
8177			precision mediump int;
8178
8179			${DECLARATIONS}
8180
8181			void main()
8182			{
8183				${SETUP}
8184				out0 = mat2x4(in0);
8185				${OUTPUT}
8186			}
8187		""
8188	end
8189
8190	case mat3x2_to_mat2x3
8191		version 300 es
8192		values
8193		{
8194			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) ];
8195			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) ];
8196		}
8197
8198		both ""
8199			#version 300 es
8200			precision mediump float;
8201			precision mediump int;
8202
8203			${DECLARATIONS}
8204
8205			void main()
8206			{
8207				${SETUP}
8208				out0 = mat2x3(in0);
8209				${OUTPUT}
8210			}
8211		""
8212	end
8213
8214	case mat3x2_to_mat2
8215		version 300 es
8216		values
8217		{
8218			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) ];
8219			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
8220		}
8221
8222		both ""
8223			#version 300 es
8224			precision mediump float;
8225			precision mediump int;
8226
8227			${DECLARATIONS}
8228
8229			void main()
8230			{
8231				${SETUP}
8232				out0 = mat2(in0);
8233				${OUTPUT}
8234			}
8235		""
8236	end
8237
8238	case mat2x4_to_mat4
8239		version 300 es
8240		values
8241		{
8242			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) ];
8243			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) ];
8244		}
8245
8246		both ""
8247			#version 300 es
8248			precision mediump float;
8249			precision mediump int;
8250
8251			${DECLARATIONS}
8252
8253			void main()
8254			{
8255				${SETUP}
8256				out0 = mat4(in0);
8257				${OUTPUT}
8258			}
8259		""
8260	end
8261
8262	case mat2x4_to_mat4x3
8263		version 300 es
8264		values
8265		{
8266			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) ];
8267			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) ];
8268		}
8269
8270		both ""
8271			#version 300 es
8272			precision mediump float;
8273			precision mediump int;
8274
8275			${DECLARATIONS}
8276
8277			void main()
8278			{
8279				${SETUP}
8280				out0 = mat4x3(in0);
8281				${OUTPUT}
8282			}
8283		""
8284	end
8285
8286	case mat2x4_to_mat4x2
8287		version 300 es
8288		values
8289		{
8290			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) ];
8291			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) ];
8292		}
8293
8294		both ""
8295			#version 300 es
8296			precision mediump float;
8297			precision mediump int;
8298
8299			${DECLARATIONS}
8300
8301			void main()
8302			{
8303				${SETUP}
8304				out0 = mat4x2(in0);
8305				${OUTPUT}
8306			}
8307		""
8308	end
8309
8310	case mat2x4_to_mat3x4
8311		version 300 es
8312		values
8313		{
8314			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) ];
8315			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) ];
8316		}
8317
8318		both ""
8319			#version 300 es
8320			precision mediump float;
8321			precision mediump int;
8322
8323			${DECLARATIONS}
8324
8325			void main()
8326			{
8327				${SETUP}
8328				out0 = mat3x4(in0);
8329				${OUTPUT}
8330			}
8331		""
8332	end
8333
8334	case mat2x4_to_mat3
8335		version 300 es
8336		values
8337		{
8338			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) ];
8339			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) ];
8340		}
8341
8342		both ""
8343			#version 300 es
8344			precision mediump float;
8345			precision mediump int;
8346
8347			${DECLARATIONS}
8348
8349			void main()
8350			{
8351				${SETUP}
8352				out0 = mat3(in0);
8353				${OUTPUT}
8354			}
8355		""
8356	end
8357
8358	case mat2x4_to_mat3x2
8359		version 300 es
8360		values
8361		{
8362			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) ];
8363			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) ];
8364		}
8365
8366		both ""
8367			#version 300 es
8368			precision mediump float;
8369			precision mediump int;
8370
8371			${DECLARATIONS}
8372
8373			void main()
8374			{
8375				${SETUP}
8376				out0 = mat3x2(in0);
8377				${OUTPUT}
8378			}
8379		""
8380	end
8381
8382	case mat2x4_to_mat2x4
8383		version 300 es
8384		values
8385		{
8386			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) ];
8387			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) ];
8388		}
8389
8390		both ""
8391			#version 300 es
8392			precision mediump float;
8393			precision mediump int;
8394
8395			${DECLARATIONS}
8396
8397			void main()
8398			{
8399				${SETUP}
8400				out0 = mat2x4(in0);
8401				${OUTPUT}
8402			}
8403		""
8404	end
8405
8406	case mat2x4_to_mat2x3
8407		version 300 es
8408		values
8409		{
8410			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) ];
8411			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) ];
8412		}
8413
8414		both ""
8415			#version 300 es
8416			precision mediump float;
8417			precision mediump int;
8418
8419			${DECLARATIONS}
8420
8421			void main()
8422			{
8423				${SETUP}
8424				out0 = mat2x3(in0);
8425				${OUTPUT}
8426			}
8427		""
8428	end
8429
8430	case mat2x4_to_mat2
8431		version 300 es
8432		values
8433		{
8434			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) ];
8435			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
8436		}
8437
8438		both ""
8439			#version 300 es
8440			precision mediump float;
8441			precision mediump int;
8442
8443			${DECLARATIONS}
8444
8445			void main()
8446			{
8447				${SETUP}
8448				out0 = mat2(in0);
8449				${OUTPUT}
8450			}
8451		""
8452	end
8453
8454	case mat2x3_to_mat4
8455		version 300 es
8456		values
8457		{
8458			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) ];
8459			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) ];
8460		}
8461
8462		both ""
8463			#version 300 es
8464			precision mediump float;
8465			precision mediump int;
8466
8467			${DECLARATIONS}
8468
8469			void main()
8470			{
8471				${SETUP}
8472				out0 = mat4(in0);
8473				${OUTPUT}
8474			}
8475		""
8476	end
8477
8478	case mat2x3_to_mat4x3
8479		version 300 es
8480		values
8481		{
8482			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) ];
8483			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) ];
8484		}
8485
8486		both ""
8487			#version 300 es
8488			precision mediump float;
8489			precision mediump int;
8490
8491			${DECLARATIONS}
8492
8493			void main()
8494			{
8495				${SETUP}
8496				out0 = mat4x3(in0);
8497				${OUTPUT}
8498			}
8499		""
8500	end
8501
8502	case mat2x3_to_mat4x2
8503		version 300 es
8504		values
8505		{
8506			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) ];
8507			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) ];
8508		}
8509
8510		both ""
8511			#version 300 es
8512			precision mediump float;
8513			precision mediump int;
8514
8515			${DECLARATIONS}
8516
8517			void main()
8518			{
8519				${SETUP}
8520				out0 = mat4x2(in0);
8521				${OUTPUT}
8522			}
8523		""
8524	end
8525
8526	case mat2x3_to_mat3x4
8527		version 300 es
8528		values
8529		{
8530			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) ];
8531			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) ];
8532		}
8533
8534		both ""
8535			#version 300 es
8536			precision mediump float;
8537			precision mediump int;
8538
8539			${DECLARATIONS}
8540
8541			void main()
8542			{
8543				${SETUP}
8544				out0 = mat3x4(in0);
8545				${OUTPUT}
8546			}
8547		""
8548	end
8549
8550	case mat2x3_to_mat3
8551		version 300 es
8552		values
8553		{
8554			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) ];
8555			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) ];
8556		}
8557
8558		both ""
8559			#version 300 es
8560			precision mediump float;
8561			precision mediump int;
8562
8563			${DECLARATIONS}
8564
8565			void main()
8566			{
8567				${SETUP}
8568				out0 = mat3(in0);
8569				${OUTPUT}
8570			}
8571		""
8572	end
8573
8574	case mat2x3_to_mat3x2
8575		version 300 es
8576		values
8577		{
8578			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) ];
8579			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) ];
8580		}
8581
8582		both ""
8583			#version 300 es
8584			precision mediump float;
8585			precision mediump int;
8586
8587			${DECLARATIONS}
8588
8589			void main()
8590			{
8591				${SETUP}
8592				out0 = mat3x2(in0);
8593				${OUTPUT}
8594			}
8595		""
8596	end
8597
8598	case mat2x3_to_mat2x4
8599		version 300 es
8600		values
8601		{
8602			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) ];
8603			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) ];
8604		}
8605
8606		both ""
8607			#version 300 es
8608			precision mediump float;
8609			precision mediump int;
8610
8611			${DECLARATIONS}
8612
8613			void main()
8614			{
8615				${SETUP}
8616				out0 = mat2x4(in0);
8617				${OUTPUT}
8618			}
8619		""
8620	end
8621
8622	case mat2x3_to_mat2x3
8623		version 300 es
8624		values
8625		{
8626			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) ];
8627			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) ];
8628		}
8629
8630		both ""
8631			#version 300 es
8632			precision mediump float;
8633			precision mediump int;
8634
8635			${DECLARATIONS}
8636
8637			void main()
8638			{
8639				${SETUP}
8640				out0 = mat2x3(in0);
8641				${OUTPUT}
8642			}
8643		""
8644	end
8645
8646	case mat2x3_to_mat2
8647		version 300 es
8648		values
8649		{
8650			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) ];
8651			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
8652		}
8653
8654		both ""
8655			#version 300 es
8656			precision mediump float;
8657			precision mediump int;
8658
8659			${DECLARATIONS}
8660
8661			void main()
8662			{
8663				${SETUP}
8664				out0 = mat2(in0);
8665				${OUTPUT}
8666			}
8667		""
8668	end
8669
8670	case mat2_to_mat4
8671		version 300 es
8672		values
8673		{
8674			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) ];
8675			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) ];
8676		}
8677
8678		both ""
8679			#version 300 es
8680			precision mediump float;
8681			precision mediump int;
8682
8683			${DECLARATIONS}
8684
8685			void main()
8686			{
8687				${SETUP}
8688				out0 = mat4(in0);
8689				${OUTPUT}
8690			}
8691		""
8692	end
8693
8694	case mat2_to_mat4x3
8695		version 300 es
8696		values
8697		{
8698			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) ];
8699			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) ];
8700		}
8701
8702		both ""
8703			#version 300 es
8704			precision mediump float;
8705			precision mediump int;
8706
8707			${DECLARATIONS}
8708
8709			void main()
8710			{
8711				${SETUP}
8712				out0 = mat4x3(in0);
8713				${OUTPUT}
8714			}
8715		""
8716	end
8717
8718	case mat2_to_mat4x2
8719		version 300 es
8720		values
8721		{
8722			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) ];
8723			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) ];
8724		}
8725
8726		both ""
8727			#version 300 es
8728			precision mediump float;
8729			precision mediump int;
8730
8731			${DECLARATIONS}
8732
8733			void main()
8734			{
8735				${SETUP}
8736				out0 = mat4x2(in0);
8737				${OUTPUT}
8738			}
8739		""
8740	end
8741
8742	case mat2_to_mat3x4
8743		version 300 es
8744		values
8745		{
8746			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) ];
8747			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) ];
8748		}
8749
8750		both ""
8751			#version 300 es
8752			precision mediump float;
8753			precision mediump int;
8754
8755			${DECLARATIONS}
8756
8757			void main()
8758			{
8759				${SETUP}
8760				out0 = mat3x4(in0);
8761				${OUTPUT}
8762			}
8763		""
8764	end
8765
8766	case mat2_to_mat3
8767		version 300 es
8768		values
8769		{
8770			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) ];
8771			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) ];
8772		}
8773
8774		both ""
8775			#version 300 es
8776			precision mediump float;
8777			precision mediump int;
8778
8779			${DECLARATIONS}
8780
8781			void main()
8782			{
8783				${SETUP}
8784				out0 = mat3(in0);
8785				${OUTPUT}
8786			}
8787		""
8788	end
8789
8790	case mat2_to_mat3x2
8791		version 300 es
8792		values
8793		{
8794			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) ];
8795			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) ];
8796		}
8797
8798		both ""
8799			#version 300 es
8800			precision mediump float;
8801			precision mediump int;
8802
8803			${DECLARATIONS}
8804
8805			void main()
8806			{
8807				${SETUP}
8808				out0 = mat3x2(in0);
8809				${OUTPUT}
8810			}
8811		""
8812	end
8813
8814	case mat2_to_mat2x4
8815		version 300 es
8816		values
8817		{
8818			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) ];
8819			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) ];
8820		}
8821
8822		both ""
8823			#version 300 es
8824			precision mediump float;
8825			precision mediump int;
8826
8827			${DECLARATIONS}
8828
8829			void main()
8830			{
8831				${SETUP}
8832				out0 = mat2x4(in0);
8833				${OUTPUT}
8834			}
8835		""
8836	end
8837
8838	case mat2_to_mat2x3
8839		version 300 es
8840		values
8841		{
8842			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) ];
8843			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) ];
8844		}
8845
8846		both ""
8847			#version 300 es
8848			precision mediump float;
8849			precision mediump int;
8850
8851			${DECLARATIONS}
8852
8853			void main()
8854			{
8855				${SETUP}
8856				out0 = mat2x3(in0);
8857				${OUTPUT}
8858			}
8859		""
8860	end
8861
8862	case mat2_to_mat2
8863		version 300 es
8864		values
8865		{
8866			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) ];
8867			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) ];
8868		}
8869
8870		both ""
8871			#version 300 es
8872			precision mediump float;
8873			precision mediump int;
8874
8875			${DECLARATIONS}
8876
8877			void main()
8878			{
8879				${SETUP}
8880				out0 = mat2(in0);
8881				${OUTPUT}
8882			}
8883		""
8884	end
8885
8886
8887end # matrix_to_matrix
8888group vector_combine "Vector Combine Constructors"
8889
8890	case vec2_vec2_to_vec4
8891		version 300 es
8892		values
8893		{
8894			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) ];
8895			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) ];
8896			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) ];
8897		}
8898
8899		both ""
8900			#version 300 es
8901			precision mediump float;
8902			precision mediump int;
8903
8904			${DECLARATIONS}
8905
8906			void main()
8907			{
8908				${SETUP}
8909				out0 = vec4(in0, in1);
8910				${OUTPUT}
8911			}
8912		""
8913	end
8914
8915	case vec2_vec2_to_ivec4
8916		version 300 es
8917		values
8918		{
8919			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) ];
8920			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) ];
8921			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) ];
8922		}
8923
8924		both ""
8925			#version 300 es
8926			precision mediump float;
8927			precision mediump int;
8928
8929			${DECLARATIONS}
8930
8931			void main()
8932			{
8933				${SETUP}
8934				out0 = ivec4(in0, in1);
8935				${OUTPUT}
8936			}
8937		""
8938	end
8939
8940	case vec2_vec2_to_bvec4
8941		version 300 es
8942		values
8943		{
8944			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) ];
8945			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) ];
8946			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) ];
8947		}
8948
8949		both ""
8950			#version 300 es
8951			precision mediump float;
8952			precision mediump int;
8953
8954			${DECLARATIONS}
8955
8956			void main()
8957			{
8958				${SETUP}
8959				out0 = bvec4(in0, in1);
8960				${OUTPUT}
8961			}
8962		""
8963	end
8964
8965	case bvec2_bvec2_to_vec4
8966		version 300 es
8967		values
8968		{
8969			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
8970			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
8971			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) ];
8972		}
8973
8974		both ""
8975			#version 300 es
8976			precision mediump float;
8977			precision mediump int;
8978
8979			${DECLARATIONS}
8980
8981			void main()
8982			{
8983				${SETUP}
8984				out0 = vec4(in0, in1);
8985				${OUTPUT}
8986			}
8987		""
8988	end
8989
8990	case bvec2_bvec2_to_ivec4
8991		version 300 es
8992		values
8993		{
8994			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
8995			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
8996			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) ];
8997		}
8998
8999		both ""
9000			#version 300 es
9001			precision mediump float;
9002			precision mediump int;
9003
9004			${DECLARATIONS}
9005
9006			void main()
9007			{
9008				${SETUP}
9009				out0 = ivec4(in0, in1);
9010				${OUTPUT}
9011			}
9012		""
9013	end
9014
9015	case bvec2_bvec2_to_bvec4
9016		version 300 es
9017		values
9018		{
9019			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
9020			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
9021			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) ];
9022		}
9023
9024		both ""
9025			#version 300 es
9026			precision mediump float;
9027			precision mediump int;
9028
9029			${DECLARATIONS}
9030
9031			void main()
9032			{
9033				${SETUP}
9034				out0 = bvec4(in0, in1);
9035				${OUTPUT}
9036			}
9037		""
9038	end
9039
9040	case float_float_float_float_to_vec4
9041		version 300 es
9042		values
9043		{
9044			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
9045			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
9046			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
9047			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
9048			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) ];
9049		}
9050
9051		both ""
9052			#version 300 es
9053			precision mediump float;
9054			precision mediump int;
9055
9056			${DECLARATIONS}
9057
9058			void main()
9059			{
9060				${SETUP}
9061				out0 = vec4(in0, in1, in2, in3);
9062				${OUTPUT}
9063			}
9064		""
9065	end
9066
9067	case float_float_float_float_to_ivec4
9068		version 300 es
9069		values
9070		{
9071			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
9072			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
9073			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
9074			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
9075			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) ];
9076		}
9077
9078		both ""
9079			#version 300 es
9080			precision mediump float;
9081			precision mediump int;
9082
9083			${DECLARATIONS}
9084
9085			void main()
9086			{
9087				${SETUP}
9088				out0 = ivec4(in0, in1, in2, in3);
9089				${OUTPUT}
9090			}
9091		""
9092	end
9093
9094	case float_float_float_float_to_bvec4
9095		version 300 es
9096		values
9097		{
9098			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
9099			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
9100			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
9101			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
9102			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) ];
9103		}
9104
9105		both ""
9106			#version 300 es
9107			precision mediump float;
9108			precision mediump int;
9109
9110			${DECLARATIONS}
9111
9112			void main()
9113			{
9114				${SETUP}
9115				out0 = bvec4(in0, in1, in2, in3);
9116				${OUTPUT}
9117			}
9118		""
9119	end
9120
9121	case int_int_int_int_to_vec4
9122		version 300 es
9123		values
9124		{
9125			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
9126			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
9127			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
9128			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
9129			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) ];
9130		}
9131
9132		both ""
9133			#version 300 es
9134			precision mediump float;
9135			precision mediump int;
9136
9137			${DECLARATIONS}
9138
9139			void main()
9140			{
9141				${SETUP}
9142				out0 = vec4(in0, in1, in2, in3);
9143				${OUTPUT}
9144			}
9145		""
9146	end
9147
9148	case int_int_int_int_to_ivec4
9149		version 300 es
9150		values
9151		{
9152			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
9153			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
9154			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
9155			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
9156			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) ];
9157		}
9158
9159		both ""
9160			#version 300 es
9161			precision mediump float;
9162			precision mediump int;
9163
9164			${DECLARATIONS}
9165
9166			void main()
9167			{
9168				${SETUP}
9169				out0 = ivec4(in0, in1, in2, in3);
9170				${OUTPUT}
9171			}
9172		""
9173	end
9174
9175	case int_int_int_int_to_bvec4
9176		version 300 es
9177		values
9178		{
9179			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
9180			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
9181			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
9182			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
9183			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) ];
9184		}
9185
9186		both ""
9187			#version 300 es
9188			precision mediump float;
9189			precision mediump int;
9190
9191			${DECLARATIONS}
9192
9193			void main()
9194			{
9195				${SETUP}
9196				out0 = bvec4(in0, in1, in2, in3);
9197				${OUTPUT}
9198			}
9199		""
9200	end
9201
9202	case uint_uint_uint_uint_to_vec4
9203		version 300 es
9204		values
9205		{
9206			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
9207			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
9208			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
9209			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
9210			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) ];
9211		}
9212
9213		both ""
9214			#version 300 es
9215			precision mediump float;
9216			precision mediump int;
9217
9218			${DECLARATIONS}
9219
9220			void main()
9221			{
9222				${SETUP}
9223				out0 = vec4(in0, in1, in2, in3);
9224				${OUTPUT}
9225			}
9226		""
9227	end
9228
9229	case uint_uint_uint_uint_to_ivec4
9230		version 300 es
9231		values
9232		{
9233			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
9234			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
9235			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
9236			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
9237			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) ];
9238		}
9239
9240		both ""
9241			#version 300 es
9242			precision mediump float;
9243			precision mediump int;
9244
9245			${DECLARATIONS}
9246
9247			void main()
9248			{
9249				${SETUP}
9250				out0 = ivec4(in0, in1, in2, in3);
9251				${OUTPUT}
9252			}
9253		""
9254	end
9255
9256	case uint_uint_uint_uint_to_bvec4
9257		version 300 es
9258		values
9259		{
9260			input uint in0 = [ 193 | 3 | 255 | 8 | 10 | 9 | 2 | 12 | 0 | 45 ];
9261			input uint in1 = [ 12 | 45 | 193 | 2 | 8 | 255 | 0 | 3 | 9 | 10 ];
9262			input uint in2 = [ 9 | 8 | 12 | 2 | 255 | 45 | 3 | 0 | 193 | 10 ];
9263			input uint in3 = [ 3 | 9 | 12 | 2 | 255 | 193 | 0 | 10 | 45 | 8 ];
9264			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) ];
9265		}
9266
9267		both ""
9268			#version 300 es
9269			precision mediump float;
9270			precision mediump int;
9271
9272			${DECLARATIONS}
9273
9274			void main()
9275			{
9276				${SETUP}
9277				out0 = bvec4(in0, in1, in2, in3);
9278				${OUTPUT}
9279			}
9280		""
9281	end
9282
9283	case bool_bool_bool_bool_to_vec4
9284		version 300 es
9285		values
9286		{
9287			input bool in0 = [ true | false ];
9288			input bool in1 = [ true | false ];
9289			input bool in2 = [ false | true ];
9290			input bool in3 = [ false | true ];
9291			output vec4 out0 = [ vec4(1.0, 1.0, 0.0, 0.0) | vec4(0.0, 0.0, 1.0, 1.0) ];
9292		}
9293
9294		both ""
9295			#version 300 es
9296			precision mediump float;
9297			precision mediump int;
9298
9299			${DECLARATIONS}
9300
9301			void main()
9302			{
9303				${SETUP}
9304				out0 = vec4(in0, in1, in2, in3);
9305				${OUTPUT}
9306			}
9307		""
9308	end
9309
9310	case bool_bool_bool_bool_to_ivec4
9311		version 300 es
9312		values
9313		{
9314			input bool in0 = [ true | false ];
9315			input bool in1 = [ true | false ];
9316			input bool in2 = [ false | true ];
9317			input bool in3 = [ false | true ];
9318			output ivec4 out0 = [ ivec4(1, 1, 0, 0) | ivec4(0, 0, 1, 1) ];
9319		}
9320
9321		both ""
9322			#version 300 es
9323			precision mediump float;
9324			precision mediump int;
9325
9326			${DECLARATIONS}
9327
9328			void main()
9329			{
9330				${SETUP}
9331				out0 = ivec4(in0, in1, in2, in3);
9332				${OUTPUT}
9333			}
9334		""
9335	end
9336
9337	case bool_bool_bool_bool_to_bvec4
9338		version 300 es
9339		values
9340		{
9341			input bool in0 = [ true | false ];
9342			input bool in1 = [ true | false ];
9343			input bool in2 = [ false | true ];
9344			input bool in3 = [ false | true ];
9345			output bvec4 out0 = [ bvec4(true, true, false, false) | bvec4(false, false, true, true) ];
9346		}
9347
9348		both ""
9349			#version 300 es
9350			precision mediump float;
9351			precision mediump int;
9352
9353			${DECLARATIONS}
9354
9355			void main()
9356			{
9357				${SETUP}
9358				out0 = bvec4(in0, in1, in2, in3);
9359				${OUTPUT}
9360			}
9361		""
9362	end
9363
9364	case bool_float_int_bool_to_vec4
9365		version 300 es
9366		values
9367		{
9368			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
9369			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
9370			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
9371			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
9372			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) ];
9373		}
9374
9375		both ""
9376			#version 300 es
9377			precision mediump float;
9378			precision mediump int;
9379
9380			${DECLARATIONS}
9381
9382			void main()
9383			{
9384				${SETUP}
9385				out0 = vec4(in0, in1, in2, in3);
9386				${OUTPUT}
9387			}
9388		""
9389	end
9390
9391	case bool_float_int_bool_to_ivec4
9392		version 300 es
9393		values
9394		{
9395			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
9396			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
9397			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
9398			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
9399			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) ];
9400		}
9401
9402		both ""
9403			#version 300 es
9404			precision mediump float;
9405			precision mediump int;
9406
9407			${DECLARATIONS}
9408
9409			void main()
9410			{
9411				${SETUP}
9412				out0 = ivec4(in0, in1, in2, in3);
9413				${OUTPUT}
9414			}
9415		""
9416	end
9417
9418	case bool_float_int_bool_to_bvec4
9419		version 300 es
9420		values
9421		{
9422			input bool in0 = [ true | true | false | false | false | true | false | false | true | true ];
9423			input float in1 = [ 36.8125 | 0.0 | -8.25 | 1.0 | -0.5 | 0.0 | 2.0 | -20.125 | 3.5 | 1.0 ];
9424			input int in2 = [ -66 | 2 | 255 | 11 | 1 | 8 | -192 | -12 | 0 | 5 ];
9425			input bool in3 = [ true | true | false | false | true | true | false | true | false | false ];
9426			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) ];
9427		}
9428
9429		both ""
9430			#version 300 es
9431			precision mediump float;
9432			precision mediump int;
9433
9434			${DECLARATIONS}
9435
9436			void main()
9437			{
9438				${SETUP}
9439				out0 = bvec4(in0, in1, in2, in3);
9440				${OUTPUT}
9441			}
9442		""
9443	end
9444
9445	case vec2_ivec2_to_vec4
9446		version 300 es
9447		values
9448		{
9449			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) ];
9450			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
9451			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) ];
9452		}
9453
9454		both ""
9455			#version 300 es
9456			precision mediump float;
9457			precision mediump int;
9458
9459			${DECLARATIONS}
9460
9461			void main()
9462			{
9463				${SETUP}
9464				out0 = vec4(in0, in1);
9465				${OUTPUT}
9466			}
9467		""
9468	end
9469
9470	case vec2_ivec2_to_ivec4
9471		version 300 es
9472		values
9473		{
9474			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) ];
9475			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
9476			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) ];
9477		}
9478
9479		both ""
9480			#version 300 es
9481			precision mediump float;
9482			precision mediump int;
9483
9484			${DECLARATIONS}
9485
9486			void main()
9487			{
9488				${SETUP}
9489				out0 = ivec4(in0, in1);
9490				${OUTPUT}
9491			}
9492		""
9493	end
9494
9495	case vec2_ivec2_to_bvec4
9496		version 300 es
9497		values
9498		{
9499			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) ];
9500			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
9501			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) ];
9502		}
9503
9504		both ""
9505			#version 300 es
9506			precision mediump float;
9507			precision mediump int;
9508
9509			${DECLARATIONS}
9510
9511			void main()
9512			{
9513				${SETUP}
9514				out0 = bvec4(in0, in1);
9515				${OUTPUT}
9516			}
9517		""
9518	end
9519
9520	case vec2_bvec2_to_vec4
9521		version 300 es
9522		values
9523		{
9524			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) ];
9525			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
9526			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) ];
9527		}
9528
9529		both ""
9530			#version 300 es
9531			precision mediump float;
9532			precision mediump int;
9533
9534			${DECLARATIONS}
9535
9536			void main()
9537			{
9538				${SETUP}
9539				out0 = vec4(in0, in1);
9540				${OUTPUT}
9541			}
9542		""
9543	end
9544
9545	case vec2_bvec2_to_ivec4
9546		version 300 es
9547		values
9548		{
9549			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) ];
9550			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
9551			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) ];
9552		}
9553
9554		both ""
9555			#version 300 es
9556			precision mediump float;
9557			precision mediump int;
9558
9559			${DECLARATIONS}
9560
9561			void main()
9562			{
9563				${SETUP}
9564				out0 = ivec4(in0, in1);
9565				${OUTPUT}
9566			}
9567		""
9568	end
9569
9570	case vec2_bvec2_to_bvec4
9571		version 300 es
9572		values
9573		{
9574			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) ];
9575			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) ];
9576			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) ];
9577		}
9578
9579		both ""
9580			#version 300 es
9581			precision mediump float;
9582			precision mediump int;
9583
9584			${DECLARATIONS}
9585
9586			void main()
9587			{
9588				${SETUP}
9589				out0 = bvec4(in0, in1);
9590				${OUTPUT}
9591			}
9592		""
9593	end
9594
9595	case bvec3_float_to_vec4
9596		version 300 es
9597		values
9598		{
9599			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) ];
9600			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
9601			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) ];
9602		}
9603
9604		both ""
9605			#version 300 es
9606			precision mediump float;
9607			precision mediump int;
9608
9609			${DECLARATIONS}
9610
9611			void main()
9612			{
9613				${SETUP}
9614				out0 = vec4(in0, in1);
9615				${OUTPUT}
9616			}
9617		""
9618	end
9619
9620	case bvec3_float_to_ivec4
9621		version 300 es
9622		values
9623		{
9624			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) ];
9625			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
9626			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) ];
9627		}
9628
9629		both ""
9630			#version 300 es
9631			precision mediump float;
9632			precision mediump int;
9633
9634			${DECLARATIONS}
9635
9636			void main()
9637			{
9638				${SETUP}
9639				out0 = ivec4(in0, in1);
9640				${OUTPUT}
9641			}
9642		""
9643	end
9644
9645	case bvec3_float_to_bvec4
9646		version 300 es
9647		values
9648		{
9649			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) ];
9650			input float in1 = [ -0.5 | 3.5 | 2.0 | 0.0 | -8.25 | 1.0 | 36.8125 | -20.125 ];
9651			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) ];
9652		}
9653
9654		both ""
9655			#version 300 es
9656			precision mediump float;
9657			precision mediump int;
9658
9659			${DECLARATIONS}
9660
9661			void main()
9662			{
9663				${SETUP}
9664				out0 = bvec4(in0, in1);
9665				${OUTPUT}
9666			}
9667		""
9668	end
9669
9670	case vec3_float_to_vec4
9671		version 300 es
9672		values
9673		{
9674			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) ];
9675			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
9676			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) ];
9677		}
9678
9679		both ""
9680			#version 300 es
9681			precision mediump float;
9682			precision mediump int;
9683
9684			${DECLARATIONS}
9685
9686			void main()
9687			{
9688				${SETUP}
9689				out0 = vec4(in0, in1);
9690				${OUTPUT}
9691			}
9692		""
9693	end
9694
9695	case vec3_float_to_ivec4
9696		version 300 es
9697		values
9698		{
9699			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) ];
9700			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
9701			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) ];
9702		}
9703
9704		both ""
9705			#version 300 es
9706			precision mediump float;
9707			precision mediump int;
9708
9709			${DECLARATIONS}
9710
9711			void main()
9712			{
9713				${SETUP}
9714				out0 = ivec4(in0, in1);
9715				${OUTPUT}
9716			}
9717		""
9718	end
9719
9720	case vec3_float_to_bvec4
9721		version 300 es
9722		values
9723		{
9724			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) ];
9725			input float in1 = [ -0.5 | 0.0 | 3.5 | -20.125 | 2.0 | -8.25 | 1.0 | 36.8125 ];
9726			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) ];
9727		}
9728
9729		both ""
9730			#version 300 es
9731			precision mediump float;
9732			precision mediump int;
9733
9734			${DECLARATIONS}
9735
9736			void main()
9737			{
9738				${SETUP}
9739				out0 = bvec4(in0, in1);
9740				${OUTPUT}
9741			}
9742		""
9743	end
9744
9745	case int_ivec2_int_to_vec4
9746		version 300 es
9747		values
9748		{
9749			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
9750			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) ];
9751			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
9752			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) ];
9753		}
9754
9755		both ""
9756			#version 300 es
9757			precision mediump float;
9758			precision mediump int;
9759
9760			${DECLARATIONS}
9761
9762			void main()
9763			{
9764				${SETUP}
9765				out0 = vec4(in0, in1, in2);
9766				${OUTPUT}
9767			}
9768		""
9769	end
9770
9771	case int_ivec2_int_to_ivec4
9772		version 300 es
9773		values
9774		{
9775			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
9776			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) ];
9777			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
9778			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) ];
9779		}
9780
9781		both ""
9782			#version 300 es
9783			precision mediump float;
9784			precision mediump int;
9785
9786			${DECLARATIONS}
9787
9788			void main()
9789			{
9790				${SETUP}
9791				out0 = ivec4(in0, in1, in2);
9792				${OUTPUT}
9793			}
9794		""
9795	end
9796
9797	case int_ivec2_int_to_bvec4
9798		version 300 es
9799		values
9800		{
9801			input int in0 = [ -12 | 11 | 8 | 255 | 0 | 1 | -66 | 2 | -192 | 5 ];
9802			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) ];
9803			input int in2 = [ 1 | 11 | 2 | -66 | -192 | 0 | -12 | 255 | 5 | 8 ];
9804			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) ];
9805		}
9806
9807		both ""
9808			#version 300 es
9809			precision mediump float;
9810			precision mediump int;
9811
9812			${DECLARATIONS}
9813
9814			void main()
9815			{
9816				${SETUP}
9817				out0 = bvec4(in0, in1, in2);
9818				${OUTPUT}
9819			}
9820		""
9821	end
9822
9823	case bool_float_ivec2_to_vec4
9824		version 300 es
9825		values
9826		{
9827			input bool in0 = [ true | false | false | false | true | true | true | false ];
9828			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
9829			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) ];
9830			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) ];
9831		}
9832
9833		both ""
9834			#version 300 es
9835			precision mediump float;
9836			precision mediump int;
9837
9838			${DECLARATIONS}
9839
9840			void main()
9841			{
9842				${SETUP}
9843				out0 = vec4(in0, in1, in2);
9844				${OUTPUT}
9845			}
9846		""
9847	end
9848
9849	case bool_float_ivec2_to_ivec4
9850		version 300 es
9851		values
9852		{
9853			input bool in0 = [ true | false | false | false | true | true | true | false ];
9854			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
9855			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) ];
9856			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) ];
9857		}
9858
9859		both ""
9860			#version 300 es
9861			precision mediump float;
9862			precision mediump int;
9863
9864			${DECLARATIONS}
9865
9866			void main()
9867			{
9868				${SETUP}
9869				out0 = ivec4(in0, in1, in2);
9870				${OUTPUT}
9871			}
9872		""
9873	end
9874
9875	case bool_float_ivec2_to_bvec4
9876		version 300 es
9877		values
9878		{
9879			input bool in0 = [ true | false | false | false | true | true | true | false ];
9880			input float in1 = [ 1.0 | 0.0 | 2.0 | 3.5 | -20.125 | -0.5 | 36.8125 | -8.25 ];
9881			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) ];
9882			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) ];
9883		}
9884
9885		both ""
9886			#version 300 es
9887			precision mediump float;
9888			precision mediump int;
9889
9890			${DECLARATIONS}
9891
9892			void main()
9893			{
9894				${SETUP}
9895				out0 = bvec4(in0, in1, in2);
9896				${OUTPUT}
9897			}
9898		""
9899	end
9900
9901	case float_uvec3_to_vec4
9902		version 300 es
9903		values
9904		{
9905			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
9906			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) ];
9907			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) ];
9908		}
9909
9910		both ""
9911			#version 300 es
9912			precision mediump float;
9913			precision mediump int;
9914
9915			${DECLARATIONS}
9916
9917			void main()
9918			{
9919				${SETUP}
9920				out0 = vec4(in0, in1);
9921				${OUTPUT}
9922			}
9923		""
9924	end
9925
9926	case float_uvec3_to_ivec4
9927		version 300 es
9928		values
9929		{
9930			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
9931			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) ];
9932			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) ];
9933		}
9934
9935		both ""
9936			#version 300 es
9937			precision mediump float;
9938			precision mediump int;
9939
9940			${DECLARATIONS}
9941
9942			void main()
9943			{
9944				${SETUP}
9945				out0 = ivec4(in0, in1);
9946				${OUTPUT}
9947			}
9948		""
9949	end
9950
9951	case float_uvec3_to_bvec4
9952		version 300 es
9953		values
9954		{
9955			input float in0 = [ 1.0 | -20.125 | -8.25 | -0.5 | 0.0 | 2.0 | 3.5 | 36.8125 ];
9956			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) ];
9957			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) ];
9958		}
9959
9960		both ""
9961			#version 300 es
9962			precision mediump float;
9963			precision mediump int;
9964
9965			${DECLARATIONS}
9966
9967			void main()
9968			{
9969				${SETUP}
9970				out0 = bvec4(in0, in1);
9971				${OUTPUT}
9972			}
9973		""
9974	end
9975
9976	case int_uvec2_bool_to_vec4
9977		version 300 es
9978		values
9979		{
9980			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
9981			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) ];
9982			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
9983			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) ];
9984		}
9985
9986		both ""
9987			#version 300 es
9988			precision mediump float;
9989			precision mediump int;
9990
9991			${DECLARATIONS}
9992
9993			void main()
9994			{
9995				${SETUP}
9996				out0 = vec4(in0, in1, in2);
9997				${OUTPUT}
9998			}
9999		""
10000	end
10001
10002	case int_uvec2_bool_to_ivec4
10003		version 300 es
10004		values
10005		{
10006			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
10007			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) ];
10008			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
10009			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) ];
10010		}
10011
10012		both ""
10013			#version 300 es
10014			precision mediump float;
10015			precision mediump int;
10016
10017			${DECLARATIONS}
10018
10019			void main()
10020			{
10021				${SETUP}
10022				out0 = ivec4(in0, in1, in2);
10023				${OUTPUT}
10024			}
10025		""
10026	end
10027
10028	case int_uvec2_bool_to_bvec4
10029		version 300 es
10030		values
10031		{
10032			input int in0 = [ 1 | -192 | -66 | -12 | 0 | 2 | 11 | 8 | 255 | 5 ];
10033			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) ];
10034			input bool in2 = [ false | false | true | true | true | true | true | false | false | false ];
10035			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) ];
10036		}
10037
10038		both ""
10039			#version 300 es
10040			precision mediump float;
10041			precision mediump int;
10042
10043			${DECLARATIONS}
10044
10045			void main()
10046			{
10047				${SETUP}
10048				out0 = bvec4(in0, in1, in2);
10049				${OUTPUT}
10050			}
10051		""
10052	end
10053
10054	case vec2_vec2_to_uvec4
10055		version 300 es
10056		values
10057		{
10058			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) ];
10059			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) ];
10060			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) ];
10061		}
10062
10063		both ""
10064			#version 300 es
10065			precision mediump float;
10066			precision mediump int;
10067
10068			${DECLARATIONS}
10069
10070			void main()
10071			{
10072				${SETUP}
10073				out0 = uvec4(in0, in1);
10074				${OUTPUT}
10075			}
10076		""
10077	end
10078
10079	case bvec2_bvec2_to_uvec4
10080		version 300 es
10081		values
10082		{
10083			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, false) ];
10084			input bvec2 in1 = [ bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) ];
10085			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) ];
10086		}
10087
10088		both ""
10089			#version 300 es
10090			precision mediump float;
10091			precision mediump int;
10092
10093			${DECLARATIONS}
10094
10095			void main()
10096			{
10097				${SETUP}
10098				out0 = uvec4(in0, in1);
10099				${OUTPUT}
10100			}
10101		""
10102	end
10103
10104	case float_float_float_float_to_uvec4
10105		version 300 es
10106		values
10107		{
10108			input float in0 = [ 2.0 | 36.8125 | 0.0 | 20.125 | 1.0 | 0.5 | 8.25 | 3.5 ];
10109			input float in1 = [ 1.0 | 8.25 | 2.0 | 20.125 | 36.8125 | 0.0 | 0.5 | 3.5 ];
10110			input float in2 = [ 0.0 | 8.25 | 2.0 | 1.0 | 36.8125 | 20.125 | 0.5 | 3.5 ];
10111			input float in3 = [ 1.0 | 8.25 | 0.0 | 2.0 | 20.125 | 3.5 | 0.5 | 36.8125 ];
10112			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) ];
10113		}
10114
10115		both ""
10116			#version 300 es
10117			precision mediump float;
10118			precision mediump int;
10119
10120			${DECLARATIONS}
10121
10122			void main()
10123			{
10124				${SETUP}
10125				out0 = uvec4(in0, in1, in2, in3);
10126				${OUTPUT}
10127			}
10128		""
10129	end
10130
10131	case int_int_int_int_to_uvec4
10132		version 300 es
10133		values
10134		{
10135			input int in0 = [ 192 | 2 | 12 | 11 | 0 | 8 | 5 | 66 | 1 | 255 ];
10136			input int in1 = [ 66 | 12 | 5 | 1 | 0 | 192 | 8 | 255 | 11 | 2 ];
10137			input int in2 = [ 192 | 5 | 1 | 66 | 255 | 11 | 8 | 12 | 2 | 0 ];
10138			input int in3 = [ 255 | 5 | 11 | 12 | 2 | 1 | 66 | 0 | 8 | 192 ];
10139			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) ];
10140		}
10141
10142		both ""
10143			#version 300 es
10144			precision mediump float;
10145			precision mediump int;
10146
10147			${DECLARATIONS}
10148
10149			void main()
10150			{
10151				${SETUP}
10152				out0 = uvec4(in0, in1, in2, in3);
10153				${OUTPUT}
10154			}
10155		""
10156	end
10157
10158	case uint_uint_uint_uint_to_uvec4
10159		version 300 es
10160		values
10161		{
10162			input uint in0 = [ 255 | 8 | 3 | 193 | 45 | 2 | 0 | 12 | 9 | 10 ];
10163			input uint in1 = [ 255 | 45 | 0 | 12 | 2 | 10 | 8 | 9 | 193 | 3 ];
10164			input uint in2 = [ 3 | 0 | 2 | 9 | 12 | 10 | 255 | 45 | 193 | 8 ];
10165			input uint in3 = [ 2 | 255 | 10 | 193 | 8 | 12 | 3 | 9 | 0 | 45 ];
10166			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) ];
10167		}
10168
10169		both ""
10170			#version 300 es
10171			precision mediump float;
10172			precision mediump int;
10173
10174			${DECLARATIONS}
10175
10176			void main()
10177			{
10178				${SETUP}
10179				out0 = uvec4(in0, in1, in2, in3);
10180				${OUTPUT}
10181			}
10182		""
10183	end
10184
10185	case bool_bool_bool_bool_to_uvec4
10186		version 300 es
10187		values
10188		{
10189			input bool in0 = [ false | true ];
10190			input bool in1 = [ false | true ];
10191			input bool in2 = [ true | false ];
10192			input bool in3 = [ true | false ];
10193			output uvec4 out0 = [ uvec4(0, 0, 1, 1) | uvec4(1, 1, 0, 0) ];
10194		}
10195
10196		both ""
10197			#version 300 es
10198			precision mediump float;
10199			precision mediump int;
10200
10201			${DECLARATIONS}
10202
10203			void main()
10204			{
10205				${SETUP}
10206				out0 = uvec4(in0, in1, in2, in3);
10207				${OUTPUT}
10208			}
10209		""
10210	end
10211
10212	case bool_float_int_bool_to_uvec4
10213		version 300 es
10214		values
10215		{
10216			input bool in0 = [ true | false | false | true | false | true | true | true | false | false ];
10217			input float in1 = [ 20.125 | 0.0 | 1.0 | 3.5 | 1.0 | 0.0 | 0.5 | 8.25 | 2.0 | 36.8125 ];
10218			input int in2 = [ 66 | 192 | 1 | 2 | 5 | 11 | 8 | 12 | 255 | 0 ];
10219			input bool in3 = [ true | true | true | true | false | true | false | false | false | false ];
10220			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) ];
10221		}
10222
10223		both ""
10224			#version 300 es
10225			precision mediump float;
10226			precision mediump int;
10227
10228			${DECLARATIONS}
10229
10230			void main()
10231			{
10232				${SETUP}
10233				out0 = uvec4(in0, in1, in2, in3);
10234				${OUTPUT}
10235			}
10236		""
10237	end
10238
10239	case vec2_ivec2_to_uvec4
10240		version 300 es
10241		values
10242		{
10243			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) ];
10244			input ivec2 in1 = [ ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) | ivec2(0, 0) ];
10245			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) ];
10246		}
10247
10248		both ""
10249			#version 300 es
10250			precision mediump float;
10251			precision mediump int;
10252
10253			${DECLARATIONS}
10254
10255			void main()
10256			{
10257				${SETUP}
10258				out0 = uvec4(in0, in1);
10259				${OUTPUT}
10260			}
10261		""
10262	end
10263
10264	case vec2_bvec2_to_uvec4
10265		version 300 es
10266		values
10267		{
10268			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) ];
10269			input bvec2 in1 = [ bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(true, true) ];
10270			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) ];
10271		}
10272
10273		both ""
10274			#version 300 es
10275			precision mediump float;
10276			precision mediump int;
10277
10278			${DECLARATIONS}
10279
10280			void main()
10281			{
10282				${SETUP}
10283				out0 = uvec4(in0, in1);
10284				${OUTPUT}
10285			}
10286		""
10287	end
10288
10289	case bvec3_float_to_uvec4
10290		version 300 es
10291		values
10292		{
10293			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) ];
10294			input float in1 = [ 2.0 | 0.0 | 36.8125 | 0.5 | 1.0 | 8.25 | 3.5 | 20.125 ];
10295			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) ];
10296		}
10297
10298		both ""
10299			#version 300 es
10300			precision mediump float;
10301			precision mediump int;
10302
10303			${DECLARATIONS}
10304
10305			void main()
10306			{
10307				${SETUP}
10308				out0 = uvec4(in0, in1);
10309				${OUTPUT}
10310			}
10311		""
10312	end
10313
10314	case vec3_float_to_uvec4
10315		version 300 es
10316		values
10317		{
10318			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) ];
10319			input float in1 = [ 8.25 | 1.0 | 0.0 | 36.8125 | 2.0 | 0.5 | 20.125 | 3.5 ];
10320			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) ];
10321		}
10322
10323		both ""
10324			#version 300 es
10325			precision mediump float;
10326			precision mediump int;
10327
10328			${DECLARATIONS}
10329
10330			void main()
10331			{
10332				${SETUP}
10333				out0 = uvec4(in0, in1);
10334				${OUTPUT}
10335			}
10336		""
10337	end
10338
10339	case int_ivec2_int_to_uvec4
10340		version 300 es
10341		values
10342		{
10343			input int in0 = [ 8 | 1 | 11 | 192 | 255 | 12 | 66 | 2 | 0 | 5 ];
10344			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) ];
10345			input int in2 = [ 2 | 192 | 12 | 0 | 8 | 1 | 66 | 255 | 11 | 5 ];
10346			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) ];
10347		}
10348
10349		both ""
10350			#version 300 es
10351			precision mediump float;
10352			precision mediump int;
10353
10354			${DECLARATIONS}
10355
10356			void main()
10357			{
10358				${SETUP}
10359				out0 = uvec4(in0, in1, in2);
10360				${OUTPUT}
10361			}
10362		""
10363	end
10364
10365	case bool_float_ivec2_to_uvec4
10366		version 300 es
10367		values
10368		{
10369			input bool in0 = [ true | true | false | false | true | false | false | true ];
10370			input float in1 = [ 8.25 | 0.5 | 2.0 | 20.125 | 0.0 | 36.8125 | 3.5 | 1.0 ];
10371			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) ];
10372			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) ];
10373		}
10374
10375		both ""
10376			#version 300 es
10377			precision mediump float;
10378			precision mediump int;
10379
10380			${DECLARATIONS}
10381
10382			void main()
10383			{
10384				${SETUP}
10385				out0 = uvec4(in0, in1, in2);
10386				${OUTPUT}
10387			}
10388		""
10389	end
10390
10391	case float_uvec3_to_uvec4
10392		version 300 es
10393		values
10394		{
10395			input float in0 = [ 8.25 | 20.125 | 1.0 | 0.5 | 3.5 | 2.0 | 36.8125 | 0.0 ];
10396			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) ];
10397			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) ];
10398		}
10399
10400		both ""
10401			#version 300 es
10402			precision mediump float;
10403			precision mediump int;
10404
10405			${DECLARATIONS}
10406
10407			void main()
10408			{
10409				${SETUP}
10410				out0 = uvec4(in0, in1);
10411				${OUTPUT}
10412			}
10413		""
10414	end
10415
10416	case int_uvec2_bool_to_uvec4
10417		version 300 es
10418		values
10419		{
10420			input int in0 = [ 2 | 1 | 11 | 66 | 192 | 12 | 8 | 255 | 0 | 5 ];
10421			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) ];
10422			input bool in2 = [ true | false | false | false | false | true | true | true | false | true ];
10423			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) ];
10424		}
10425
10426		both ""
10427			#version 300 es
10428			precision mediump float;
10429			precision mediump int;
10430
10431			${DECLARATIONS}
10432
10433			void main()
10434			{
10435				${SETUP}
10436				out0 = uvec4(in0, in1, in2);
10437				${OUTPUT}
10438			}
10439		""
10440	end
10441
10442	case float_float_float_to_vec3
10443		version 300 es
10444		values
10445		{
10446			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
10447			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
10448			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
10449			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) ];
10450		}
10451
10452		both ""
10453			#version 300 es
10454			precision mediump float;
10455			precision mediump int;
10456
10457			${DECLARATIONS}
10458
10459			void main()
10460			{
10461				${SETUP}
10462				out0 = vec3(in0, in1, in2);
10463				${OUTPUT}
10464			}
10465		""
10466	end
10467
10468	case float_float_float_to_ivec3
10469		version 300 es
10470		values
10471		{
10472			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
10473			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
10474			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
10475			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) ];
10476		}
10477
10478		both ""
10479			#version 300 es
10480			precision mediump float;
10481			precision mediump int;
10482
10483			${DECLARATIONS}
10484
10485			void main()
10486			{
10487				${SETUP}
10488				out0 = ivec3(in0, in1, in2);
10489				${OUTPUT}
10490			}
10491		""
10492	end
10493
10494	case float_float_float_to_bvec3
10495		version 300 es
10496		values
10497		{
10498			input float in0 = [ -0.5 | 1.0 | 3.5 | -8.25 | 36.8125 | 0.0 | 2.0 | -20.125 ];
10499			input float in1 = [ 2.0 | -20.125 | 3.5 | 36.8125 | -8.25 | 1.0 | -0.5 | 0.0 ];
10500			input float in2 = [ 1.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 | 0.0 ];
10501			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) ];
10502		}
10503
10504		both ""
10505			#version 300 es
10506			precision mediump float;
10507			precision mediump int;
10508
10509			${DECLARATIONS}
10510
10511			void main()
10512			{
10513				${SETUP}
10514				out0 = bvec3(in0, in1, in2);
10515				${OUTPUT}
10516			}
10517		""
10518	end
10519
10520	case int_int_int_to_vec3
10521		version 300 es
10522		values
10523		{
10524			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
10525			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
10526			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
10527			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) ];
10528		}
10529
10530		both ""
10531			#version 300 es
10532			precision mediump float;
10533			precision mediump int;
10534
10535			${DECLARATIONS}
10536
10537			void main()
10538			{
10539				${SETUP}
10540				out0 = vec3(in0, in1, in2);
10541				${OUTPUT}
10542			}
10543		""
10544	end
10545
10546	case int_int_int_to_ivec3
10547		version 300 es
10548		values
10549		{
10550			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
10551			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
10552			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
10553			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) ];
10554		}
10555
10556		both ""
10557			#version 300 es
10558			precision mediump float;
10559			precision mediump int;
10560
10561			${DECLARATIONS}
10562
10563			void main()
10564			{
10565				${SETUP}
10566				out0 = ivec3(in0, in1, in2);
10567				${OUTPUT}
10568			}
10569		""
10570	end
10571
10572	case int_int_int_to_bvec3
10573		version 300 es
10574		values
10575		{
10576			input int in0 = [ -192 | 5 | -12 | 0 | 11 | 8 | 1 | -66 | 255 | 2 ];
10577			input int in1 = [ 5 | 1 | 8 | 0 | 2 | -192 | -12 | 255 | -66 | 11 ];
10578			input int in2 = [ -192 | 1 | 2 | 5 | -12 | 8 | 11 | 0 | 255 | -66 ];
10579			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) ];
10580		}
10581
10582		both ""
10583			#version 300 es
10584			precision mediump float;
10585			precision mediump int;
10586
10587			${DECLARATIONS}
10588
10589			void main()
10590			{
10591				${SETUP}
10592				out0 = bvec3(in0, in1, in2);
10593				${OUTPUT}
10594			}
10595		""
10596	end
10597
10598	case uint_uint_uint_to_vec3
10599		version 300 es
10600		values
10601		{
10602			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
10603			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
10604			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
10605			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) ];
10606		}
10607
10608		both ""
10609			#version 300 es
10610			precision mediump float;
10611			precision mediump int;
10612
10613			${DECLARATIONS}
10614
10615			void main()
10616			{
10617				${SETUP}
10618				out0 = vec3(in0, in1, in2);
10619				${OUTPUT}
10620			}
10621		""
10622	end
10623
10624	case uint_uint_uint_to_ivec3
10625		version 300 es
10626		values
10627		{
10628			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
10629			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
10630			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
10631			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) ];
10632		}
10633
10634		both ""
10635			#version 300 es
10636			precision mediump float;
10637			precision mediump int;
10638
10639			${DECLARATIONS}
10640
10641			void main()
10642			{
10643				${SETUP}
10644				out0 = ivec3(in0, in1, in2);
10645				${OUTPUT}
10646			}
10647		""
10648	end
10649
10650	case uint_uint_uint_to_bvec3
10651		version 300 es
10652		values
10653		{
10654			input uint in0 = [ 8 | 45 | 2 | 3 | 255 | 193 | 12 | 0 | 9 | 10 ];
10655			input uint in1 = [ 193 | 2 | 9 | 8 | 0 | 255 | 45 | 3 | 10 | 12 ];
10656			input uint in2 = [ 12 | 2 | 193 | 255 | 8 | 10 | 45 | 0 | 3 | 9 ];
10657			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) ];
10658		}
10659
10660		both ""
10661			#version 300 es
10662			precision mediump float;
10663			precision mediump int;
10664
10665			${DECLARATIONS}
10666
10667			void main()
10668			{
10669				${SETUP}
10670				out0 = bvec3(in0, in1, in2);
10671				${OUTPUT}
10672			}
10673		""
10674	end
10675
10676	case bool_bool_bool_to_vec3
10677		version 300 es
10678		values
10679		{
10680			input bool in0 = [ true | false ];
10681			input bool in1 = [ true | false ];
10682			input bool in2 = [ true | false ];
10683			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
10684		}
10685
10686		both ""
10687			#version 300 es
10688			precision mediump float;
10689			precision mediump int;
10690
10691			${DECLARATIONS}
10692
10693			void main()
10694			{
10695				${SETUP}
10696				out0 = vec3(in0, in1, in2);
10697				${OUTPUT}
10698			}
10699		""
10700	end
10701
10702	case bool_bool_bool_to_ivec3
10703		version 300 es
10704		values
10705		{
10706			input bool in0 = [ true | false ];
10707			input bool in1 = [ true | false ];
10708			input bool in2 = [ true | false ];
10709			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
10710		}
10711
10712		both ""
10713			#version 300 es
10714			precision mediump float;
10715			precision mediump int;
10716
10717			${DECLARATIONS}
10718
10719			void main()
10720			{
10721				${SETUP}
10722				out0 = ivec3(in0, in1, in2);
10723				${OUTPUT}
10724			}
10725		""
10726	end
10727
10728	case bool_bool_bool_to_bvec3
10729		version 300 es
10730		values
10731		{
10732			input bool in0 = [ true | false ];
10733			input bool in1 = [ true | false ];
10734			input bool in2 = [ true | false ];
10735			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) ];
10736		}
10737
10738		both ""
10739			#version 300 es
10740			precision mediump float;
10741			precision mediump int;
10742
10743			${DECLARATIONS}
10744
10745			void main()
10746			{
10747				${SETUP}
10748				out0 = bvec3(in0, in1, in2);
10749				${OUTPUT}
10750			}
10751		""
10752	end
10753
10754	case bool_float_int_to_vec3
10755		version 300 es
10756		values
10757		{
10758			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
10759			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
10760			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
10761			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) ];
10762		}
10763
10764		both ""
10765			#version 300 es
10766			precision mediump float;
10767			precision mediump int;
10768
10769			${DECLARATIONS}
10770
10771			void main()
10772			{
10773				${SETUP}
10774				out0 = vec3(in0, in1, in2);
10775				${OUTPUT}
10776			}
10777		""
10778	end
10779
10780	case bool_float_int_to_ivec3
10781		version 300 es
10782		values
10783		{
10784			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
10785			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
10786			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
10787			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) ];
10788		}
10789
10790		both ""
10791			#version 300 es
10792			precision mediump float;
10793			precision mediump int;
10794
10795			${DECLARATIONS}
10796
10797			void main()
10798			{
10799				${SETUP}
10800				out0 = ivec3(in0, in1, in2);
10801				${OUTPUT}
10802			}
10803		""
10804	end
10805
10806	case bool_float_int_to_bvec3
10807		version 300 es
10808		values
10809		{
10810			input bool in0 = [ true | true | false | false | true | false | true | false | false | true ];
10811			input float in1 = [ 0.0 | 36.8125 | 0.0 | -8.25 | 1.0 | 3.5 | 1.0 | -0.5 | -20.125 | 2.0 ];
10812			input int in2 = [ 8 | -192 | -66 | 2 | 1 | -12 | 11 | 255 | 5 | 0 ];
10813			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) ];
10814		}
10815
10816		both ""
10817			#version 300 es
10818			precision mediump float;
10819			precision mediump int;
10820
10821			${DECLARATIONS}
10822
10823			void main()
10824			{
10825				${SETUP}
10826				out0 = bvec3(in0, in1, in2);
10827				${OUTPUT}
10828			}
10829		""
10830	end
10831
10832	case vec2_bool_to_vec3
10833		version 300 es
10834		values
10835		{
10836			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) ];
10837			input bool in1 = [ false | true | true | true | false ];
10838			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) ];
10839		}
10840
10841		both ""
10842			#version 300 es
10843			precision mediump float;
10844			precision mediump int;
10845
10846			${DECLARATIONS}
10847
10848			void main()
10849			{
10850				${SETUP}
10851				out0 = vec3(in0, in1);
10852				${OUTPUT}
10853			}
10854		""
10855	end
10856
10857	case vec2_bool_to_ivec3
10858		version 300 es
10859		values
10860		{
10861			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) ];
10862			input bool in1 = [ false | true | true | true | false ];
10863			output ivec3 out0 = [ ivec3(1, 1, 0) | ivec3(0, 0, 1) | ivec3(-32, 64, 1) | ivec3(0, -2, 1) | ivec3(0, 0, 0) ];
10864		}
10865
10866		both ""
10867			#version 300 es
10868			precision mediump float;
10869			precision mediump int;
10870
10871			${DECLARATIONS}
10872
10873			void main()
10874			{
10875				${SETUP}
10876				out0 = ivec3(in0, in1);
10877				${OUTPUT}
10878			}
10879		""
10880	end
10881
10882	case vec2_bool_to_bvec3
10883		version 300 es
10884		values
10885		{
10886			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) ];
10887			input bool in1 = [ false | true | true | true | false ];
10888			output bvec3 out0 = [ bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, true, false) ];
10889		}
10890
10891		both ""
10892			#version 300 es
10893			precision mediump float;
10894			precision mediump int;
10895
10896			${DECLARATIONS}
10897
10898			void main()
10899			{
10900				${SETUP}
10901				out0 = bvec3(in0, in1);
10902				${OUTPUT}
10903			}
10904		""
10905	end
10906
10907	case bvec2_float_to_vec3
10908		version 300 es
10909		values
10910		{
10911			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) ];
10912			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
10913			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) ];
10914		}
10915
10916		both ""
10917			#version 300 es
10918			precision mediump float;
10919			precision mediump int;
10920
10921			${DECLARATIONS}
10922
10923			void main()
10924			{
10925				${SETUP}
10926				out0 = vec3(in0, in1);
10927				${OUTPUT}
10928			}
10929		""
10930	end
10931
10932	case bvec2_float_to_ivec3
10933		version 300 es
10934		values
10935		{
10936			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) ];
10937			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
10938			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) ];
10939		}
10940
10941		both ""
10942			#version 300 es
10943			precision mediump float;
10944			precision mediump int;
10945
10946			${DECLARATIONS}
10947
10948			void main()
10949			{
10950				${SETUP}
10951				out0 = ivec3(in0, in1);
10952				${OUTPUT}
10953			}
10954		""
10955	end
10956
10957	case bvec2_float_to_bvec3
10958		version 300 es
10959		values
10960		{
10961			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) ];
10962			input float in1 = [ -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | 0.0 | -8.25 | -0.5 ];
10963			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) ];
10964		}
10965
10966		both ""
10967			#version 300 es
10968			precision mediump float;
10969			precision mediump int;
10970
10971			${DECLARATIONS}
10972
10973			void main()
10974			{
10975				${SETUP}
10976				out0 = bvec3(in0, in1);
10977				${OUTPUT}
10978			}
10979		""
10980	end
10981
10982	case bvec2_int_to_vec3
10983		version 300 es
10984		values
10985		{
10986			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) ];
10987			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
10988			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) ];
10989		}
10990
10991		both ""
10992			#version 300 es
10993			precision mediump float;
10994			precision mediump int;
10995
10996			${DECLARATIONS}
10997
10998			void main()
10999			{
11000				${SETUP}
11001				out0 = vec3(in0, in1);
11002				${OUTPUT}
11003			}
11004		""
11005	end
11006
11007	case bvec2_int_to_ivec3
11008		version 300 es
11009		values
11010		{
11011			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) ];
11012			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
11013			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) ];
11014		}
11015
11016		both ""
11017			#version 300 es
11018			precision mediump float;
11019			precision mediump int;
11020
11021			${DECLARATIONS}
11022
11023			void main()
11024			{
11025				${SETUP}
11026				out0 = ivec3(in0, in1);
11027				${OUTPUT}
11028			}
11029		""
11030	end
11031
11032	case bvec2_int_to_bvec3
11033		version 300 es
11034		values
11035		{
11036			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) ];
11037			input int in1 = [ 1 | -66 | 255 | 8 | -192 | 2 | 5 | 11 | -12 | 0 ];
11038			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) ];
11039		}
11040
11041		both ""
11042			#version 300 es
11043			precision mediump float;
11044			precision mediump int;
11045
11046			${DECLARATIONS}
11047
11048			void main()
11049			{
11050				${SETUP}
11051				out0 = bvec3(in0, in1);
11052				${OUTPUT}
11053			}
11054		""
11055	end
11056
11057	case bool_ivec2_to_vec3
11058		version 300 es
11059		values
11060		{
11061			input bool in0 = [ true | true | false | false | true ];
11062			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
11063			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) ];
11064		}
11065
11066		both ""
11067			#version 300 es
11068			precision mediump float;
11069			precision mediump int;
11070
11071			${DECLARATIONS}
11072
11073			void main()
11074			{
11075				${SETUP}
11076				out0 = vec3(in0, in1);
11077				${OUTPUT}
11078			}
11079		""
11080	end
11081
11082	case bool_ivec2_to_ivec3
11083		version 300 es
11084		values
11085		{
11086			input bool in0 = [ true | true | false | false | true ];
11087			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
11088			output ivec3 out0 = [ ivec3(1, 0, -2) | ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 1) | ivec3(1, -32, 64) ];
11089		}
11090
11091		both ""
11092			#version 300 es
11093			precision mediump float;
11094			precision mediump int;
11095
11096			${DECLARATIONS}
11097
11098			void main()
11099			{
11100				${SETUP}
11101				out0 = ivec3(in0, in1);
11102				${OUTPUT}
11103			}
11104		""
11105	end
11106
11107	case bool_ivec2_to_bvec3
11108		version 300 es
11109		values
11110		{
11111			input bool in0 = [ true | true | false | false | true ];
11112			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
11113			output bvec3 out0 = [ bvec3(true, false, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, true) | bvec3(true, true, true) ];
11114		}
11115
11116		both ""
11117			#version 300 es
11118			precision mediump float;
11119			precision mediump int;
11120
11121			${DECLARATIONS}
11122
11123			void main()
11124			{
11125				${SETUP}
11126				out0 = bvec3(in0, in1);
11127				${OUTPUT}
11128			}
11129		""
11130	end
11131
11132	case float_uvec2_to_vec3
11133		version 300 es
11134		values
11135		{
11136			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
11137			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) ];
11138			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) ];
11139		}
11140
11141		both ""
11142			#version 300 es
11143			precision mediump float;
11144			precision mediump int;
11145
11146			${DECLARATIONS}
11147
11148			void main()
11149			{
11150				${SETUP}
11151				out0 = vec3(in0, in1);
11152				${OUTPUT}
11153			}
11154		""
11155	end
11156
11157	case float_uvec2_to_ivec3
11158		version 300 es
11159		values
11160		{
11161			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
11162			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) ];
11163			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) ];
11164		}
11165
11166		both ""
11167			#version 300 es
11168			precision mediump float;
11169			precision mediump int;
11170
11171			${DECLARATIONS}
11172
11173			void main()
11174			{
11175				${SETUP}
11176				out0 = ivec3(in0, in1);
11177				${OUTPUT}
11178			}
11179		""
11180	end
11181
11182	case float_uvec2_to_bvec3
11183		version 300 es
11184		values
11185		{
11186			input float in0 = [ -20.125 | 36.8125 | -8.25 | 2.0 | -0.5 | 0.0 | 3.5 | 1.0 ];
11187			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) ];
11188			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) ];
11189		}
11190
11191		both ""
11192			#version 300 es
11193			precision mediump float;
11194			precision mediump int;
11195
11196			${DECLARATIONS}
11197
11198			void main()
11199			{
11200				${SETUP}
11201				out0 = bvec3(in0, in1);
11202				${OUTPUT}
11203			}
11204		""
11205	end
11206
11207	case float_float_float_to_uvec3
11208		version 300 es
11209		values
11210		{
11211			input float in0 = [ 8.25 | 20.125 | 2.0 | 3.5 | 0.5 | 36.8125 | 1.0 | 0.0 ];
11212			input float in1 = [ 1.0 | 0.0 | 3.5 | 36.8125 | 8.25 | 2.0 | 0.5 | 20.125 ];
11213			input float in2 = [ 20.125 | 0.5 | 8.25 | 36.8125 | 1.0 | 0.0 | 3.5 | 2.0 ];
11214			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) ];
11215		}
11216
11217		both ""
11218			#version 300 es
11219			precision mediump float;
11220			precision mediump int;
11221
11222			${DECLARATIONS}
11223
11224			void main()
11225			{
11226				${SETUP}
11227				out0 = uvec3(in0, in1, in2);
11228				${OUTPUT}
11229			}
11230		""
11231	end
11232
11233	case int_int_int_to_uvec3
11234		version 300 es
11235		values
11236		{
11237			input int in0 = [ 1 | 255 | 192 | 2 | 5 | 12 | 0 | 11 | 8 | 66 ];
11238			input int in1 = [ 192 | 66 | 5 | 8 | 11 | 1 | 0 | 255 | 12 | 2 ];
11239			input int in2 = [ 192 | 5 | 1 | 11 | 66 | 8 | 12 | 0 | 2 | 255 ];
11240			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) ];
11241		}
11242
11243		both ""
11244			#version 300 es
11245			precision mediump float;
11246			precision mediump int;
11247
11248			${DECLARATIONS}
11249
11250			void main()
11251			{
11252				${SETUP}
11253				out0 = uvec3(in0, in1, in2);
11254				${OUTPUT}
11255			}
11256		""
11257	end
11258
11259	case uint_uint_uint_to_uvec3
11260		version 300 es
11261		values
11262		{
11263			input uint in0 = [ 193 | 9 | 45 | 255 | 2 | 0 | 10 | 8 | 12 | 3 ];
11264			input uint in1 = [ 3 | 45 | 2 | 9 | 10 | 0 | 8 | 12 | 255 | 193 ];
11265			input uint in2 = [ 2 | 3 | 9 | 10 | 255 | 8 | 12 | 0 | 193 | 45 ];
11266			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) ];
11267		}
11268
11269		both ""
11270			#version 300 es
11271			precision mediump float;
11272			precision mediump int;
11273
11274			${DECLARATIONS}
11275
11276			void main()
11277			{
11278				${SETUP}
11279				out0 = uvec3(in0, in1, in2);
11280				${OUTPUT}
11281			}
11282		""
11283	end
11284
11285	case bool_bool_bool_to_uvec3
11286		version 300 es
11287		values
11288		{
11289			input bool in0 = [ false | true ];
11290			input bool in1 = [ false | true ];
11291			input bool in2 = [ true | false ];
11292			output uvec3 out0 = [ uvec3(0, 0, 1) | uvec3(1, 1, 0) ];
11293		}
11294
11295		both ""
11296			#version 300 es
11297			precision mediump float;
11298			precision mediump int;
11299
11300			${DECLARATIONS}
11301
11302			void main()
11303			{
11304				${SETUP}
11305				out0 = uvec3(in0, in1, in2);
11306				${OUTPUT}
11307			}
11308		""
11309	end
11310
11311	case bool_float_int_to_uvec3
11312		version 300 es
11313		values
11314		{
11315			input bool in0 = [ true | false | true | false | false | true | false | true | true | false ];
11316			input float in1 = [ 36.8125 | 20.125 | 1.0 | 0.0 | 3.5 | 1.0 | 2.0 | 0.5 | 0.0 | 8.25 ];
11317			input int in2 = [ 1 | 0 | 8 | 66 | 2 | 11 | 192 | 5 | 12 | 255 ];
11318			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) ];
11319		}
11320
11321		both ""
11322			#version 300 es
11323			precision mediump float;
11324			precision mediump int;
11325
11326			${DECLARATIONS}
11327
11328			void main()
11329			{
11330				${SETUP}
11331				out0 = uvec3(in0, in1, in2);
11332				${OUTPUT}
11333			}
11334		""
11335	end
11336
11337	case vec2_bool_to_uvec3
11338		version 300 es
11339		values
11340		{
11341			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) ];
11342			input bool in1 = [ false | false | true | true | true ];
11343			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(32, 64, 0) | uvec3(0, 2, 1) | uvec3(1, 1, 1) | uvec3(0, 0, 1) ];
11344		}
11345
11346		both ""
11347			#version 300 es
11348			precision mediump float;
11349			precision mediump int;
11350
11351			${DECLARATIONS}
11352
11353			void main()
11354			{
11355				${SETUP}
11356				out0 = uvec3(in0, in1);
11357				${OUTPUT}
11358			}
11359		""
11360	end
11361
11362	case bvec2_float_to_uvec3
11363		version 300 es
11364		values
11365		{
11366			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) ];
11367			input float in1 = [ 8.25 | 36.8125 | 20.125 | 2.0 | 0.0 | 1.0 | 0.5 | 3.5 ];
11368			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) ];
11369		}
11370
11371		both ""
11372			#version 300 es
11373			precision mediump float;
11374			precision mediump int;
11375
11376			${DECLARATIONS}
11377
11378			void main()
11379			{
11380				${SETUP}
11381				out0 = uvec3(in0, in1);
11382				${OUTPUT}
11383			}
11384		""
11385	end
11386
11387	case bvec2_int_to_uvec3
11388		version 300 es
11389		values
11390		{
11391			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) ];
11392			input int in1 = [ 255 | 1 | 2 | 5 | 0 | 11 | 192 | 12 | 8 | 66 ];
11393			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) ];
11394		}
11395
11396		both ""
11397			#version 300 es
11398			precision mediump float;
11399			precision mediump int;
11400
11401			${DECLARATIONS}
11402
11403			void main()
11404			{
11405				${SETUP}
11406				out0 = uvec3(in0, in1);
11407				${OUTPUT}
11408			}
11409		""
11410	end
11411
11412	case bool_ivec2_to_uvec3
11413		version 300 es
11414		values
11415		{
11416			input bool in0 = [ true | false | true | true | false ];
11417			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(32, 64) ];
11418			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 2) | uvec3(1, 1, 1) | uvec3(1, 0, 0) | uvec3(0, 32, 64) ];
11419		}
11420
11421		both ""
11422			#version 300 es
11423			precision mediump float;
11424			precision mediump int;
11425
11426			${DECLARATIONS}
11427
11428			void main()
11429			{
11430				${SETUP}
11431				out0 = uvec3(in0, in1);
11432				${OUTPUT}
11433			}
11434		""
11435	end
11436
11437	case float_uvec2_to_uvec3
11438		version 300 es
11439		values
11440		{
11441			input float in0 = [ 2.0 | 8.25 | 20.125 | 3.5 | 0.0 | 0.5 | 36.8125 | 1.0 ];
11442			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) ];
11443			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) ];
11444		}
11445
11446		both ""
11447			#version 300 es
11448			precision mediump float;
11449			precision mediump int;
11450
11451			${DECLARATIONS}
11452
11453			void main()
11454			{
11455				${SETUP}
11456				out0 = uvec3(in0, in1);
11457				${OUTPUT}
11458			}
11459		""
11460	end
11461
11462	case float_float_to_vec2
11463		version 300 es
11464		values
11465		{
11466			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
11467			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
11468			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) ];
11469		}
11470
11471		both ""
11472			#version 300 es
11473			precision mediump float;
11474			precision mediump int;
11475
11476			${DECLARATIONS}
11477
11478			void main()
11479			{
11480				${SETUP}
11481				out0 = vec2(in0, in1);
11482				${OUTPUT}
11483			}
11484		""
11485	end
11486
11487	case float_float_to_ivec2
11488		version 300 es
11489		values
11490		{
11491			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
11492			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
11493			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) ];
11494		}
11495
11496		both ""
11497			#version 300 es
11498			precision mediump float;
11499			precision mediump int;
11500
11501			${DECLARATIONS}
11502
11503			void main()
11504			{
11505				${SETUP}
11506				out0 = ivec2(in0, in1);
11507				${OUTPUT}
11508			}
11509		""
11510	end
11511
11512	case float_float_to_bvec2
11513		version 300 es
11514		values
11515		{
11516			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
11517			input float in1 = [ 1.0 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | -0.5 | 2.0 ];
11518			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) ];
11519		}
11520
11521		both ""
11522			#version 300 es
11523			precision mediump float;
11524			precision mediump int;
11525
11526			${DECLARATIONS}
11527
11528			void main()
11529			{
11530				${SETUP}
11531				out0 = bvec2(in0, in1);
11532				${OUTPUT}
11533			}
11534		""
11535	end
11536
11537	case int_int_to_vec2
11538		version 300 es
11539		values
11540		{
11541			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
11542			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
11543			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) ];
11544		}
11545
11546		both ""
11547			#version 300 es
11548			precision mediump float;
11549			precision mediump int;
11550
11551			${DECLARATIONS}
11552
11553			void main()
11554			{
11555				${SETUP}
11556				out0 = vec2(in0, in1);
11557				${OUTPUT}
11558			}
11559		""
11560	end
11561
11562	case int_int_to_ivec2
11563		version 300 es
11564		values
11565		{
11566			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
11567			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
11568			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) ];
11569		}
11570
11571		both ""
11572			#version 300 es
11573			precision mediump float;
11574			precision mediump int;
11575
11576			${DECLARATIONS}
11577
11578			void main()
11579			{
11580				${SETUP}
11581				out0 = ivec2(in0, in1);
11582				${OUTPUT}
11583			}
11584		""
11585	end
11586
11587	case int_int_to_bvec2
11588		version 300 es
11589		values
11590		{
11591			input int in0 = [ 2 | -66 | 0 | 5 | -12 | 8 | -192 | 1 | 11 | 255 ];
11592			input int in1 = [ -192 | 8 | 1 | 0 | 5 | -66 | 2 | 255 | 11 | -12 ];
11593			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) ];
11594		}
11595
11596		both ""
11597			#version 300 es
11598			precision mediump float;
11599			precision mediump int;
11600
11601			${DECLARATIONS}
11602
11603			void main()
11604			{
11605				${SETUP}
11606				out0 = bvec2(in0, in1);
11607				${OUTPUT}
11608			}
11609		""
11610	end
11611
11612	case uint_uint_to_vec2
11613		version 300 es
11614		values
11615		{
11616			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
11617			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
11618			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) ];
11619		}
11620
11621		both ""
11622			#version 300 es
11623			precision mediump float;
11624			precision mediump int;
11625
11626			${DECLARATIONS}
11627
11628			void main()
11629			{
11630				${SETUP}
11631				out0 = vec2(in0, in1);
11632				${OUTPUT}
11633			}
11634		""
11635	end
11636
11637	case uint_uint_to_ivec2
11638		version 300 es
11639		values
11640		{
11641			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
11642			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
11643			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) ];
11644		}
11645
11646		both ""
11647			#version 300 es
11648			precision mediump float;
11649			precision mediump int;
11650
11651			${DECLARATIONS}
11652
11653			void main()
11654			{
11655				${SETUP}
11656				out0 = ivec2(in0, in1);
11657				${OUTPUT}
11658			}
11659		""
11660	end
11661
11662	case uint_uint_to_bvec2
11663		version 300 es
11664		values
11665		{
11666			input uint in0 = [ 9 | 12 | 0 | 255 | 8 | 45 | 3 | 2 | 10 | 193 ];
11667			input uint in1 = [ 8 | 9 | 45 | 2 | 12 | 193 | 255 | 0 | 3 | 10 ];
11668			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) ];
11669		}
11670
11671		both ""
11672			#version 300 es
11673			precision mediump float;
11674			precision mediump int;
11675
11676			${DECLARATIONS}
11677
11678			void main()
11679			{
11680				${SETUP}
11681				out0 = bvec2(in0, in1);
11682				${OUTPUT}
11683			}
11684		""
11685	end
11686
11687	case bool_bool_to_vec2
11688		version 300 es
11689		values
11690		{
11691			input bool in0 = [ true | false ];
11692			input bool in1 = [ true | false ];
11693			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
11694		}
11695
11696		both ""
11697			#version 300 es
11698			precision mediump float;
11699			precision mediump int;
11700
11701			${DECLARATIONS}
11702
11703			void main()
11704			{
11705				${SETUP}
11706				out0 = vec2(in0, in1);
11707				${OUTPUT}
11708			}
11709		""
11710	end
11711
11712	case bool_bool_to_ivec2
11713		version 300 es
11714		values
11715		{
11716			input bool in0 = [ true | false ];
11717			input bool in1 = [ true | false ];
11718			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
11719		}
11720
11721		both ""
11722			#version 300 es
11723			precision mediump float;
11724			precision mediump int;
11725
11726			${DECLARATIONS}
11727
11728			void main()
11729			{
11730				${SETUP}
11731				out0 = ivec2(in0, in1);
11732				${OUTPUT}
11733			}
11734		""
11735	end
11736
11737	case bool_bool_to_bvec2
11738		version 300 es
11739		values
11740		{
11741			input bool in0 = [ true | false ];
11742			input bool in1 = [ true | false ];
11743			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
11744		}
11745
11746		both ""
11747			#version 300 es
11748			precision mediump float;
11749			precision mediump int;
11750
11751			${DECLARATIONS}
11752
11753			void main()
11754			{
11755				${SETUP}
11756				out0 = bvec2(in0, in1);
11757				${OUTPUT}
11758			}
11759		""
11760	end
11761
11762	case float_int_to_vec2
11763		version 300 es
11764		values
11765		{
11766			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
11767			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
11768			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) ];
11769		}
11770
11771		both ""
11772			#version 300 es
11773			precision mediump float;
11774			precision mediump int;
11775
11776			${DECLARATIONS}
11777
11778			void main()
11779			{
11780				${SETUP}
11781				out0 = vec2(in0, in1);
11782				${OUTPUT}
11783			}
11784		""
11785	end
11786
11787	case float_int_to_ivec2
11788		version 300 es
11789		values
11790		{
11791			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
11792			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
11793			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) ];
11794		}
11795
11796		both ""
11797			#version 300 es
11798			precision mediump float;
11799			precision mediump int;
11800
11801			${DECLARATIONS}
11802
11803			void main()
11804			{
11805				${SETUP}
11806				out0 = ivec2(in0, in1);
11807				${OUTPUT}
11808			}
11809		""
11810	end
11811
11812	case float_int_to_bvec2
11813		version 300 es
11814		values
11815		{
11816			input float in0 = [ 0.0 | 3.5 | 0.0 | 2.0 | -8.25 | 36.8125 | -20.125 | 1.0 | 1.0 | -0.5 ];
11817			input int in1 = [ -66 | 1 | 255 | -192 | 8 | 2 | 0 | 5 | -12 | 11 ];
11818			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) ];
11819		}
11820
11821		both ""
11822			#version 300 es
11823			precision mediump float;
11824			precision mediump int;
11825
11826			${DECLARATIONS}
11827
11828			void main()
11829			{
11830				${SETUP}
11831				out0 = bvec2(in0, in1);
11832				${OUTPUT}
11833			}
11834		""
11835	end
11836
11837	case float_bool_to_vec2
11838		version 300 es
11839		values
11840		{
11841			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
11842			input bool in1 = [ false | true | true | false | false | true | false | true ];
11843			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) ];
11844		}
11845
11846		both ""
11847			#version 300 es
11848			precision mediump float;
11849			precision mediump int;
11850
11851			${DECLARATIONS}
11852
11853			void main()
11854			{
11855				${SETUP}
11856				out0 = vec2(in0, in1);
11857				${OUTPUT}
11858			}
11859		""
11860	end
11861
11862	case float_bool_to_ivec2
11863		version 300 es
11864		values
11865		{
11866			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
11867			input bool in1 = [ false | true | true | false | false | true | false | true ];
11868			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) ];
11869		}
11870
11871		both ""
11872			#version 300 es
11873			precision mediump float;
11874			precision mediump int;
11875
11876			${DECLARATIONS}
11877
11878			void main()
11879			{
11880				${SETUP}
11881				out0 = ivec2(in0, in1);
11882				${OUTPUT}
11883			}
11884		""
11885	end
11886
11887	case float_bool_to_bvec2
11888		version 300 es
11889		values
11890		{
11891			input float in0 = [ 2.0 | 3.5 | 1.0 | -20.125 | -8.25 | 0.0 | -0.5 | 36.8125 ];
11892			input bool in1 = [ false | true | true | false | false | true | false | true ];
11893			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) ];
11894		}
11895
11896		both ""
11897			#version 300 es
11898			precision mediump float;
11899			precision mediump int;
11900
11901			${DECLARATIONS}
11902
11903			void main()
11904			{
11905				${SETUP}
11906				out0 = bvec2(in0, in1);
11907				${OUTPUT}
11908			}
11909		""
11910	end
11911
11912	case int_bool_to_vec2
11913		version 300 es
11914		values
11915		{
11916			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
11917			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
11918			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) ];
11919		}
11920
11921		both ""
11922			#version 300 es
11923			precision mediump float;
11924			precision mediump int;
11925
11926			${DECLARATIONS}
11927
11928			void main()
11929			{
11930				${SETUP}
11931				out0 = vec2(in0, in1);
11932				${OUTPUT}
11933			}
11934		""
11935	end
11936
11937	case int_bool_to_ivec2
11938		version 300 es
11939		values
11940		{
11941			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
11942			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
11943			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) ];
11944		}
11945
11946		both ""
11947			#version 300 es
11948			precision mediump float;
11949			precision mediump int;
11950
11951			${DECLARATIONS}
11952
11953			void main()
11954			{
11955				${SETUP}
11956				out0 = ivec2(in0, in1);
11957				${OUTPUT}
11958			}
11959		""
11960	end
11961
11962	case int_bool_to_bvec2
11963		version 300 es
11964		values
11965		{
11966			input int in0 = [ 255 | 2 | -12 | 1 | -192 | 5 | 8 | 0 | -66 | 11 ];
11967			input bool in1 = [ true | false | false | false | true | false | true | false | true | true ];
11968			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) ];
11969		}
11970
11971		both ""
11972			#version 300 es
11973			precision mediump float;
11974			precision mediump int;
11975
11976			${DECLARATIONS}
11977
11978			void main()
11979			{
11980				${SETUP}
11981				out0 = bvec2(in0, in1);
11982				${OUTPUT}
11983			}
11984		""
11985	end
11986
11987	case int_uint_to_vec2
11988		version 300 es
11989		values
11990		{
11991			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
11992			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
11993			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) ];
11994		}
11995
11996		both ""
11997			#version 300 es
11998			precision mediump float;
11999			precision mediump int;
12000
12001			${DECLARATIONS}
12002
12003			void main()
12004			{
12005				${SETUP}
12006				out0 = vec2(in0, in1);
12007				${OUTPUT}
12008			}
12009		""
12010	end
12011
12012	case int_uint_to_ivec2
12013		version 300 es
12014		values
12015		{
12016			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
12017			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
12018			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) ];
12019		}
12020
12021		both ""
12022			#version 300 es
12023			precision mediump float;
12024			precision mediump int;
12025
12026			${DECLARATIONS}
12027
12028			void main()
12029			{
12030				${SETUP}
12031				out0 = ivec2(in0, in1);
12032				${OUTPUT}
12033			}
12034		""
12035	end
12036
12037	case int_uint_to_bvec2
12038		version 300 es
12039		values
12040		{
12041			input int in0 = [ -66 | 1 | -192 | -12 | 5 | 255 | 11 | 0 | 2 | 8 ];
12042			input uint in1 = [ 193 | 0 | 2 | 10 | 255 | 12 | 45 | 8 | 9 | 3 ];
12043			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) ];
12044		}
12045
12046		both ""
12047			#version 300 es
12048			precision mediump float;
12049			precision mediump int;
12050
12051			${DECLARATIONS}
12052
12053			void main()
12054			{
12055				${SETUP}
12056				out0 = bvec2(in0, in1);
12057				${OUTPUT}
12058			}
12059		""
12060	end
12061
12062	case uint_float_to_vec2
12063		version 300 es
12064		values
12065		{
12066			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
12067			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
12068			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) ];
12069		}
12070
12071		both ""
12072			#version 300 es
12073			precision mediump float;
12074			precision mediump int;
12075
12076			${DECLARATIONS}
12077
12078			void main()
12079			{
12080				${SETUP}
12081				out0 = vec2(in0, in1);
12082				${OUTPUT}
12083			}
12084		""
12085	end
12086
12087	case uint_float_to_ivec2
12088		version 300 es
12089		values
12090		{
12091			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
12092			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
12093			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) ];
12094		}
12095
12096		both ""
12097			#version 300 es
12098			precision mediump float;
12099			precision mediump int;
12100
12101			${DECLARATIONS}
12102
12103			void main()
12104			{
12105				${SETUP}
12106				out0 = ivec2(in0, in1);
12107				${OUTPUT}
12108			}
12109		""
12110	end
12111
12112	case uint_float_to_bvec2
12113		version 300 es
12114		values
12115		{
12116			input uint in0 = [ 12 | 0 | 8 | 193 | 3 | 10 | 9 | 2 | 45 | 255 ];
12117			input float in1 = [ -20.125 | 0.0 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 | -0.5 | 1.0 ];
12118			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) ];
12119		}
12120
12121		both ""
12122			#version 300 es
12123			precision mediump float;
12124			precision mediump int;
12125
12126			${DECLARATIONS}
12127
12128			void main()
12129			{
12130				${SETUP}
12131				out0 = bvec2(in0, in1);
12132				${OUTPUT}
12133			}
12134		""
12135	end
12136
12137	case float_float_to_uvec2
12138		version 300 es
12139		values
12140		{
12141			input float in0 = [ 8.25 | 36.8125 | 1.0 | 0.5 | 20.125 | 0.0 | 2.0 | 3.5 ];
12142			input float in1 = [ 0.5 | 36.8125 | 0.0 | 2.0 | 8.25 | 20.125 | 1.0 | 3.5 ];
12143			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) ];
12144		}
12145
12146		both ""
12147			#version 300 es
12148			precision mediump float;
12149			precision mediump int;
12150
12151			${DECLARATIONS}
12152
12153			void main()
12154			{
12155				${SETUP}
12156				out0 = uvec2(in0, in1);
12157				${OUTPUT}
12158			}
12159		""
12160	end
12161
12162	case int_int_to_uvec2
12163		version 300 es
12164		values
12165		{
12166			input int in0 = [ 0 | 12 | 8 | 11 | 255 | 66 | 192 | 2 | 5 | 1 ];
12167			input int in1 = [ 11 | 12 | 2 | 5 | 66 | 192 | 255 | 0 | 1 | 8 ];
12168			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) ];
12169		}
12170
12171		both ""
12172			#version 300 es
12173			precision mediump float;
12174			precision mediump int;
12175
12176			${DECLARATIONS}
12177
12178			void main()
12179			{
12180				${SETUP}
12181				out0 = uvec2(in0, in1);
12182				${OUTPUT}
12183			}
12184		""
12185	end
12186
12187	case uint_uint_to_uvec2
12188		version 300 es
12189		values
12190		{
12191			input uint in0 = [ 3 | 9 | 10 | 193 | 8 | 0 | 255 | 45 | 2 | 12 ];
12192			input uint in1 = [ 0 | 2 | 12 | 3 | 10 | 9 | 45 | 193 | 255 | 8 ];
12193			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) ];
12194		}
12195
12196		both ""
12197			#version 300 es
12198			precision mediump float;
12199			precision mediump int;
12200
12201			${DECLARATIONS}
12202
12203			void main()
12204			{
12205				${SETUP}
12206				out0 = uvec2(in0, in1);
12207				${OUTPUT}
12208			}
12209		""
12210	end
12211
12212	case bool_bool_to_uvec2
12213		version 300 es
12214		values
12215		{
12216			input bool in0 = [ true | false ];
12217			input bool in1 = [ true | false ];
12218			output uvec2 out0 = [ uvec2(1, 1) | uvec2(0, 0) ];
12219		}
12220
12221		both ""
12222			#version 300 es
12223			precision mediump float;
12224			precision mediump int;
12225
12226			${DECLARATIONS}
12227
12228			void main()
12229			{
12230				${SETUP}
12231				out0 = uvec2(in0, in1);
12232				${OUTPUT}
12233			}
12234		""
12235	end
12236
12237	case float_int_to_uvec2
12238		version 300 es
12239		values
12240		{
12241			input float in0 = [ 8.25 | 1.0 | 0.5 | 3.5 | 2.0 | 0.0 | 36.8125 | 1.0 | 0.0 | 20.125 ];
12242			input int in1 = [ 0 | 255 | 12 | 5 | 192 | 2 | 66 | 11 | 1 | 8 ];
12243			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) ];
12244		}
12245
12246		both ""
12247			#version 300 es
12248			precision mediump float;
12249			precision mediump int;
12250
12251			${DECLARATIONS}
12252
12253			void main()
12254			{
12255				${SETUP}
12256				out0 = uvec2(in0, in1);
12257				${OUTPUT}
12258			}
12259		""
12260	end
12261
12262	case float_bool_to_uvec2
12263		version 300 es
12264		values
12265		{
12266			input float in0 = [ 3.5 | 1.0 | 8.25 | 0.5 | 2.0 | 36.8125 | 0.0 | 20.125 ];
12267			input bool in1 = [ true | false | true | false | true | false | false | true ];
12268			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) ];
12269		}
12270
12271		both ""
12272			#version 300 es
12273			precision mediump float;
12274			precision mediump int;
12275
12276			${DECLARATIONS}
12277
12278			void main()
12279			{
12280				${SETUP}
12281				out0 = uvec2(in0, in1);
12282				${OUTPUT}
12283			}
12284		""
12285	end
12286
12287	case int_bool_to_uvec2
12288		version 300 es
12289		values
12290		{
12291			input int in0 = [ 12 | 11 | 0 | 5 | 8 | 255 | 2 | 1 | 66 | 192 ];
12292			input bool in1 = [ true | true | false | false | false | true | false | false | true | true ];
12293			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) ];
12294		}
12295
12296		both ""
12297			#version 300 es
12298			precision mediump float;
12299			precision mediump int;
12300
12301			${DECLARATIONS}
12302
12303			void main()
12304			{
12305				${SETUP}
12306				out0 = uvec2(in0, in1);
12307				${OUTPUT}
12308			}
12309		""
12310	end
12311
12312	case int_uint_to_uvec2
12313		version 300 es
12314		values
12315		{
12316			input int in0 = [ 8 | 5 | 1 | 0 | 11 | 12 | 192 | 66 | 255 | 2 ];
12317			input uint in1 = [ 8 | 10 | 45 | 255 | 9 | 193 | 2 | 3 | 0 | 12 ];
12318			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) ];
12319		}
12320
12321		both ""
12322			#version 300 es
12323			precision mediump float;
12324			precision mediump int;
12325
12326			${DECLARATIONS}
12327
12328			void main()
12329			{
12330				${SETUP}
12331				out0 = uvec2(in0, in1);
12332				${OUTPUT}
12333			}
12334		""
12335	end
12336
12337	case uint_float_to_uvec2
12338		version 300 es
12339		values
12340		{
12341			input uint in0 = [ 9 | 45 | 8 | 3 | 10 | 2 | 193 | 12 | 255 | 0 ];
12342			input float in1 = [ 3.5 | 20.125 | 2.0 | 0.0 | 1.0 | 36.8125 | 8.25 | 1.0 | 0.0 | 0.5 ];
12343			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) ];
12344		}
12345
12346		both ""
12347			#version 300 es
12348			precision mediump float;
12349			precision mediump int;
12350
12351			${DECLARATIONS}
12352
12353			void main()
12354			{
12355				${SETUP}
12356				out0 = uvec2(in0, in1);
12357				${OUTPUT}
12358			}
12359		""
12360	end
12361
12362
12363end # vector_combine
12364group matrix_combine "Matrix Combine Constructors"
12365
12366	case vec2_vec2_to_mat2
12367		version 300 es
12368		values
12369		{
12370			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) ];
12371			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) ];
12372			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) ];
12373		}
12374
12375		both ""
12376			#version 300 es
12377			precision mediump float;
12378			precision mediump int;
12379
12380			${DECLARATIONS}
12381
12382			void main()
12383			{
12384				${SETUP}
12385				out0 = mat2(in0, in1);
12386				${OUTPUT}
12387			}
12388		""
12389	end
12390
12391	case bvec2_bvec2_to_mat2
12392		version 300 es
12393		values
12394		{
12395			input bvec2 in0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(false, false) ];
12396			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, true) ];
12397			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) ];
12398		}
12399
12400		both ""
12401			#version 300 es
12402			precision mediump float;
12403			precision mediump int;
12404
12405			${DECLARATIONS}
12406
12407			void main()
12408			{
12409				${SETUP}
12410				out0 = mat2(in0, in1);
12411				${OUTPUT}
12412			}
12413		""
12414	end
12415
12416	case float_float_float_float_to_mat2
12417		version 300 es
12418		values
12419		{
12420			input float in0 = [ -8.25 | 3.5 | 36.8125 | 2.0 | -20.125 | 1.0 | -0.5 | 0.0 ];
12421			input float in1 = [ 3.5 | -20.125 | 1.0 | 0.0 | -8.25 | 2.0 | 36.8125 | -0.5 ];
12422			input float in2 = [ 36.8125 | 3.5 | 0.0 | -20.125 | -0.5 | -8.25 | 1.0 | 2.0 ];
12423			input float in3 = [ -0.5 | 0.0 | -8.25 | -20.125 | 2.0 | 3.5 | 1.0 | 36.8125 ];
12424			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) ];
12425		}
12426
12427		both ""
12428			#version 300 es
12429			precision mediump float;
12430			precision mediump int;
12431
12432			${DECLARATIONS}
12433
12434			void main()
12435			{
12436				${SETUP}
12437				out0 = mat2(in0, in1, in2, in3);
12438				${OUTPUT}
12439			}
12440		""
12441	end
12442
12443	case int_int_int_int_to_mat2
12444		version 300 es
12445		values
12446		{
12447			input int in0 = [ 2 | 1 | -192 | 11 | -66 | 255 | 0 | 8 | -12 | 5 ];
12448			input int in1 = [ 11 | 255 | 5 | -66 | 8 | 2 | 0 | -12 | 1 | -192 ];
12449			input int in2 = [ 11 | 1 | -12 | 255 | 5 | 0 | 8 | -192 | 2 | -66 ];
12450			input int in3 = [ 2 | 1 | 0 | 8 | 255 | -66 | -192 | 11 | 5 | -12 ];
12451			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) ];
12452		}
12453
12454		both ""
12455			#version 300 es
12456			precision mediump float;
12457			precision mediump int;
12458
12459			${DECLARATIONS}
12460
12461			void main()
12462			{
12463				${SETUP}
12464				out0 = mat2(in0, in1, in2, in3);
12465				${OUTPUT}
12466			}
12467		""
12468	end
12469
12470	case uint_uint_uint_uint_to_mat2
12471		version 300 es
12472		values
12473		{
12474			input uint in0 = [ 193 | 9 | 12 | 45 | 10 | 2 | 8 | 3 | 255 | 0 ];
12475			input uint in1 = [ 0 | 255 | 12 | 193 | 3 | 2 | 45 | 9 | 8 | 10 ];
12476			input uint in2 = [ 3 | 9 | 10 | 2 | 12 | 193 | 255 | 0 | 8 | 45 ];
12477			input uint in3 = [ 45 | 12 | 9 | 3 | 2 | 255 | 10 | 8 | 193 | 0 ];
12478			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) ];
12479		}
12480
12481		both ""
12482			#version 300 es
12483			precision mediump float;
12484			precision mediump int;
12485
12486			${DECLARATIONS}
12487
12488			void main()
12489			{
12490				${SETUP}
12491				out0 = mat2(in0, in1, in2, in3);
12492				${OUTPUT}
12493			}
12494		""
12495	end
12496
12497	case bool_bool_bool_bool_to_mat2
12498		version 300 es
12499		values
12500		{
12501			input bool in0 = [ true | false ];
12502			input bool in1 = [ true | false ];
12503			input bool in2 = [ true | false ];
12504			input bool in3 = [ false | true ];
12505			output mat2 out0 = [ mat2(1.0, 1.0, 1.0, 0.0) | mat2(0.0, 0.0, 0.0, 1.0) ];
12506		}
12507
12508		both ""
12509			#version 300 es
12510			precision mediump float;
12511			precision mediump int;
12512
12513			${DECLARATIONS}
12514
12515			void main()
12516			{
12517				${SETUP}
12518				out0 = mat2(in0, in1, in2, in3);
12519				${OUTPUT}
12520			}
12521		""
12522	end
12523
12524	case bool_float_int_bool_to_mat2
12525		version 300 es
12526		values
12527		{
12528			input bool in0 = [ false | true | false | true | true | false | true | true | false | false ];
12529			input float in1 = [ 2.0 | -0.5 | 0.0 | 1.0 | 1.0 | 36.8125 | 3.5 | 0.0 | -8.25 | -20.125 ];
12530			input int in2 = [ 0 | -12 | 8 | -192 | 1 | -66 | 5 | 11 | 2 | 255 ];
12531			input bool in3 = [ true | false | true | false | true | false | false | true | true | false ];
12532			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) ];
12533		}
12534
12535		both ""
12536			#version 300 es
12537			precision mediump float;
12538			precision mediump int;
12539
12540			${DECLARATIONS}
12541
12542			void main()
12543			{
12544				${SETUP}
12545				out0 = mat2(in0, in1, in2, in3);
12546				${OUTPUT}
12547			}
12548		""
12549	end
12550
12551	case vec2_ivec2_to_mat2
12552		version 300 es
12553		values
12554		{
12555			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) ];
12556			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
12557			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) ];
12558		}
12559
12560		both ""
12561			#version 300 es
12562			precision mediump float;
12563			precision mediump int;
12564
12565			${DECLARATIONS}
12566
12567			void main()
12568			{
12569				${SETUP}
12570				out0 = mat2(in0, in1);
12571				${OUTPUT}
12572			}
12573		""
12574	end
12575
12576	case vec2_bvec2_to_mat2
12577		version 300 es
12578		values
12579		{
12580			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) ];
12581			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) ];
12582			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) ];
12583		}
12584
12585		both ""
12586			#version 300 es
12587			precision mediump float;
12588			precision mediump int;
12589
12590			${DECLARATIONS}
12591
12592			void main()
12593			{
12594				${SETUP}
12595				out0 = mat2(in0, in1);
12596				${OUTPUT}
12597			}
12598		""
12599	end
12600
12601	case bvec3_float_to_mat2
12602		version 300 es
12603		values
12604		{
12605			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) ];
12606			input float in1 = [ 36.8125 | -8.25 | 1.0 | -0.5 | 2.0 | -20.125 | 0.0 | 3.5 ];
12607			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) ];
12608		}
12609
12610		both ""
12611			#version 300 es
12612			precision mediump float;
12613			precision mediump int;
12614
12615			${DECLARATIONS}
12616
12617			void main()
12618			{
12619				${SETUP}
12620				out0 = mat2(in0, in1);
12621				${OUTPUT}
12622			}
12623		""
12624	end
12625
12626	case vec3_float_to_mat2
12627		version 300 es
12628		values
12629		{
12630			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) ];
12631			input float in1 = [ -0.5 | -20.125 | 0.0 | 36.8125 | 3.5 | -8.25 | 2.0 | 1.0 ];
12632			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) ];
12633		}
12634
12635		both ""
12636			#version 300 es
12637			precision mediump float;
12638			precision mediump int;
12639
12640			${DECLARATIONS}
12641
12642			void main()
12643			{
12644				${SETUP}
12645				out0 = mat2(in0, in1);
12646				${OUTPUT}
12647			}
12648		""
12649	end
12650
12651	case int_ivec2_int_to_mat2
12652		version 300 es
12653		values
12654		{
12655			input int in0 = [ 8 | -192 | 2 | 0 | -66 | 255 | 5 | 1 | -12 | 11 ];
12656			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) ];
12657			input int in2 = [ 2 | 1 | -12 | 0 | 11 | 8 | 255 | -192 | 5 | -66 ];
12658			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) ];
12659		}
12660
12661		both ""
12662			#version 300 es
12663			precision mediump float;
12664			precision mediump int;
12665
12666			${DECLARATIONS}
12667
12668			void main()
12669			{
12670				${SETUP}
12671				out0 = mat2(in0, in1, in2);
12672				${OUTPUT}
12673			}
12674		""
12675	end
12676
12677	case bool_float_ivec2_to_mat2
12678		version 300 es
12679		values
12680		{
12681			input bool in0 = [ true | true | true | false | false | true | false | false ];
12682			input float in1 = [ 1.0 | -0.5 | -20.125 | 36.8125 | 2.0 | 0.0 | -8.25 | 3.5 ];
12683			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) ];
12684			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) ];
12685		}
12686
12687		both ""
12688			#version 300 es
12689			precision mediump float;
12690			precision mediump int;
12691
12692			${DECLARATIONS}
12693
12694			void main()
12695			{
12696				${SETUP}
12697				out0 = mat2(in0, in1, in2);
12698				${OUTPUT}
12699			}
12700		""
12701	end
12702
12703	case float_uvec3_to_mat2
12704		version 300 es
12705		values
12706		{
12707			input float in0 = [ 36.8125 | 2.0 | -0.5 | 0.0 | -20.125 | 1.0 | 3.5 | -8.25 ];
12708			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) ];
12709			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) ];
12710		}
12711
12712		both ""
12713			#version 300 es
12714			precision mediump float;
12715			precision mediump int;
12716
12717			${DECLARATIONS}
12718
12719			void main()
12720			{
12721				${SETUP}
12722				out0 = mat2(in0, in1);
12723				${OUTPUT}
12724			}
12725		""
12726	end
12727
12728	case int_uvec2_bool_to_mat2
12729		version 300 es
12730		values
12731		{
12732			input int in0 = [ 1 | -66 | 5 | -192 | 11 | 0 | 8 | 2 | -12 | 255 ];
12733			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) ];
12734			input bool in2 = [ true | false | true | false | false | false | true | true | true | false ];
12735			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) ];
12736		}
12737
12738		both ""
12739			#version 300 es
12740			precision mediump float;
12741			precision mediump int;
12742
12743			${DECLARATIONS}
12744
12745			void main()
12746			{
12747				${SETUP}
12748				out0 = mat2(in0, in1, in2);
12749				${OUTPUT}
12750			}
12751		""
12752	end
12753
12754	case vec3_vec3_to_mat2x3
12755		version 300 es
12756		values
12757		{
12758			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) ];
12759			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) ];
12760			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) ];
12761		}
12762
12763		both ""
12764			#version 300 es
12765			precision mediump float;
12766			precision mediump int;
12767
12768			${DECLARATIONS}
12769
12770			void main()
12771			{
12772				${SETUP}
12773				out0 = mat2x3(in0, in1);
12774				${OUTPUT}
12775			}
12776		""
12777	end
12778
12779	case bvec3_bvec3_to_mat2x3
12780		version 300 es
12781		values
12782		{
12783			input bvec3 in0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(true, false, false) ];
12784			input bvec3 in1 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) ];
12785			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) ];
12786		}
12787
12788		both ""
12789			#version 300 es
12790			precision mediump float;
12791			precision mediump int;
12792
12793			${DECLARATIONS}
12794
12795			void main()
12796			{
12797				${SETUP}
12798				out0 = mat2x3(in0, in1);
12799				${OUTPUT}
12800			}
12801		""
12802	end
12803
12804	case float_float_float_float_float_float_to_mat2x3
12805		version 300 es
12806		values
12807		{
12808			input float in0 = [ 1.0 | -8.25 | -20.125 | 36.8125 | -0.5 | 2.0 | 3.5 | 0.0 ];
12809			input float in1 = [ -0.5 | -20.125 | 36.8125 | -8.25 | 2.0 | 1.0 | 3.5 | 0.0 ];
12810			input float in2 = [ 3.5 | 1.0 | 36.8125 | -20.125 | -8.25 | -0.5 | 2.0 | 0.0 ];
12811			input float in3 = [ 1.0 | -8.25 | 0.0 | -20.125 | 2.0 | 3.5 | -0.5 | 36.8125 ];
12812			input float in4 = [ 1.0 | 0.0 | 3.5 | 2.0 | -8.25 | -20.125 | -0.5 | 36.8125 ];
12813			input float in5 = [ 2.0 | -20.125 | -8.25 | -0.5 | 3.5 | 1.0 | 36.8125 | 0.0 ];
12814			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) ];
12815		}
12816
12817		both ""
12818			#version 300 es
12819			precision mediump float;
12820			precision mediump int;
12821
12822			${DECLARATIONS}
12823
12824			void main()
12825			{
12826				${SETUP}
12827				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
12828				${OUTPUT}
12829			}
12830		""
12831	end
12832
12833	case int_int_int_int_int_int_to_mat2x3
12834		version 300 es
12835		values
12836		{
12837			input int in0 = [ 2 | 8 | -192 | 0 | 5 | -12 | 1 | 255 | -66 | 11 ];
12838			input int in1 = [ 1 | -192 | 8 | 0 | -12 | 2 | 11 | 255 | -66 | 5 ];
12839			input int in2 = [ -192 | 2 | -66 | 8 | 11 | 255 | 0 | 5 | -12 | 1 ];
12840			input int in3 = [ 2 | 11 | 255 | 0 | -66 | -12 | 5 | -192 | 8 | 1 ];
12841			input int in4 = [ 8 | 0 | -12 | -192 | 2 | -66 | 1 | 255 | 5 | 11 ];
12842			input int in5 = [ 0 | 11 | 5 | 8 | -12 | 255 | -192 | 2 | 1 | -66 ];
12843			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) ];
12844		}
12845
12846		both ""
12847			#version 300 es
12848			precision mediump float;
12849			precision mediump int;
12850
12851			${DECLARATIONS}
12852
12853			void main()
12854			{
12855				${SETUP}
12856				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
12857				${OUTPUT}
12858			}
12859		""
12860	end
12861
12862	case bool_bool_bool_bool_bool_bool_to_mat2x3
12863		version 300 es
12864		values
12865		{
12866			input bool in0 = [ true | false ];
12867			input bool in1 = [ false | true ];
12868			input bool in2 = [ false | true ];
12869			input bool in3 = [ true | false ];
12870			input bool in4 = [ true | false ];
12871			input bool in5 = [ true | false ];
12872			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) ];
12873		}
12874
12875		both ""
12876			#version 300 es
12877			precision mediump float;
12878			precision mediump int;
12879
12880			${DECLARATIONS}
12881
12882			void main()
12883			{
12884				${SETUP}
12885				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
12886				${OUTPUT}
12887			}
12888		""
12889	end
12890
12891	case bool_float_int_bool_float_int_to_mat2x3
12892		version 300 es
12893		values
12894		{
12895			input bool in0 = [ false | true | false | true | false | true | false | true | true | false ];
12896			input float in1 = [ 0.0 | -8.25 | 2.0 | -20.125 | 3.5 | 0.0 | -0.5 | 36.8125 | 1.0 | 1.0 ];
12897			input int in2 = [ -66 | -12 | 2 | 8 | 255 | 11 | -192 | 1 | 5 | 0 ];
12898			input bool in3 = [ true | false | true | false | false | true | true | false | true | false ];
12899			input float in4 = [ 1.0 | 0.0 | -8.25 | 1.0 | 3.5 | -20.125 | -0.5 | 0.0 | 2.0 | 36.8125 ];
12900			input int in5 = [ 255 | -192 | 1 | 2 | -12 | -66 | 8 | 0 | 11 | 5 ];
12901			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) ];
12902		}
12903
12904		both ""
12905			#version 300 es
12906			precision mediump float;
12907			precision mediump int;
12908
12909			${DECLARATIONS}
12910
12911			void main()
12912			{
12913				${SETUP}
12914				out0 = mat2x3(in0, in1, in2, in3, in4, in5);
12915				${OUTPUT}
12916			}
12917		""
12918	end
12919
12920	case vec3_ivec3_to_mat2x3
12921		version 300 es
12922		values
12923		{
12924			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) ];
12925			input ivec3 in1 = [ ivec3(1, 1, 1) | ivec3(-32, 64, -51) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
12926			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) ];
12927		}
12928
12929		both ""
12930			#version 300 es
12931			precision mediump float;
12932			precision mediump int;
12933
12934			${DECLARATIONS}
12935
12936			void main()
12937			{
12938				${SETUP}
12939				out0 = mat2x3(in0, in1);
12940				${OUTPUT}
12941			}
12942		""
12943	end
12944
12945	case vec2_bvec4_to_mat2x3
12946		version 300 es
12947		values
12948		{
12949			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) ];
12950			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) ];
12951			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) ];
12952		}
12953
12954		both ""
12955			#version 300 es
12956			precision mediump float;
12957			precision mediump int;
12958
12959			${DECLARATIONS}
12960
12961			void main()
12962			{
12963				${SETUP}
12964				out0 = mat2x3(in0, in1);
12965				${OUTPUT}
12966			}
12967		""
12968	end
12969
12970	case bvec3_float_ivec2_to_mat2x3
12971		version 300 es
12972		values
12973		{
12974			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) ];
12975			input float in1 = [ 1.0 | -8.25 | 36.8125 | 2.0 | 3.5 | -0.5 | -20.125 | 0.0 ];
12976			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) ];
12977			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) ];
12978		}
12979
12980		both ""
12981			#version 300 es
12982			precision mediump float;
12983			precision mediump int;
12984
12985			${DECLARATIONS}
12986
12987			void main()
12988			{
12989				${SETUP}
12990				out0 = mat2x3(in0, in1, in2);
12991				${OUTPUT}
12992			}
12993		""
12994	end
12995
12996	case vec3_float_bvec2_to_mat2x3
12997		version 300 es
12998		values
12999		{
13000			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) ];
13001			input float in1 = [ 0.0 | 36.8125 | 3.5 | -0.5 | -8.25 | 2.0 | 1.0 | -20.125 ];
13002			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) ];
13003			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) ];
13004		}
13005
13006		both ""
13007			#version 300 es
13008			precision mediump float;
13009			precision mediump int;
13010
13011			${DECLARATIONS}
13012
13013			void main()
13014			{
13015				${SETUP}
13016				out0 = mat2x3(in0, in1, in2);
13017				${OUTPUT}
13018			}
13019		""
13020	end
13021
13022	case vec3_vec3_vec2_to_mat2x4
13023		version 300 es
13024		values
13025		{
13026			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) ];
13027			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) ];
13028			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) ];
13029			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) ];
13030		}
13031
13032		both ""
13033			#version 300 es
13034			precision mediump float;
13035			precision mediump int;
13036
13037			${DECLARATIONS}
13038
13039			void main()
13040			{
13041				${SETUP}
13042				out0 = mat2x4(in0, in1, in2);
13043				${OUTPUT}
13044			}
13045		""
13046	end
13047
13048	case ivec3_ivec3_ivec2_to_mat2x4
13049		version 300 es
13050		values
13051		{
13052			input ivec3 in0 = [ ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
13053			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
13054			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, 64) ];
13055			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) ];
13056		}
13057
13058		both ""
13059			#version 300 es
13060			precision mediump float;
13061			precision mediump int;
13062
13063			${DECLARATIONS}
13064
13065			void main()
13066			{
13067				${SETUP}
13068				out0 = mat2x4(in0, in1, in2);
13069				${OUTPUT}
13070			}
13071		""
13072	end
13073
13074	case vec2_ivec2_float_float_int_bool_to_mat2x4
13075		version 300 es
13076		values
13077		{
13078			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) ];
13079			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) ];
13080			input float in2 = [ -8.25 | -0.5 | 3.5 | 36.8125 | 0.0 | 0.0 | 2.0 | -20.125 | 1.0 | 1.0 ];
13081			input float in3 = [ 1.0 | 2.0 | -0.5 | 3.5 | 36.8125 | -8.25 | 1.0 | 0.0 | 0.0 | -20.125 ];
13082			input int in4 = [ 255 | 8 | 11 | -12 | -192 | 0 | 2 | 1 | -66 | 5 ];
13083			input bool in5 = [ true | false | false | true | false | true | true | false | true | false ];
13084			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) ];
13085		}
13086
13087		both ""
13088			#version 300 es
13089			precision mediump float;
13090			precision mediump int;
13091
13092			${DECLARATIONS}
13093
13094			void main()
13095			{
13096				${SETUP}
13097				out0 = mat2x4(in0, in1, in2, in3, in4, in5);
13098				${OUTPUT}
13099			}
13100		""
13101	end
13102
13103	case bool_float_int_vec2_bool_bvec2_to_mat2x4
13104		version 300 es
13105		values
13106		{
13107			input bool in0 = [ false | true | false | true | true | true | false | false | false | true ];
13108			input float in1 = [ 0.0 | -0.5 | -20.125 | -8.25 | 0.0 | 2.0 | 3.5 | 1.0 | 1.0 | 36.8125 ];
13109			input int in2 = [ 2 | 1 | 255 | 8 | -66 | 0 | -12 | 5 | -192 | 11 ];
13110			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) ];
13111			input bool in4 = [ true | false | false | true | false | false | true | true | true | false ];
13112			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) ];
13113			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) ];
13114		}
13115
13116		both ""
13117			#version 300 es
13118			precision mediump float;
13119			precision mediump int;
13120
13121			${DECLARATIONS}
13122
13123			void main()
13124			{
13125				${SETUP}
13126				out0 = mat2x4(in0, in1, in2, in3, in4, in5);
13127				${OUTPUT}
13128			}
13129		""
13130	end
13131
13132	case bool_bvec2_int_vec4_to_mat2x4
13133		version 300 es
13134		values
13135		{
13136			input bool in0 = [ true | true | true | false | false | false | false | false | true | true ];
13137			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) ];
13138			input int in2 = [ 8 | 1 | 5 | -66 | -192 | 11 | 255 | 0 | -12 | 2 ];
13139			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) ];
13140			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) ];
13141		}
13142
13143		both ""
13144			#version 300 es
13145			precision mediump float;
13146			precision mediump int;
13147
13148			${DECLARATIONS}
13149
13150			void main()
13151			{
13152				${SETUP}
13153				out0 = mat2x4(in0, in1, in2, in3);
13154				${OUTPUT}
13155			}
13156		""
13157	end
13158
13159	case float_bvec4_ivec2_bool_to_mat2x4
13160		version 300 es
13161		values
13162		{
13163			input float in0 = [ 0.0 | 3.5 | 2.0 | -8.25 | -20.125 | 36.8125 | 1.0 | -0.5 ];
13164			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) ];
13165			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) ];
13166			input bool in3 = [ true | true | false | true | false | false | false | true ];
13167			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) ];
13168		}
13169
13170		both ""
13171			#version 300 es
13172			precision mediump float;
13173			precision mediump int;
13174
13175			${DECLARATIONS}
13176
13177			void main()
13178			{
13179				${SETUP}
13180				out0 = mat2x4(in0, in1, in2, in3);
13181				${OUTPUT}
13182			}
13183		""
13184	end
13185
13186	case vec3_vec3_to_mat3x2
13187		version 300 es
13188		values
13189		{
13190			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) ];
13191			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) ];
13192			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) ];
13193		}
13194
13195		both ""
13196			#version 300 es
13197			precision mediump float;
13198			precision mediump int;
13199
13200			${DECLARATIONS}
13201
13202			void main()
13203			{
13204				${SETUP}
13205				out0 = mat3x2(in0, in1);
13206				${OUTPUT}
13207			}
13208		""
13209	end
13210
13211	case bvec3_bvec3_to_mat3x2
13212		version 300 es
13213		values
13214		{
13215			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
13216			input bvec3 in1 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, false) | bvec3(true, false, false) ];
13217			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) ];
13218		}
13219
13220		both ""
13221			#version 300 es
13222			precision mediump float;
13223			precision mediump int;
13224
13225			${DECLARATIONS}
13226
13227			void main()
13228			{
13229				${SETUP}
13230				out0 = mat3x2(in0, in1);
13231				${OUTPUT}
13232			}
13233		""
13234	end
13235
13236	case float_float_float_float_float_float_to_mat3x2
13237		version 300 es
13238		values
13239		{
13240			input float in0 = [ -8.25 | 36.8125 | -20.125 | -0.5 | 3.5 | 1.0 | 2.0 | 0.0 ];
13241			input float in1 = [ 2.0 | 3.5 | -20.125 | 36.8125 | 1.0 | 0.0 | -8.25 | -0.5 ];
13242			input float in2 = [ -0.5 | 2.0 | 1.0 | 0.0 | -8.25 | 36.8125 | -20.125 | 3.5 ];
13243			input float in3 = [ 36.8125 | 0.0 | 1.0 | -0.5 | 2.0 | 3.5 | -20.125 | -8.25 ];
13244			input float in4 = [ 36.8125 | 2.0 | 0.0 | -0.5 | 3.5 | -20.125 | -8.25 | 1.0 ];
13245			input float in5 = [ 0.0 | 36.8125 | -20.125 | -0.5 | 3.5 | 2.0 | 1.0 | -8.25 ];
13246			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) ];
13247		}
13248
13249		both ""
13250			#version 300 es
13251			precision mediump float;
13252			precision mediump int;
13253
13254			${DECLARATIONS}
13255
13256			void main()
13257			{
13258				${SETUP}
13259				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
13260				${OUTPUT}
13261			}
13262		""
13263	end
13264
13265	case int_int_int_int_int_int_to_mat3x2
13266		version 300 es
13267		values
13268		{
13269			input int in0 = [ 8 | -192 | 2 | 11 | 255 | -66 | 5 | -12 | 1 | 0 ];
13270			input int in1 = [ 1 | 2 | -12 | 5 | 0 | 255 | 8 | 11 | -192 | -66 ];
13271			input int in2 = [ -12 | 11 | 2 | 1 | 8 | -66 | -192 | 5 | 255 | 0 ];
13272			input int in3 = [ -192 | 0 | -12 | 11 | 1 | -66 | 8 | 255 | 2 | 5 ];
13273			input int in4 = [ -12 | 5 | 0 | -66 | 255 | 8 | -192 | 11 | 2 | 1 ];
13274			input int in5 = [ -66 | -12 | 8 | 2 | 255 | 0 | -192 | 11 | 1 | 5 ];
13275			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) ];
13276		}
13277
13278		both ""
13279			#version 300 es
13280			precision mediump float;
13281			precision mediump int;
13282
13283			${DECLARATIONS}
13284
13285			void main()
13286			{
13287				${SETUP}
13288				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
13289				${OUTPUT}
13290			}
13291		""
13292	end
13293
13294	case bool_bool_bool_bool_bool_bool_to_mat3x2
13295		version 300 es
13296		values
13297		{
13298			input bool in0 = [ true | false ];
13299			input bool in1 = [ false | true ];
13300			input bool in2 = [ false | true ];
13301			input bool in3 = [ false | true ];
13302			input bool in4 = [ false | true ];
13303			input bool in5 = [ false | true ];
13304			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) ];
13305		}
13306
13307		both ""
13308			#version 300 es
13309			precision mediump float;
13310			precision mediump int;
13311
13312			${DECLARATIONS}
13313
13314			void main()
13315			{
13316				${SETUP}
13317				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
13318				${OUTPUT}
13319			}
13320		""
13321	end
13322
13323	case bool_float_int_bool_float_int_to_mat3x2
13324		version 300 es
13325		values
13326		{
13327			input bool in0 = [ true | false | true | true | false | true | false | true | false | false ];
13328			input float in1 = [ -20.125 | 0.0 | 3.5 | 0.0 | 1.0 | -8.25 | 1.0 | 2.0 | 36.8125 | -0.5 ];
13329			input int in2 = [ 255 | -66 | 8 | -192 | 5 | 11 | 1 | 2 | 0 | -12 ];
13330			input bool in3 = [ true | false | false | true | false | true | true | false | false | true ];
13331			input float in4 = [ 0.0 | -20.125 | 1.0 | -8.25 | 0.0 | -0.5 | 2.0 | 3.5 | 1.0 | 36.8125 ];
13332			input int in5 = [ -192 | 8 | 2 | 255 | -66 | -12 | 11 | 0 | 5 | 1 ];
13333			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) ];
13334		}
13335
13336		both ""
13337			#version 300 es
13338			precision mediump float;
13339			precision mediump int;
13340
13341			${DECLARATIONS}
13342
13343			void main()
13344			{
13345				${SETUP}
13346				out0 = mat3x2(in0, in1, in2, in3, in4, in5);
13347				${OUTPUT}
13348			}
13349		""
13350	end
13351
13352	case vec3_ivec3_to_mat3x2
13353		version 300 es
13354		values
13355		{
13356			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) ];
13357			input ivec3 in1 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
13358			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) ];
13359		}
13360
13361		both ""
13362			#version 300 es
13363			precision mediump float;
13364			precision mediump int;
13365
13366			${DECLARATIONS}
13367
13368			void main()
13369			{
13370				${SETUP}
13371				out0 = mat3x2(in0, in1);
13372				${OUTPUT}
13373			}
13374		""
13375	end
13376
13377	case vec2_bvec4_to_mat3x2
13378		version 300 es
13379		values
13380		{
13381			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) ];
13382			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) ];
13383			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) ];
13384		}
13385
13386		both ""
13387			#version 300 es
13388			precision mediump float;
13389			precision mediump int;
13390
13391			${DECLARATIONS}
13392
13393			void main()
13394			{
13395				${SETUP}
13396				out0 = mat3x2(in0, in1);
13397				${OUTPUT}
13398			}
13399		""
13400	end
13401
13402	case bvec3_float_ivec2_to_mat3x2
13403		version 300 es
13404		values
13405		{
13406			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) ];
13407			input float in1 = [ -8.25 | 1.0 | 2.0 | -0.5 | -20.125 | 0.0 | 36.8125 | 3.5 ];
13408			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) ];
13409			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) ];
13410		}
13411
13412		both ""
13413			#version 300 es
13414			precision mediump float;
13415			precision mediump int;
13416
13417			${DECLARATIONS}
13418
13419			void main()
13420			{
13421				${SETUP}
13422				out0 = mat3x2(in0, in1, in2);
13423				${OUTPUT}
13424			}
13425		""
13426	end
13427
13428	case vec3_float_bvec2_to_mat3x2
13429		version 300 es
13430		values
13431		{
13432			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) ];
13433			input float in1 = [ -8.25 | 36.8125 | -0.5 | 3.5 | 2.0 | -20.125 | 0.0 | 1.0 ];
13434			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) ];
13435			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) ];
13436		}
13437
13438		both ""
13439			#version 300 es
13440			precision mediump float;
13441			precision mediump int;
13442
13443			${DECLARATIONS}
13444
13445			void main()
13446			{
13447				${SETUP}
13448				out0 = mat3x2(in0, in1, in2);
13449				${OUTPUT}
13450			}
13451		""
13452	end
13453
13454	case vec3_vec3_vec3_to_mat3
13455		version 300 es
13456		values
13457		{
13458			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) ];
13459			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) ];
13460			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) ];
13461			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) ];
13462		}
13463
13464		both ""
13465			#version 300 es
13466			precision mediump float;
13467			precision mediump int;
13468
13469			${DECLARATIONS}
13470
13471			void main()
13472			{
13473				${SETUP}
13474				out0 = mat3(in0, in1, in2);
13475				${OUTPUT}
13476			}
13477		""
13478	end
13479
13480	case ivec3_ivec3_ivec3_to_mat3
13481		version 300 es
13482		values
13483		{
13484			input ivec3 in0 = [ ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
13485			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) | ivec3(1, 1, 1) ];
13486			input ivec3 in2 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, -2, -4) | ivec3(0, 0, 0) ];
13487			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) ];
13488		}
13489
13490		both ""
13491			#version 300 es
13492			precision mediump float;
13493			precision mediump int;
13494
13495			${DECLARATIONS}
13496
13497			void main()
13498			{
13499				${SETUP}
13500				out0 = mat3(in0, in1, in2);
13501				${OUTPUT}
13502			}
13503		""
13504	end
13505
13506	case vec2_ivec2_float_float_int_bool_bool_to_mat3
13507		version 300 es
13508		values
13509		{
13510			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) ];
13511			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) ];
13512			input float in2 = [ -0.5 | 3.5 | 0.0 | -20.125 | 1.0 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 ];
13513			input float in3 = [ 3.5 | 0.0 | -20.125 | 36.8125 | 2.0 | -8.25 | -0.5 | 1.0 | 0.0 | 1.0 ];
13514			input int in4 = [ 0 | 11 | 5 | -192 | 8 | -66 | 1 | 2 | 255 | -12 ];
13515			input bool in5 = [ true | true | true | false | true | false | false | false | true | false ];
13516			input bool in6 = [ false | false | true | false | false | false | true | true | true | true ];
13517			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) ];
13518		}
13519
13520		both ""
13521			#version 300 es
13522			precision mediump float;
13523			precision mediump int;
13524
13525			${DECLARATIONS}
13526
13527			void main()
13528			{
13529				${SETUP}
13530				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
13531				${OUTPUT}
13532			}
13533		""
13534	end
13535
13536	case bool_float_int_vec2_bool_bvec2_float_to_mat3
13537		version 300 es
13538		values
13539		{
13540			input bool in0 = [ false | true | true | true | true | true | false | false | false | false ];
13541			input float in1 = [ -8.25 | 1.0 | -0.5 | 36.8125 | 0.0 | 3.5 | -20.125 | 1.0 | 0.0 | 2.0 ];
13542			input int in2 = [ 8 | -66 | 5 | 1 | 0 | 2 | -12 | -192 | 11 | 255 ];
13543			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) ];
13544			input bool in4 = [ true | false | true | false | false | true | true | false | true | false ];
13545			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) ];
13546			input float in6 = [ -0.5 | 1.0 | 1.0 | 0.0 | 36.8125 | 2.0 | 0.0 | 3.5 | -20.125 | -8.25 ];
13547			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) ];
13548		}
13549
13550		both ""
13551			#version 300 es
13552			precision mediump float;
13553			precision mediump int;
13554
13555			${DECLARATIONS}
13556
13557			void main()
13558			{
13559				${SETUP}
13560				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
13561				${OUTPUT}
13562			}
13563		""
13564	end
13565
13566	case bool_bvec2_int_vec4_bool_to_mat3
13567		version 300 es
13568		values
13569		{
13570			input bool in0 = [ true | false | true | true | false | false | true | false | false | true ];
13571			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) ];
13572			input int in2 = [ -192 | 2 | 0 | 5 | 1 | -66 | 11 | -12 | 8 | 255 ];
13573			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) ];
13574			input bool in4 = [ false | true | false | true | false | false | false | true | true | true ];
13575			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) ];
13576		}
13577
13578		both ""
13579			#version 300 es
13580			precision mediump float;
13581			precision mediump int;
13582
13583			${DECLARATIONS}
13584
13585			void main()
13586			{
13587				${SETUP}
13588				out0 = mat3(in0, in1, in2, in3, in4);
13589				${OUTPUT}
13590			}
13591		""
13592	end
13593
13594	case float_bvec4_ivec2_bool_bool_to_mat3
13595		version 300 es
13596		values
13597		{
13598			input float in0 = [ -8.25 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -20.125 | 0.0 ];
13599			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) ];
13600			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) ];
13601			input bool in3 = [ false | true | false | true | true | false | true | false ];
13602			input bool in4 = [ true | false | false | false | true | true | false | true ];
13603			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) ];
13604		}
13605
13606		both ""
13607			#version 300 es
13608			precision mediump float;
13609			precision mediump int;
13610
13611			${DECLARATIONS}
13612
13613			void main()
13614			{
13615				${SETUP}
13616				out0 = mat3(in0, in1, in2, in3, in4);
13617				${OUTPUT}
13618			}
13619		""
13620	end
13621
13622	case vec4_vec4_vec4_to_mat3x4
13623		version 300 es
13624		values
13625		{
13626			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) ];
13627			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) ];
13628			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) ];
13629			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) ];
13630		}
13631
13632		both ""
13633			#version 300 es
13634			precision mediump float;
13635			precision mediump int;
13636
13637			${DECLARATIONS}
13638
13639			void main()
13640			{
13641				${SETUP}
13642				out0 = mat3x4(in0, in1, in2);
13643				${OUTPUT}
13644			}
13645		""
13646	end
13647
13648	case ivec4_ivec4_ivec4_to_mat3x4
13649		version 300 es
13650		values
13651		{
13652			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) ];
13653			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) ];
13654			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) ];
13655			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) ];
13656		}
13657
13658		both ""
13659			#version 300 es
13660			precision mediump float;
13661			precision mediump int;
13662
13663			${DECLARATIONS}
13664
13665			void main()
13666			{
13667				${SETUP}
13668				out0 = mat3x4(in0, in1, in2);
13669				${OUTPUT}
13670			}
13671		""
13672	end
13673
13674	case vec2_ivec2_float_float_float_int_int_bool_bool_bool_to_mat3x4
13675		version 300 es
13676		values
13677		{
13678			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) ];
13679			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) ];
13680			input float in2 = [ 1.0 | -8.25 | 2.0 | 3.5 | -20.125 | 36.8125 | 0.0 | 1.0 | -0.5 | 0.0 ];
13681			input float in3 = [ -0.5 | 36.8125 | 1.0 | 1.0 | 0.0 | 3.5 | 2.0 | 0.0 | -8.25 | -20.125 ];
13682			input float in4 = [ -8.25 | 1.0 | 1.0 | 0.0 | 2.0 | 36.8125 | 0.0 | -20.125 | 3.5 | -0.5 ];
13683			input int in5 = [ 11 | 2 | 8 | 5 | 0 | -192 | 1 | -12 | 255 | -66 ];
13684			input int in6 = [ -12 | 5 | 8 | 1 | 0 | 255 | 11 | -192 | -66 | 2 ];
13685			input bool in7 = [ true | true | true | false | false | false | true | false | true | false ];
13686			input bool in8 = [ true | true | true | false | true | false | true | false | false | false ];
13687			input bool in9 = [ true | false | true | false | true | true | false | false | false | true ];
13688			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) ];
13689		}
13690
13691		both ""
13692			#version 300 es
13693			precision mediump float;
13694			precision mediump int;
13695
13696			${DECLARATIONS}
13697
13698			void main()
13699			{
13700				${SETUP}
13701				out0 = mat3x4(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9);
13702				${OUTPUT}
13703			}
13704		""
13705	end
13706
13707	case bool_float_int_vec3_bool_bvec3_float_bool_to_mat3x4
13708		version 300 es
13709		values
13710		{
13711			input bool in0 = [ false | false | true | true | true | true | false | false | false | true ];
13712			input float in1 = [ 36.8125 | -8.25 | 1.0 | 0.0 | 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -20.125 ];
13713			input int in2 = [ -66 | -192 | 255 | 8 | 0 | -12 | 5 | 2 | 11 | 1 ];
13714			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) ];
13715			input bool in4 = [ false | true | true | true | false | false | true | true | false | false ];
13716			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) ];
13717			input float in6 = [ -8.25 | 1.0 | -0.5 | 36.8125 | 0.0 | 2.0 | -20.125 | 1.0 | 0.0 | 3.5 ];
13718			input bool in7 = [ true | false | false | true | true | false | true | false | false | true ];
13719			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) ];
13720		}
13721
13722		both ""
13723			#version 300 es
13724			precision mediump float;
13725			precision mediump int;
13726
13727			${DECLARATIONS}
13728
13729			void main()
13730			{
13731				${SETUP}
13732				out0 = mat3x4(in0, in1, in2, in3, in4, in5, in6, in7);
13733				${OUTPUT}
13734			}
13735		""
13736	end
13737
13738	case bool_bvec4_int_vec4_bool_float_to_mat3x4
13739		version 300 es
13740		values
13741		{
13742			input bool in0 = [ false | true | true | true | false | false | false | true | false | true ];
13743			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) ];
13744			input int in2 = [ 255 | 2 | -192 | -12 | 11 | 1 | 0 | -66 | 8 | 5 ];
13745			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) ];
13746			input bool in4 = [ true | true | true | false | false | false | true | true | false | false ];
13747			input float in5 = [ 36.8125 | 2.0 | -8.25 | 0.0 | 1.0 | 1.0 | -0.5 | 3.5 | 0.0 | -20.125 ];
13748			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) ];
13749		}
13750
13751		both ""
13752			#version 300 es
13753			precision mediump float;
13754			precision mediump int;
13755
13756			${DECLARATIONS}
13757
13758			void main()
13759			{
13760				${SETUP}
13761				out0 = mat3x4(in0, in1, in2, in3, in4, in5);
13762				${OUTPUT}
13763			}
13764		""
13765	end
13766
13767	case float_bvec4_ivec4_bool_bool_int_to_mat3x4
13768		version 300 es
13769		values
13770		{
13771			input float in0 = [ 36.8125 | 1.0 | 0.0 | 3.5 | -8.25 | -20.125 | 2.0 | 0.0 | 1.0 | -0.5 ];
13772			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) ];
13773			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) ];
13774			input bool in3 = [ true | false | true | true | false | true | true | false | false | false ];
13775			input bool in4 = [ true | false | false | true | true | false | false | false | true | true ];
13776			input int in5 = [ 1 | 5 | -12 | 8 | -192 | 2 | -66 | 255 | 11 | 0 ];
13777			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) ];
13778		}
13779
13780		both ""
13781			#version 300 es
13782			precision mediump float;
13783			precision mediump int;
13784
13785			${DECLARATIONS}
13786
13787			void main()
13788			{
13789				${SETUP}
13790				out0 = mat3x4(in0, in1, in2, in3, in4, in5);
13791				${OUTPUT}
13792			}
13793		""
13794	end
13795
13796	case vec3_vec3_vec2_to_mat4x2
13797		version 300 es
13798		values
13799		{
13800			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) ];
13801			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) ];
13802			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) ];
13803			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) ];
13804		}
13805
13806		both ""
13807			#version 300 es
13808			precision mediump float;
13809			precision mediump int;
13810
13811			${DECLARATIONS}
13812
13813			void main()
13814			{
13815				${SETUP}
13816				out0 = mat4x2(in0, in1, in2);
13817				${OUTPUT}
13818			}
13819		""
13820	end
13821
13822	case ivec3_ivec3_ivec2_to_mat4x2
13823		version 300 es
13824		values
13825		{
13826			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
13827			input ivec3 in1 = [ ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) ];
13828			input ivec2 in2 = [ ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) ];
13829			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) ];
13830		}
13831
13832		both ""
13833			#version 300 es
13834			precision mediump float;
13835			precision mediump int;
13836
13837			${DECLARATIONS}
13838
13839			void main()
13840			{
13841				${SETUP}
13842				out0 = mat4x2(in0, in1, in2);
13843				${OUTPUT}
13844			}
13845		""
13846	end
13847
13848	case vec2_ivec2_float_float_int_bool_to_mat4x2
13849		version 300 es
13850		values
13851		{
13852			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) ];
13853			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) ];
13854			input float in2 = [ 3.5 | -8.25 | 2.0 | 36.8125 | -0.5 | 1.0 | 1.0 | 0.0 | -20.125 | 0.0 ];
13855			input float in3 = [ 0.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | 2.0 | 0.0 | -20.125 | 1.0 ];
13856			input int in4 = [ -12 | -66 | 11 | 5 | 8 | 255 | -192 | 2 | 1 | 0 ];
13857			input bool in5 = [ true | true | false | true | false | true | false | true | false | false ];
13858			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) ];
13859		}
13860
13861		both ""
13862			#version 300 es
13863			precision mediump float;
13864			precision mediump int;
13865
13866			${DECLARATIONS}
13867
13868			void main()
13869			{
13870				${SETUP}
13871				out0 = mat4x2(in0, in1, in2, in3, in4, in5);
13872				${OUTPUT}
13873			}
13874		""
13875	end
13876
13877	case bool_float_int_vec2_bool_bvec2_to_mat4x2
13878		version 300 es
13879		values
13880		{
13881			input bool in0 = [ false | false | true | true | true | false | false | true | false | true ];
13882			input float in1 = [ 36.8125 | -8.25 | 3.5 | 1.0 | 2.0 | -0.5 | 0.0 | 1.0 | -20.125 | 0.0 ];
13883			input int in2 = [ -66 | 1 | -192 | 2 | 11 | 0 | 255 | 8 | 5 | -12 ];
13884			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) ];
13885			input bool in4 = [ true | false | false | false | false | true | true | true | false | true ];
13886			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) ];
13887			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) ];
13888		}
13889
13890		both ""
13891			#version 300 es
13892			precision mediump float;
13893			precision mediump int;
13894
13895			${DECLARATIONS}
13896
13897			void main()
13898			{
13899				${SETUP}
13900				out0 = mat4x2(in0, in1, in2, in3, in4, in5);
13901				${OUTPUT}
13902			}
13903		""
13904	end
13905
13906	case bool_bvec2_int_vec4_to_mat4x2
13907		version 300 es
13908		values
13909		{
13910			input bool in0 = [ false | false | true | false | true | false | true | true | true | false ];
13911			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) ];
13912			input int in2 = [ -12 | 8 | 2 | 255 | 5 | -192 | 0 | 11 | 1 | -66 ];
13913			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) ];
13914			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) ];
13915		}
13916
13917		both ""
13918			#version 300 es
13919			precision mediump float;
13920			precision mediump int;
13921
13922			${DECLARATIONS}
13923
13924			void main()
13925			{
13926				${SETUP}
13927				out0 = mat4x2(in0, in1, in2, in3);
13928				${OUTPUT}
13929			}
13930		""
13931	end
13932
13933	case float_bvec4_ivec2_bool_to_mat4x2
13934		version 300 es
13935		values
13936		{
13937			input float in0 = [ 1.0 | -8.25 | -20.125 | 3.5 | -0.5 | 2.0 | 36.8125 | 0.0 ];
13938			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) ];
13939			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) ];
13940			input bool in3 = [ true | true | false | true | true | false | false | false ];
13941			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) ];
13942		}
13943
13944		both ""
13945			#version 300 es
13946			precision mediump float;
13947			precision mediump int;
13948
13949			${DECLARATIONS}
13950
13951			void main()
13952			{
13953				${SETUP}
13954				out0 = mat4x2(in0, in1, in2, in3);
13955				${OUTPUT}
13956			}
13957		""
13958	end
13959
13960	case vec4_vec4_vec4_to_mat4x3
13961		version 300 es
13962		values
13963		{
13964			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) ];
13965			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) ];
13966			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) ];
13967			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) ];
13968		}
13969
13970		both ""
13971			#version 300 es
13972			precision mediump float;
13973			precision mediump int;
13974
13975			${DECLARATIONS}
13976
13977			void main()
13978			{
13979				${SETUP}
13980				out0 = mat4x3(in0, in1, in2);
13981				${OUTPUT}
13982			}
13983		""
13984	end
13985
13986	case ivec4_ivec4_ivec4_to_mat4x3
13987		version 300 es
13988		values
13989		{
13990			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) ];
13991			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) ];
13992			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) ];
13993			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) ];
13994		}
13995
13996		both ""
13997			#version 300 es
13998			precision mediump float;
13999			precision mediump int;
14000
14001			${DECLARATIONS}
14002
14003			void main()
14004			{
14005				${SETUP}
14006				out0 = mat4x3(in0, in1, in2);
14007				${OUTPUT}
14008			}
14009		""
14010	end
14011
14012	case vec2_ivec2_float_float_float_int_int_bool_bool_bool_to_mat4x3
14013		version 300 es
14014		values
14015		{
14016			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) ];
14017			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) ];
14018			input float in2 = [ -20.125 | 3.5 | 2.0 | -0.5 | -8.25 | 0.0 | 1.0 | 0.0 | 1.0 | 36.8125 ];
14019			input float in3 = [ 0.0 | -8.25 | 36.8125 | 1.0 | 0.0 | -20.125 | 3.5 | 2.0 | -0.5 | 1.0 ];
14020			input float in4 = [ 0.0 | 1.0 | 3.5 | -20.125 | 0.0 | 36.8125 | 1.0 | -8.25 | 2.0 | -0.5 ];
14021			input int in5 = [ 2 | 8 | 1 | -192 | 0 | -12 | 11 | 255 | 5 | -66 ];
14022			input int in6 = [ 2 | -12 | 5 | 8 | 11 | 255 | 0 | -66 | 1 | -192 ];
14023			input bool in7 = [ true | true | false | true | false | false | false | true | false | true ];
14024			input bool in8 = [ true | false | false | true | true | false | true | true | false | false ];
14025			input bool in9 = [ false | true | false | false | false | false | true | true | true | true ];
14026			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) ];
14027		}
14028
14029		both ""
14030			#version 300 es
14031			precision mediump float;
14032			precision mediump int;
14033
14034			${DECLARATIONS}
14035
14036			void main()
14037			{
14038				${SETUP}
14039				out0 = mat4x3(in0, in1, in2, in3, in4, in5, in6, in7, in8, in9);
14040				${OUTPUT}
14041			}
14042		""
14043	end
14044
14045	case bool_float_int_vec3_bool_bvec3_float_bool_to_mat4x3
14046		version 300 es
14047		values
14048		{
14049			input bool in0 = [ true | true | false | false | true | true | true | false | false | false ];
14050			input float in1 = [ -8.25 | 2.0 | 1.0 | -0.5 | 0.0 | 0.0 | 36.8125 | -20.125 | 3.5 | 1.0 ];
14051			input int in2 = [ 255 | 2 | 11 | 1 | 8 | -192 | 0 | -66 | -12 | 5 ];
14052			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) ];
14053			input bool in4 = [ true | true | false | false | true | false | false | false | true | true ];
14054			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) ];
14055			input float in6 = [ 1.0 | 0.0 | -0.5 | 36.8125 | 1.0 | -20.125 | 2.0 | 0.0 | -8.25 | 3.5 ];
14056			input bool in7 = [ true | true | false | false | false | false | true | true | false | true ];
14057			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) ];
14058		}
14059
14060		both ""
14061			#version 300 es
14062			precision mediump float;
14063			precision mediump int;
14064
14065			${DECLARATIONS}
14066
14067			void main()
14068			{
14069				${SETUP}
14070				out0 = mat4x3(in0, in1, in2, in3, in4, in5, in6, in7);
14071				${OUTPUT}
14072			}
14073		""
14074	end
14075
14076	case bool_bvec4_int_vec4_bool_float_to_mat4x3
14077		version 300 es
14078		values
14079		{
14080			input bool in0 = [ true | true | true | false | true | false | false | true | false | false ];
14081			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) ];
14082			input int in2 = [ 5 | 11 | 0 | -192 | -66 | 255 | 1 | -12 | 8 | 2 ];
14083			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) ];
14084			input bool in4 = [ false | true | true | false | true | false | true | true | false | false ];
14085			input float in5 = [ -20.125 | 0.0 | 1.0 | -0.5 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 ];
14086			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) ];
14087		}
14088
14089		both ""
14090			#version 300 es
14091			precision mediump float;
14092			precision mediump int;
14093
14094			${DECLARATIONS}
14095
14096			void main()
14097			{
14098				${SETUP}
14099				out0 = mat4x3(in0, in1, in2, in3, in4, in5);
14100				${OUTPUT}
14101			}
14102		""
14103	end
14104
14105	case float_bvec4_ivec4_bool_bool_int_to_mat4x3
14106		version 300 es
14107		values
14108		{
14109			input float in0 = [ 36.8125 | -0.5 | 3.5 | 2.0 | 1.0 | -20.125 | 0.0 | 0.0 | -8.25 | 1.0 ];
14110			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) ];
14111			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) ];
14112			input bool in3 = [ false | true | false | true | false | false | false | true | true | true ];
14113			input bool in4 = [ false | true | false | true | false | true | false | false | true | true ];
14114			input int in5 = [ 2 | 1 | 8 | 11 | 255 | 5 | 0 | -66 | -192 | -12 ];
14115			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) ];
14116		}
14117
14118		both ""
14119			#version 300 es
14120			precision mediump float;
14121			precision mediump int;
14122
14123			${DECLARATIONS}
14124
14125			void main()
14126			{
14127				${SETUP}
14128				out0 = mat4x3(in0, in1, in2, in3, in4, in5);
14129				${OUTPUT}
14130			}
14131		""
14132	end
14133
14134	case vec4_vec4_vec4_vec4_to_mat4
14135		version 300 es
14136		values
14137		{
14138			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) ];
14139			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) ];
14140			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) ];
14141			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) ];
14142			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) ];
14143		}
14144
14145		both ""
14146			#version 300 es
14147			precision mediump float;
14148			precision mediump int;
14149
14150			${DECLARATIONS}
14151
14152			void main()
14153			{
14154				${SETUP}
14155				out0 = mat4(in0, in1, in2, in3);
14156				${OUTPUT}
14157			}
14158		""
14159	end
14160
14161	case ivec4_ivec4_ivec4_ivec4_to_mat4
14162		version 300 es
14163		values
14164		{
14165			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) ];
14166			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) ];
14167			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) ];
14168			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) ];
14169			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) ];
14170		}
14171
14172		both ""
14173			#version 300 es
14174			precision mediump float;
14175			precision mediump int;
14176
14177			${DECLARATIONS}
14178
14179			void main()
14180			{
14181				${SETUP}
14182				out0 = mat4(in0, in1, in2, in3);
14183				${OUTPUT}
14184			}
14185		""
14186	end
14187
14188	case bvec4_bvec4_bvec4_bvec4_to_mat4
14189		version 300 es
14190		values
14191		{
14192			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) ];
14193			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) ];
14194			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) ];
14195			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) ];
14196			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) ];
14197		}
14198
14199		both ""
14200			#version 300 es
14201			precision mediump float;
14202			precision mediump int;
14203
14204			${DECLARATIONS}
14205
14206			void main()
14207			{
14208				${SETUP}
14209				out0 = mat4(in0, in1, in2, in3);
14210				${OUTPUT}
14211			}
14212		""
14213	end
14214
14215	case float_ivec3_bvec3_vec4_ivec2_float_vec2_to_mat4
14216		version 300 es
14217		values
14218		{
14219			input float in0 = [ 2.0 | 1.0 | 3.5 | 0.0 | -20.125 | 36.8125 | -0.5 | -8.25 ];
14220			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) ];
14221			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) ];
14222			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) ];
14223			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) ];
14224			input float in5 = [ 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 | -20.125 | 1.0 | -0.5 ];
14225			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) ];
14226			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) ];
14227		}
14228
14229		both ""
14230			#version 300 es
14231			precision mediump float;
14232			precision mediump int;
14233
14234			${DECLARATIONS}
14235
14236			void main()
14237			{
14238				${SETUP}
14239				out0 = mat4(in0, in1, in2, in3, in4, in5, in6);
14240				${OUTPUT}
14241			}
14242		""
14243	end
14244
14245
14246end # matrix_combine
14247