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