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