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