xref: /aosp_15_r20/external/deqp/data/gles3/shaders/conversions.test (revision 35238bce31c2a825756842865a792f8cf7f89930)
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