Home | History | Annotate | Download | only in shaders
      1 # WARNING: This file is auto-generated. Do NOT modify it manually, but rather
      2 # modify the generating script file. Otherwise changes will be lost!
      3 
      4 group 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 
    391 end # scalar_to_scalar
    392 group 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 
   1547 end # scalar_to_vector
   1548 group 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 
   2703 end # vector_to_scalar
   2704 group 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 
   3763 end # vector_illegal
   3764 group 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 
   6071 end # vector_to_vector
   6072 group 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 
   6939 end # scalar_to_matrix
   6940 group 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 
   8887 end # matrix_to_matrix
   8888 group 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 
   12363 end # vector_combine
   12364 group 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 
   14246 end # matrix_combine
   14247