13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry# modify the generating script file. Otherwise changes will be lost!
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup vector_swizzles "Vector Swizzles"
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_x
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_xx
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xx;
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_xy
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xy;
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_yx
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yx;
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_yxy
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_xyxx
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_yyyy
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_s
1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_ss
1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ss;
1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_st
1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.st;
2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_ts
2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ts;
2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_tst
2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_stss
2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_tttt
2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
2923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
2983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_r
3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
3033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
3153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
3163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
3173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
3183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
3193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
3203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_rr
3223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
3233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
3243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
3273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
3293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
3303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
3323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
3343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
3353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
3363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rr;
3373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
3383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
3393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
3403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
3413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_rg
3433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
3443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
3453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
3483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
3503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
3513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
3533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
3553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
3563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
3573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rg;
3583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
3593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
3603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
3613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
3623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_gr
3643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
3653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
3663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
3693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
3713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
3723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
3743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
3763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
3773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
3783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gr;
3793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
3803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
3813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
3823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
3833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_grg
3853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
3863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
3873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
3893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
3903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
3923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
3933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
3953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
3973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
3983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
3993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
4003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
4013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
4023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
4033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
4043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_rgrr
4063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
4073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
4083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
4113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
4133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
4143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
4163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
4183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
4193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
4203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
4213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
4223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
4233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
4243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
4253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec2_gggg
4273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
4283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
4293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
4323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
4343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
4353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
4373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
4393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
4403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
4413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
4423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
4433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
4443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
4453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
4463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_x
4483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
4493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
4503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
4523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
4533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
4553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
4563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
4583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
4603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
4613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
4623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
4633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
4643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
4653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
4663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
4673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_z
4693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
4703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
4713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
4733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
4743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
4763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
4773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
4793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
4813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
4823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
4833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.z;
4843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
4853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
4863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
4873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
4883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_xz
4903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
4913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
4923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
4943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
4953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
4973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
4983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
5003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
5023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
5033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
5043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xz;
5053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
5063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
5073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
5083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
5093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_zz
5113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
5123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
5133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
5163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
5183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
5193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
5213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
5233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
5243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
5253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zz;
5263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
5273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
5283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
5293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
5303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_xyz
5323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
5333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
5343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
5373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
5393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
5403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
5423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
5443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
5453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
5463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyz;
5473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
5483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
5493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
5503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
5513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_zyx
5533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
5543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
5553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
5583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
5603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
5613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
5633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
5653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
5663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
5673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zyx;
5683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
5693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
5703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
5713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
5723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_xxx
5743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
5753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
5763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
5793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
5813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
5823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
5843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
5863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
5873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
5883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxx;
5893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
5903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
5913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
5923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
5933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_zzz
5953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
5963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
5973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
5993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
6003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
6023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
6033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
6053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
6073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
6083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
6093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzz;
6103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
6113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
6123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
6133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
6143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_zzy
6163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
6173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
6183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
6213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
6233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
6243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
6263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
6283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
6293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
6303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzy;
6313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
6323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
6333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
6343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
6353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_yxy
6373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
6383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
6393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
6423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
6443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
6453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
6473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
6493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
6503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
6513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
6523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
6533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
6543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
6553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
6563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_xzx
6583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
6593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
6603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
6633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
6653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
6663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
6683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
6703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
6713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
6723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xzx;
6733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
6743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
6753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
6763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
6773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_xyyx
6793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
6803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
6813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
6833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
6843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
6863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
6873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
6893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
6913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
6923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
6933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyyx;
6943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
6953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
6963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
6973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
6983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_zzzz
7003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
7013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
7023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
7053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
7073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
7083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
7103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
7123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
7133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
7143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzzz;
7153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
7163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
7173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
7183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
7193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_s
7213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
7223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
7233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
7253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
7263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
7283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
7293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
7313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
7333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
7343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
7353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
7363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
7373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
7383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
7393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
7403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_p
7423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
7433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
7443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
7463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
7473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
7493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
7503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
7523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
7543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
7553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
7563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.p;
7573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
7583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
7593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
7603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
7613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_sp
7633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
7643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
7653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
7683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
7703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
7713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
7733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
7753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
7763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
7773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sp;
7783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
7793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
7803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
7813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
7823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_pp
7843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
7853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
7863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
7883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
7893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
7913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
7923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
7943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
7963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
7973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
7983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pp;
7993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
8003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
8013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
8023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
8033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_stp
8053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
8063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
8073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
8103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
8123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
8133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
8153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
8173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
8183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
8193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stp;
8203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
8213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
8223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
8233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
8243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_pts
8263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
8273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
8283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
8313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
8333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
8343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
8363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
8383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
8393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
8403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pts;
8413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
8423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
8433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
8443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
8453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_sss
8473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
8483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
8493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
8523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
8543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
8553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
8573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
8593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
8603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
8613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sss;
8623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
8633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
8643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
8653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
8663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_ppp
8683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
8693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
8703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
8733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
8753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
8763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
8783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
8803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
8813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
8823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppp;
8833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
8843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
8853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
8863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
8873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_ppt
8893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
8903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
8913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
8933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
8943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
8963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
8973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
8993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
9013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
9023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
9033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppt;
9043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
9053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
9063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
9073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
9083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_tst
9103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
9113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
9123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
9153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
9173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
9183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
9203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
9223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
9233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
9243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
9253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
9263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
9273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
9283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
9293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_sps
9313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
9323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
9333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
9363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
9383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
9393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
9413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
9433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
9443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
9453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sps;
9463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
9473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
9483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
9493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
9503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_stts
9523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
9533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
9543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
9573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
9593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
9603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
9623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
9643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
9653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
9663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stts;
9673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
9683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
9693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
9703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
9713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_pppp
9733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
9743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
9753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
9783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
9803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
9813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
9833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
9853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
9863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
9873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pppp;
9883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
9893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
9903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
9913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
9923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_r
9943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
9953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
9963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
9973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
9983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
9993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
10013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
10023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
10043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
10063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
10073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
10083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
10093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
10103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
10113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
10123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
10133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_b
10153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
10163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
10173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.75 | 1.125 | -4.875 | -51.0 | 0.0526315789474 ];
10193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
10203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
10223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
10233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
10253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
10273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
10283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
10293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.b;
10303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
10313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
10323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
10333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
10343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_rb
10363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
10373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
10383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
10413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
10433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
10443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
10463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
10483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
10493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
10503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rb;
10513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
10523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
10533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
10543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
10553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_bb
10573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
10583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
10593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
10623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
10643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
10653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
10673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
10693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
10703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
10713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bb;
10723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
10733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
10743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
10753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
10763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_rgb
10783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
10793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
10803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
10823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
10833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
10853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
10863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
10883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
10903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
10913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
10923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgb;
10933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
10943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
10953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
10963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
10973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_bgr
10993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
11003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
11013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
11043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
11063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
11073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
11093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
11113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
11123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
11133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bgr;
11143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
11153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
11163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
11173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
11183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_rrr
11203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
11213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
11223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
11253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
11273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
11283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
11303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
11323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
11333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
11343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrr;
11353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
11363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
11373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
11383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
11393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_bbb
11413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
11423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
11433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
11463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
11483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
11493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
11513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
11533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
11543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
11553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbb;
11563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
11573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
11583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
11593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
11603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_bbg
11623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
11633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
11643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
11673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
11693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
11703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
11723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
11743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
11753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
11763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbg;
11773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
11783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
11793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
11803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
11813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_grg
11833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
11843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
11853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
11873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
11883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
11903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
11913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
11933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
11953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
11963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
11973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
11983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
11993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
12003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
12013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
12023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_rbr
12043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
12053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
12063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
12093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
12113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
12123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
12143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
12163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
12173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
12183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rbr;
12193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
12203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
12213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
12223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
12233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_rggr
12253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
12263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
12273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
12303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
12323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
12333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
12353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
12373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
12383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
12393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rggr;
12403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
12413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
12423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
12433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
12443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec3_bbbb
12463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
12473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
12483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
12513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
12533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
12543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
12563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
12583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
12593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
12603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbbb;
12613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
12623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
12633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
12643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
12653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_x
12673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
12683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
12693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
12713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
12723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
12743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
12753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
12773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
12793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
12803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
12813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
12823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
12833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
12843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
12853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
12863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_w
12883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
12893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
12903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
12913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
12923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
12933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
12953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
12963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
12983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
13003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
13013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
13023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.w;
13033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
13043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
13053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
13063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
13073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wx
13093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
13103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
13113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
13143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
13163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
13173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
13193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
13213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
13223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
13233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wx;
13243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
13253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
13263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
13273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
13283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wz
13303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
13313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
13323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
13353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
13373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
13383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
13403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
13423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
13433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
13443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wz;
13453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
13463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
13473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
13483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
13493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_www
13513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
13523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
13533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
13563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
13583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
13593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
13613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
13633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
13643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
13653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.www;
13663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
13673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
13683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
13693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
13703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_yyw
13723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
13733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
13743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
13773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
13793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
13803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
13823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
13843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
13853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
13863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyw;
13873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
13883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
13893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
13903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
13913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wzy
13933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
13943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
13953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
13973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
13983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
14003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
14013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
14033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
14053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
14063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
14073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzy;
14083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
14093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
14103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
14113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
14123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_xyzw
14143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
14153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
14163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
14193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
14213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
14223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
14243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
14263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
14273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
14283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyzw;
14293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
14303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
14313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
14323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
14333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wzyx
14353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
14363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
14373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
14403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
14423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
14433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
14453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
14473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
14483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
14493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzyx;
14503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
14513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
14523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
14533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
14543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_xxxx
14563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
14573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
14583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
14613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
14633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
14643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
14663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
14683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
14693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
14703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxxx;
14713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
14723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
14733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
14743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
14753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_yyyy
14773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
14783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
14793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
14813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
14823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
14843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
14853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
14873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
14893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
14903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
14913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
14923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
14933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
14943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
14953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
14963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wwww
14983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
14993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
15003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
15033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
15053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
15063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
15083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
15103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
15113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
15123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwww;
15133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
15143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
15153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
15163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
15173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wzzw
15193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
15203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
15213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
15243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
15263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
15273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
15293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
15313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
15323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
15333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzzw;
15343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
15353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
15363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
15373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
15383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_wwwy
15403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
15413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
15423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
15453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
15473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
15483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
15503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
15523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
15533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
15543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwwy;
15553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
15563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
15573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
15583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
15593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_xyxx
15613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
15623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
15633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
15663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
15683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
15693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
15713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
15733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
15743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
15753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
15763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
15773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
15783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
15793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
15803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_zzwz
15823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
15833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
15843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
15863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
15873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
15893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
15903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
15923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
15943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
15953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
15963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzwz;
15973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
15983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
15993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
16003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
16013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_s
16033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
16043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
16053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
16073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
16083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
16103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
16113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
16133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
16153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
16163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
16173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
16183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
16193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
16203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
16213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
16223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_q
16243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
16253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
16263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
16283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
16293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
16313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
16323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
16343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
16363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
16373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
16383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.q;
16393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
16403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
16413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
16423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
16433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qs
16453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
16463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
16473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
16503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
16523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
16533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
16553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
16573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
16583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
16593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qs;
16603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
16613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
16623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
16633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
16643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qp
16663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
16673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
16683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
16713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
16733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
16743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
16763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
16783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
16793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
16803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qp;
16813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
16823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
16833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
16843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
16853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qqq
16873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
16883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
16893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
16913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
16923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
16943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
16953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
16973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
16993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
17003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
17013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqq;
17023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
17033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
17043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
17053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
17063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_ttq
17083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
17093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
17103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
17133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
17153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
17163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
17183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
17203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
17213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
17223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ttq;
17233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
17243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
17253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
17263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
17273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qpt
17293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
17303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
17313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
17343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
17363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
17373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
17393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
17413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
17423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
17433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpt;
17443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
17453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
17463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
17473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
17483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_stpq
17503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
17513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
17523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
17553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
17573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
17583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
17603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
17623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
17633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
17643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stpq;
17653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
17663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
17673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
17683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
17693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qpts
17713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
17723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
17733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
17763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
17783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
17793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
17813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
17833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
17843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
17853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpts;
17863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
17873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
17883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
17893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
17903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_ssss
17923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
17933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
17943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
17963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
17973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
17993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
18003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
18023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
18043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
18053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
18063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ssss;
18073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
18083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
18093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
18103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
18113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_tttt
18133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
18143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
18153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
18183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
18203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
18213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
18233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
18253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
18263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
18273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
18283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
18293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
18303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
18313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
18323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qqqq
18343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
18353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
18363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
18393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
18413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
18423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
18443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
18463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
18473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
18483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqq;
18493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
18503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
18513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
18523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
18533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qppq
18553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
18563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
18573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
18603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
18623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
18633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
18653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
18673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
18683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
18693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qppq;
18703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
18713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
18723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
18733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
18743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_qqqt
18763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
18773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
18783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
18803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
18813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
18833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
18843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
18863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
18883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
18893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
18903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqt;
18913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
18923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
18933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
18943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
18953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_stss
18973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
18983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
18993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
19023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
19043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
19053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
19073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
19093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
19103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
19113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
19123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
19133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
19143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
19153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
19163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_ppqp
19183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
19193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
19203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
19233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
19253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
19263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
19283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
19303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
19313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
19323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppqp;
19333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
19343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
19353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
19363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
19373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_r
19393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
19403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
19413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
19433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
19443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
19463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
19473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
19493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
19513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
19523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
19533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
19543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
19553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
19563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
19573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
19583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_a
19603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
19613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
19623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output float out0 = [ 0.825 | 1.75 | 9.0 | 24.0 | 0.25 ];
19643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
19653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
19673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
19683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
19703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
19723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
19733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
19743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.a;
19753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
19763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
19773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
19783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
19793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_ar
19813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
19823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
19833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
19853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
19863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
19883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
19893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
19913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
19933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
19943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
19953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ar;
19963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
19973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
19983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
19993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
20003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_ab
20023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
20033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
20043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
20073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
20093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
20103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
20123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
20143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
20153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
20163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ab;
20173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
20183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
20193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
20203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
20213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_aaa
20233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
20243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
20253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
20283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
20303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
20313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
20333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
20353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
20363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
20373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaa;
20383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
20393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
20403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
20413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
20423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_gga
20443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
20453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
20463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
20493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
20513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
20523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
20543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
20563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
20573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
20583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gga;
20593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
20603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
20613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
20623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
20633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_abg
20653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
20663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
20673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
20703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
20723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
20733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
20753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
20773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
20783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
20793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abg;
20803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
20813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
20823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
20833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
20843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_rgba
20863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
20873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
20883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
20903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
20913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
20933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
20943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
20963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
20983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
20993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
21003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgba;
21013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
21023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
21033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
21043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
21053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_abgr
21073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
21083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
21093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
21123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
21143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
21153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
21173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
21193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
21203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
21213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abgr;
21223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
21233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
21243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
21253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
21263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_rrrr
21283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
21293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
21303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
21333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
21353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
21363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
21383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
21403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
21413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
21423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrrr;
21433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
21443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
21453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
21463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
21473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_gggg
21493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
21503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
21513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
21543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
21563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
21573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
21593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
21613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
21623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
21633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
21643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
21653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
21663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
21673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
21683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_aaaa
21703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
21713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
21723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
21753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
21773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
21783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
21803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
21823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
21833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
21843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaaa;
21853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
21863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
21873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
21883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
21893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_abba
21913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
21923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
21933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
21953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
21963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
21983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
21993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
22013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
22033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
22043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
22053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abba;
22063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
22073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
22083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
22093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
22103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_aaag
22123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
22133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
22143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
22173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
22193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
22203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
22223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
22243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
22253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
22263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaag;
22273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
22283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
22293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
22303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
22313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_rgrr
22333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
22343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
22353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
22383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
22403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
22413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
22433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
22453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
22463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
22473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
22483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
22493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
22503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
22513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
22523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_vec4_bbab
22543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
22553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
22563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
22583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
22593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
22613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
22623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
22643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
22663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
22673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
22683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbab;
22693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
22703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
22713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
22723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
22733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_x
22753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
22763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
22773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
22783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
22793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
22803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
22823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
22833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
22853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
22873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
22883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
22893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
22903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
22913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
22923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
22933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
22943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_xx
22963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
22973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
22983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
22993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
23003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
23013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
23033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
23043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
23063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
23083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
23093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
23103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xx;
23113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
23123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
23133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
23143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
23153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_xy
23173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
23183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
23193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
23203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
23213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
23223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
23243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
23253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
23273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
23293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
23303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
23313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xy;
23323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
23333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
23343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
23353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
23363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_yx
23383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
23393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
23403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
23413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
23423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
23433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
23453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
23463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
23483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
23503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
23513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
23523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yx;
23533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
23543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
23553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
23563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
23573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_yxy
23593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
23603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
23613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
23623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
23633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
23643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
23663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
23673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
23693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
23713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
23723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
23733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
23743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
23753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
23763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
23773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
23783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_xyxx
23803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
23813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
23823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
23833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
23843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
23853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
23873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
23883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
23903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
23923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
23933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
23943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
23953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
23963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
23973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
23983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
23993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_yyyy
24013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
24023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
24033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
24053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
24063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
24083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
24093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
24113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
24133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
24143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
24153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
24163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
24173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
24183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
24193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
24203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_s
24223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
24233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
24243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
24263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
24273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
24293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
24303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
24323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
24343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
24353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
24363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
24373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
24383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
24393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
24403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
24413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_ss
24433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
24443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
24453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
24473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
24483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
24503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
24513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
24533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
24553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
24563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
24573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ss;
24583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
24593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
24603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
24613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
24623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_st
24643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
24653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
24663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
24693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
24713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
24723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
24743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
24763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
24773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
24783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.st;
24793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
24803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
24813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
24823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
24833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_ts
24853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
24863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
24873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
24883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
24893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
24903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
24923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
24933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
24953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
24973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
24983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
24993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ts;
25003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
25013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
25023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
25033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
25043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_tst
25063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
25073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
25083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
25093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
25103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
25113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
25133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
25143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
25163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
25183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
25193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
25203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
25213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
25223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
25233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
25243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
25253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_stss
25273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
25283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
25293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
25303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
25313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
25323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
25343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
25353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
25373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
25393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
25403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
25413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
25423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
25433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
25443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
25453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
25463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_tttt
25483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
25493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
25503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
25513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
25523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
25533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
25553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
25563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
25583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
25603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
25613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
25623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
25633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
25643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
25653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
25663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
25673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_r
25693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
25703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
25713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
25723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
25733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
25743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
25763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
25773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
25793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
25813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
25823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
25833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
25843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
25853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
25863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
25873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
25883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_rr
25903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
25913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
25923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
25933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) | ivec2(-32, -32) | ivec2(0, 0) ];
25943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
25953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
25973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
25983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
26003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
26023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
26033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
26043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rr;
26053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
26063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
26073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
26083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
26093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_rg
26113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
26123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
26133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
26163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
26183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
26193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
26213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
26233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
26243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
26253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rg;
26263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
26273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
26283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
26293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
26303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_gr
26323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
26333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
26343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-2, 0) | ivec2(64, -32) | ivec2(0, 0) ];
26363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
26373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
26393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
26403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
26423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
26443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
26453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
26463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gr;
26473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
26483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
26493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
26503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
26513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_grg
26533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
26543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
26553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
26573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
26583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
26603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
26613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
26633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
26653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
26663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
26673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
26683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
26693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
26703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
26713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
26723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_rgrr
26743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
26753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
26763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
26783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
26793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
26813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
26823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
26843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
26863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
26873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
26883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
26893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
26903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
26913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
26923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
26933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec2_gggg
26953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
26963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
26973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
26993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
27003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
27023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
27033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
27053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
27073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
27083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
27093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
27103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
27113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
27123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
27133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
27143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_x
27163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
27173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
27183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
27203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
27213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
27233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
27243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
27263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
27283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
27293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
27303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
27313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
27323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
27333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
27343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
27353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_z
27373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
27383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
27393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
27413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
27423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
27443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
27453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
27473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
27493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
27503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
27513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.z;
27523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
27533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
27543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
27553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
27563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_xz
27583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
27593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
27603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
27623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
27633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
27653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
27663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
27683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
27703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
27713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
27723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xz;
27733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
27743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
27753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
27763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
27773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_zz
27793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
27803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
27813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
27833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
27843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
27863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
27873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
27893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
27913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
27923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
27933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zz;
27943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
27953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
27963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
27973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
27983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_xyz
28003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
28013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
28023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
28053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
28073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
28083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
28103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
28123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
28133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
28143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyz;
28153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
28163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
28173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
28183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
28193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_zyx
28213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
28223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
28233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
28253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
28263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
28283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
28293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
28313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
28333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
28343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
28353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zyx;
28363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
28373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
28383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
28393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
28403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_xxx
28423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
28433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
28443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
28463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
28473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
28493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
28503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
28523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
28543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
28553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
28563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxx;
28573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
28583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
28593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
28603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
28613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_zzz
28633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
28643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
28653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
28673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
28683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
28703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
28713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
28733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
28753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
28763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
28773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzz;
28783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
28793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
28803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
28813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
28823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_zzy
28843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
28853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
28863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
28873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
28883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
28893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
28913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
28923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
28943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
28963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
28973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
28983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzy;
28993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
29003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
29013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
29023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
29033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_yxy
29053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
29063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
29073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
29083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
29093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
29103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
29123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
29133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
29153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
29173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
29183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
29193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
29203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
29213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
29223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
29233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
29243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_xzx
29263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
29273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
29283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
29293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
29303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
29313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
29333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
29343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
29363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
29383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
29393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
29403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xzx;
29413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
29423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
29433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
29443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
29453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_xyyx
29473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
29483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
29493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
29503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
29513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
29523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
29543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
29553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
29573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
29593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
29603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
29613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyyx;
29623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
29633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
29643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
29653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
29663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_zzzz
29683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
29693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
29703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
29713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
29723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
29733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
29753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
29763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
29783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
29803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
29813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
29823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzzz;
29833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
29843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
29853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
29863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
29873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_s
29893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
29903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
29913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
29923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
29933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
29943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
29963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
29973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
29993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
30013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
30023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
30033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
30043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
30053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
30063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
30073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
30083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_p
30103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
30113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
30123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
30143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
30153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
30173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
30183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
30203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
30223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
30233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
30243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.p;
30253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
30263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
30273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
30283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
30293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_sp
30313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
30323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
30333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
30353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
30363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
30383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
30393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
30413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
30433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
30443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
30453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sp;
30463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
30473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
30483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
30493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
30503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_pp
30523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
30533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
30543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
30563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
30573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
30593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
30603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
30623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
30643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
30653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
30663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pp;
30673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
30683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
30693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
30703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
30713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_stp
30733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
30743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
30753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
30783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
30803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
30813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
30833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
30853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
30863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
30873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stp;
30883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
30893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
30903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
30913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
30923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_pts
30943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
30953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
30963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
30973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
30983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
30993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
31013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
31023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
31043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
31063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
31073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
31083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pts;
31093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
31103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
31113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
31123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
31133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_sss
31153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
31163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
31173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
31183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
31193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
31203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
31223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
31233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
31253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
31273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
31283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
31293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sss;
31303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
31313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
31323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
31333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
31343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_ppp
31363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
31373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
31383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
31393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
31403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
31413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
31433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
31443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
31463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
31483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
31493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
31503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppp;
31513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
31523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
31533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
31543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
31553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_ppt
31573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
31583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
31593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
31603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
31613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
31623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
31643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
31653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
31673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
31693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
31703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
31713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppt;
31723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
31733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
31743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
31753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
31763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_tst
31783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
31793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
31803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
31813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
31823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
31833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
31853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
31863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
31883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
31903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
31913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
31923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
31933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
31943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
31953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
31963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
31973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_sps
31993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
32003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
32013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
32023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
32033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
32043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
32063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
32073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
32093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
32113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
32123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
32133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sps;
32143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
32153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
32163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
32173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
32183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_stts
32203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
32213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
32223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
32233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
32243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
32253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
32273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
32283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
32303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
32323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
32333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
32343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stts;
32353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
32363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
32373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
32383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
32393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_pppp
32413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
32423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
32433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
32443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
32453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
32463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
32483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
32493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
32513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
32533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
32543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
32553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pppp;
32563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
32573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
32583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
32593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
32603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_r
32623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
32633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
32643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
32653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
32663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
32673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
32693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
32703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
32723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
32743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
32753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
32763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
32773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
32783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
32793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
32803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
32813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_b
32833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
32843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
32853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
32863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | -4 | -51 | 0 ];
32873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
32883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
32903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
32913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
32933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
32953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
32963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
32973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.b;
32983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
32993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
33003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
33013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
33023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_rb
33043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
33053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
33063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -4) | ivec2(-32, -51) | ivec2(0, 0) ];
33083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
33093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
33113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
33123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
33143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
33163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
33173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
33183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rb;
33193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
33203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
33213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
33223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
33233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_bb
33253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
33263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
33273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(-4, -4) | ivec2(-51, -51) | ivec2(0, 0) ];
33293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
33303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
33323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
33333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
33353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
33373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
33383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
33393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bb;
33403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
33413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
33423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
33433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
33443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_rgb
33463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
33473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
33483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
33513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
33533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
33543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
33563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
33583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
33593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
33603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgb;
33613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
33623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
33633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
33643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
33653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_bgr
33673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
33683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
33693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -2, 0) | ivec3(-51, 64, -32) | ivec3(0, 0, 0) ];
33713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
33723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
33743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
33753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
33773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
33793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
33803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
33813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bgr;
33823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
33833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
33843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
33853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
33863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_rrr
33883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
33893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
33903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
33913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, -32, -32) | ivec3(0, 0, 0) ];
33923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
33933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
33953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
33963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
33983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
34003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
34013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
34023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrr;
34033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
34043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
34053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
34063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
34073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_bbb
34093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
34103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
34113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
34123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -4) | ivec3(-51, -51, -51) | ivec3(0, 0, 0) ];
34133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
34143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
34163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
34173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
34193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
34213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
34223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
34233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbb;
34243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
34253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
34263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
34273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
34283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_bbg
34303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
34313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
34323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
34333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-4, -4, -2) | ivec3(-51, -51, 64) | ivec3(0, 0, 0) ];
34343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
34353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
34373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
34383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
34403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
34423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
34433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
34443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbg;
34453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
34463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
34473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
34483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
34493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_grg
34513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
34523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
34533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
34543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, 0, -2) | ivec3(64, -32, 64) | ivec3(0, 0, 0) ];
34553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
34563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
34583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
34593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
34613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
34633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
34643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
34653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
34663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
34673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
34683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
34693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
34703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_rbr
34723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
34733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
34743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
34753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -4, 0) | ivec3(-32, -51, -32) | ivec3(0, 0, 0) ];
34763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
34773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
34793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
34803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
34823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
34843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
34853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
34863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rbr;
34873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
34883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
34893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
34903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
34913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_rggr
34933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
34943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
34953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
34963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
34973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
34983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
35003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
35013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
35033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
35053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
35063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
35073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rggr;
35083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
35093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
35103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
35113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
35123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec3_bbbb
35143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
35153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
35163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
35173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
35183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
35193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
35213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
35223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
35243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
35263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
35273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
35283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbbb;
35293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
35303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
35313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
35323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
35333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_x
35353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
35363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
35373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
35383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
35393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
35403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
35423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
35433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
35453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
35473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
35483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
35493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
35503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
35513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
35523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
35533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
35543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_w
35563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
35573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
35583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
35593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
35603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
35613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
35633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
35643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
35663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
35683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
35693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
35703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.w;
35713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
35723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
35733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
35743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
35753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wx
35773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
35783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
35793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
35803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
35813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
35823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
35843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
35853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
35873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
35893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
35903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
35913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wx;
35923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
35933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
35943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
35953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
35963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wz
35983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
35993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
36003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
36023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
36033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
36053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
36063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
36083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
36103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
36113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
36123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wz;
36133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
36143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
36153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
36163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
36173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_www
36193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
36203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
36213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
36233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
36243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
36263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
36273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
36293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
36313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
36323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
36333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.www;
36343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
36353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
36363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
36373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
36383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_yyw
36403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
36413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
36423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
36443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
36453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
36473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
36483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
36503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
36523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
36533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
36543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyw;
36553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
36563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
36573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
36583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
36593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wzy
36613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
36623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
36633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
36653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
36663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
36683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
36693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
36713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
36733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
36743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
36753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzy;
36763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
36773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
36783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
36793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
36803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_xyzw
36823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
36833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
36843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
36863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
36873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
36893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
36903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
36923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
36943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
36953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
36963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyzw;
36973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
36983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
36993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
37003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
37013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wzyx
37033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
37043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
37053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
37083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
37103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
37113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
37133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
37153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
37163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
37173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzyx;
37183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
37193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
37203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
37213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
37223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_xxxx
37243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
37253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
37263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
37293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
37313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
37323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
37343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
37363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
37373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
37383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxxx;
37393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
37403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
37413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
37423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
37433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_yyyy
37453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
37463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
37473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
37503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
37523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
37533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
37553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
37573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
37583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
37593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
37603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
37613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
37623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
37633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
37643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wwww
37663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
37673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
37683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
37713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
37733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
37743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
37763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
37783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
37793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
37803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwww;
37813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
37823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
37833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
37843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
37853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wzzw
37873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
37883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
37893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
37913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
37923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
37943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
37953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
37973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
37993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
38003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
38013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzzw;
38023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
38033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
38043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
38053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
38063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_wwwy
38083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
38093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
38103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
38133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
38153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
38163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
38183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
38203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
38213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
38223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwwy;
38233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
38243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
38253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
38263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
38273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_xyxx
38293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
38303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
38313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
38343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
38363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
38373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
38393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
38413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
38423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
38433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
38443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
38453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
38463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
38473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
38483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_zzwz
38503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
38513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
38523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
38553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
38573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
38583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
38603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
38623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
38633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
38643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzwz;
38653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
38663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
38673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
38683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
38693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_s
38713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
38723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
38733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
38753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
38763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
38783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
38793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
38813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
38833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
38843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
38853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
38863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
38873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
38883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
38893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
38903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_q
38923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
38933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
38943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
38953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
38963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
38973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
38993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
39003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
39023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
39043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
39053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
39063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.q;
39073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
39083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
39093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
39103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
39113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qs
39133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
39143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
39153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
39163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
39173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
39183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
39203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
39213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
39233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
39253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
39263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
39273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qs;
39283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
39293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
39303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
39313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
39323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qp
39343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
39353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
39363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
39373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
39383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
39393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
39413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
39423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
39443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
39463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
39473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
39483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qp;
39493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
39503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
39513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
39523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
39533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qqq
39553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
39563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
39573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
39583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
39593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
39603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
39623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
39633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
39653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
39673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
39683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
39693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqq;
39703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
39713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
39723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
39733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
39743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_ttq
39763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
39773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
39783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
39793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
39803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
39813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
39833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
39843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
39863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
39883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
39893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
39903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ttq;
39913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
39923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
39933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
39943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
39953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qpt
39973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
39983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
39993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
40013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
40023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
40043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
40053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
40073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
40093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
40103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
40113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpt;
40123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
40133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
40143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
40153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
40163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_stpq
40183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
40193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
40203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
40233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
40253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
40263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
40283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
40303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
40313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
40323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stpq;
40333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
40343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
40353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
40363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
40373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qpts
40393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
40403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
40413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
40443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
40463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
40473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
40493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
40513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
40523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
40533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpts;
40543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
40553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
40563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
40573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
40583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_ssss
40603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
40613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
40623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
40653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
40673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
40683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
40703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
40723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
40733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
40743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ssss;
40753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
40763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
40773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
40783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
40793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_tttt
40813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
40823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
40833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
40853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
40863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
40883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
40893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
40913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
40933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
40943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
40953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
40963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
40973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
40983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
40993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
41003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qqqq
41023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
41033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
41043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
41073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
41093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
41103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
41123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
41143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
41153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
41163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqq;
41173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
41183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
41193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
41203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
41213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qppq
41233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
41243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
41253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
41283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
41303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
41313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
41333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
41353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
41363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
41373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qppq;
41383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
41393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
41403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
41413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
41423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_qqqt
41443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
41453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
41463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
41493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
41513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
41523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
41543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
41563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
41573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
41583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqt;
41593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
41603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
41613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
41623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
41633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_stss
41653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
41663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
41673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
41703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
41723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
41733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
41753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
41773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
41783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
41793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
41803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
41813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
41823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
41833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
41843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_ppqp
41863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
41873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
41883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
41903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
41913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
41933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
41943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
41963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
41983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
41993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
42003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppqp;
42013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
42023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
42033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
42043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
42053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_r
42073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
42083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
42093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
42103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
42113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
42123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
42143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
42153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
42173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
42193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
42203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
42213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
42223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
42233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
42243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
42253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
42263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_a
42283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
42293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
42303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
42313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output int out0 = [ 0 | 1 | 9 | 24 | 0 ];
42323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
42333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
42353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
42363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
42383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
42403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
42413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
42423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.a;
42433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
42443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
42453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
42463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
42473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_ar
42493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
42503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
42513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
42523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, 0) | ivec2(24, -32) | ivec2(0, 0) ];
42533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
42543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
42563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
42573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
42593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
42613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
42623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
42633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ar;
42643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
42653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
42663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
42673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
42683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_ab
42703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
42713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
42723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
42733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(9, -4) | ivec2(24, -51) | ivec2(0, 0) ];
42743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
42753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
42773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
42783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
42803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
42823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
42833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
42843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ab;
42853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
42863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
42873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
42883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
42893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_aaa
42913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
42923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
42933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
42943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, 9, 9) | ivec3(24, 24, 24) | ivec3(0, 0, 0) ];
42953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
42963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
42983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
42993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
43013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
43033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
43043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
43053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaa;
43063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
43073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
43083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
43093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
43103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_gga
43123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
43133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
43143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(-2, -2, 9) | ivec3(64, 64, 24) | ivec3(0, 0, 0) ];
43163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
43173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
43193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
43203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
43223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
43243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
43253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
43263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gga;
43273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
43283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
43293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
43303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
43313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_abg
43333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
43343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
43353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(9, -4, -2) | ivec3(24, -51, 64) | ivec3(0, 0, 0) ];
43373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
43383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
43403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
43413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
43433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
43453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
43463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
43473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abg;
43483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
43493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
43503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
43513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
43523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_rgba
43543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
43553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
43563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
43593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
43613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
43623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
43643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
43663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
43673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
43683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgba;
43693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
43703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
43713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
43723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
43733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_abgr
43753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
43763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
43773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
43803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
43823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
43833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
43853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
43873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
43883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
43893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abgr;
43903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
43913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
43923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
43933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
43943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_rrrr
43963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
43973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
43983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
43993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
44013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
44033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
44043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
44063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
44083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
44093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
44103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrrr;
44113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
44123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
44133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
44143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
44153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_gggg
44173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
44183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
44193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
44223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
44243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
44253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
44273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
44293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
44303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
44313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
44323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
44333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
44343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
44353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
44363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_aaaa
44383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
44393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
44403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
44433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
44453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
44463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
44483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
44503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
44513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
44523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaaa;
44533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
44543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
44553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
44563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
44573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_abba
44593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
44603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
44613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
44643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
44663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
44673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
44693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
44713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
44723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
44733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abba;
44743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
44753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
44763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
44773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
44783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_aaag
44803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
44813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
44823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
44843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
44853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
44873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
44883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
44903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
44923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
44933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
44943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaag;
44953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
44963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
44973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
44983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
44993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_rgrr
45013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
45023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
45033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
45043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
45053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
45063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
45083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
45093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
45113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
45133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
45143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
45153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
45163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
45173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
45183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
45193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
45203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_ivec4_bbab
45223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
45233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
45243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
45253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
45263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
45273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
45293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
45303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
45323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
45343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
45353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
45363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbab;
45373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
45383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
45393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
45403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
45413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_x
45433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
45443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
45453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
45463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
45473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
45483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
45503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
45513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
45533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
45553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
45563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
45573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
45583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
45593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
45603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
45613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
45623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_xx
45643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
45653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
45663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
45673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
45683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
45693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
45713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
45723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
45743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
45763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
45773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
45783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xx;
45793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
45803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
45813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
45823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
45833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_xy
45853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
45863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
45873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
45883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
45893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
45903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
45923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
45933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
45953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
45973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
45983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
45993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xy;
46003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
46013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
46023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
46033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
46043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_yx
46063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
46073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
46083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
46093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
46103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
46113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
46133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
46143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
46163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
46183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
46193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
46203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yx;
46213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
46223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
46233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
46243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
46253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_yxy
46273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
46283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
46293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
46303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
46313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
46323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
46343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
46353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
46373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
46393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
46403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
46413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
46423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
46433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
46443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
46453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
46463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_xyxx
46483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
46493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
46503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
46513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
46523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
46533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
46553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
46563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
46583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
46603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
46613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
46623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
46633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
46643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
46653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
46663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
46673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_yyyy
46693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
46703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
46713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
46723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
46733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
46743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
46763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
46773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
46793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
46813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
46823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
46833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
46843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
46853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
46863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
46873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
46883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_s
46903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
46913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
46923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
46933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
46943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
46953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
46973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
46983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
47003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
47023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
47033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
47043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
47053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
47063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
47073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
47083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
47093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_ss
47113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
47123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
47133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
47153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
47163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
47183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
47193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
47213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
47233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
47243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
47253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ss;
47263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
47273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
47283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
47293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
47303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_st
47323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
47333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
47343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
47373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
47393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
47403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
47423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
47443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
47453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
47463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.st;
47473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
47483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
47493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
47503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
47513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_ts
47533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
47543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
47553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
47573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
47583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
47603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
47613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
47633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
47653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
47663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
47673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ts;
47683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
47693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
47703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
47713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
47723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_tst
47743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
47753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
47763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
47783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
47793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
47813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
47823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
47843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
47863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
47873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
47883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
47893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
47903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
47913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
47923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
47933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_stss
47953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
47963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
47973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
47983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
47993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
48003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
48023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
48033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
48053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
48073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
48083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
48093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
48103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
48113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
48123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
48133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
48143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_tttt
48163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
48173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
48183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
48193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
48203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
48213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
48233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
48243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
48263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
48283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
48293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
48303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
48313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
48323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
48333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
48343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
48353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_r
48373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
48383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
48393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
48403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
48413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
48423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
48443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
48453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
48473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
48493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
48503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
48513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
48523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
48533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
48543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
48553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
48563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_rr
48583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
48593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
48603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
48613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
48623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
48633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
48653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
48663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
48683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
48703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
48713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
48723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rr;
48733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
48743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
48753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
48763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
48773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_rg
48793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
48803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
48813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
48823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
48833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
48843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
48863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
48873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
48893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
48913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
48923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
48933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rg;
48943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
48953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
48963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
48973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
48983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_gr
49003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
49013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
49023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
49033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, false) ];
49043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
49053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
49073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
49083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
49103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
49123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
49133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
49143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gr;
49153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
49163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
49173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
49183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
49193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_grg
49213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
49223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
49233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
49243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
49253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
49263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
49283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
49293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
49313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
49333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
49343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
49353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
49363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
49373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
49383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
49393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
49403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_rgrr
49423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
49433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
49443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
49453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
49463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
49473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
49493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
49503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
49523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
49543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
49553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
49563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
49573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
49583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
49593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
49603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
49613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec2_gggg
49633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
49643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
49653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
49663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
49673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
49683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
49703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
49713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
49733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
49753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
49763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
49773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
49783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
49793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
49803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
49813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
49823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_x
49843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
49853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
49863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
49873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
49883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
49893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
49913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
49923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
49943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
49963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
49973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
49983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
49993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
50003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
50013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
50023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
50033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_z
50053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
50063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
50073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ false | false | false | true | false ];
50093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
50103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
50123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
50133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
50153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
50173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
50183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
50193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.z;
50203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
50213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
50223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
50233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
50243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_xz
50263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
50273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
50283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
50303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
50313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
50333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
50343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
50363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
50383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
50393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
50403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xz;
50413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
50423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
50433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
50443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
50453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_zz
50473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
50483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
50493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
50513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
50523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
50543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
50553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
50573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
50593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
50603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
50613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zz;
50623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
50633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
50643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
50653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
50663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_xyz
50683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
50693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
50703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
50733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
50753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
50763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
50783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
50803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
50813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
50823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyz;
50833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
50843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
50853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
50863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
50873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_zyx
50893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
50903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
50913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
50933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
50943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
50963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
50973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
50993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
51013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
51023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
51033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zyx;
51043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
51053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
51063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
51073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
51083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_xxx
51103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
51113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
51123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
51153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
51173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
51183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
51203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
51223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
51233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
51243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxx;
51253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
51263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
51273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
51283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
51293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_zzz
51313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
51323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
51333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
51363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
51383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
51393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
51413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
51433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
51443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
51453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzz;
51463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
51473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
51483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
51493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
51503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_zzy
51523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
51533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
51543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
51563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
51573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
51593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
51603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
51623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
51643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
51653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
51663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzy;
51673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
51683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
51693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
51703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
51713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_yxy
51733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
51743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
51753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
51773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
51783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
51803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
51813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
51833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
51853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
51863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
51873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yxy;
51883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
51893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
51903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
51913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
51923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_xzx
51943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
51953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
51963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
51983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
51993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
52013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
52023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
52043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
52063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
52073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
52083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xzx;
52093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
52103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
52113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
52123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
52133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_xyyx
52153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
52163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
52173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
52183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
52193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
52203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
52223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
52233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
52253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
52273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
52283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
52293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyyx;
52303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
52313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
52323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
52333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
52343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_zzzz
52363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
52373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
52383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
52393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
52403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
52413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
52433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
52443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
52463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
52483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
52493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
52503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzzz;
52513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
52523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
52533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
52543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
52553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_s
52573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
52583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
52593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
52603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
52613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
52623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
52643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
52653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
52673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
52693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
52703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
52713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
52723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
52733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
52743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
52753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
52763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_p
52783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
52793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
52803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
52813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ false | false | false | true | false ];
52823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
52833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
52853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
52863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
52883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
52903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
52913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
52923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.p;
52933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
52943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
52953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
52963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
52973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_sp
52993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
53003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
53013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
53033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
53043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
53063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
53073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
53093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
53113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
53123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
53133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sp;
53143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
53153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
53163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
53173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
53183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_pp
53203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
53213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
53223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
53243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
53253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
53273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
53283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
53303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
53323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
53333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
53343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pp;
53353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
53363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
53373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
53383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
53393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_stp
53413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
53423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
53433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
53463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
53483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
53493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
53513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
53533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
53543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
53553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stp;
53563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
53573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
53583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
53593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
53603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_pts
53623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
53633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
53643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
53673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
53693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
53703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
53723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
53743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
53753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
53763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pts;
53773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
53783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
53793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
53803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
53813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_sss
53833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
53843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
53853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
53873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
53883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
53903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
53913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
53933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
53953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
53963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
53973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sss;
53983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
53993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
54003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
54013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
54023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_ppp
54043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
54053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
54063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
54093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
54113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
54123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
54143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
54163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
54173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
54183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppp;
54193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
54203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
54213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
54223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
54233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_ppt
54253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
54263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
54273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
54293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
54303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
54323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
54333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
54353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
54373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
54383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
54393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppt;
54403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
54413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
54423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
54433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
54443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_tst
54463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
54473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
54483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
54503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
54513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
54533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
54543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
54563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
54583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
54593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
54603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tst;
54613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
54623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
54633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
54643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
54653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_sps
54673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
54683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
54693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
54723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
54743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
54753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
54773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
54793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
54803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
54813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.sps;
54823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
54833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
54843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
54853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
54863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_stts
54883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
54893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
54903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
54913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
54923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
54933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
54953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
54963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
54983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
55003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
55013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
55023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stts;
55033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
55043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
55053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
55063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
55073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_pppp
55093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
55103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
55113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
55123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
55133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
55143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
55163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
55173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
55193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
55213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
55223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
55233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.pppp;
55243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
55253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
55263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
55273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
55283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_r
55303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
55313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
55323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
55333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
55343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
55353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
55373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
55383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
55403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
55423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
55433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
55443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
55453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
55463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
55473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
55483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
55493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_b
55513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
55523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
55533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
55543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ false | false | false | true | false ];
55553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
55563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
55583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
55593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
55613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
55633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
55643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
55653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.b;
55663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
55673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
55683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
55693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
55703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_rb
55723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
55733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
55743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
55753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
55763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
55773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
55793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
55803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
55823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
55843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
55853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
55863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rb;
55873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
55883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
55893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
55903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
55913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_bb
55933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
55943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
55953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
55963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
55973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
55983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
56003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
56013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
56033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
56053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
56063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
56073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bb;
56083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
56093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
56103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
56113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
56123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_rgb
56143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
56153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
56163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
56193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
56213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
56223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
56243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
56263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
56273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
56283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgb;
56293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
56303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
56313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
56323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
56333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_bgr
56353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
56363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
56373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
56403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
56423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
56433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
56453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
56473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
56483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
56493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bgr;
56503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
56513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
56523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
56533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
56543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_rrr
56563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
56573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
56583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
56613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
56633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
56643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
56663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
56683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
56693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
56703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrr;
56713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
56723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
56733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
56743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
56753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_bbb
56773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
56783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
56793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
56813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
56823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
56843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
56853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
56873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
56893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
56903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
56913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbb;
56923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
56933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
56943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
56953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
56963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_bbg
56983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
56993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
57003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
57023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
57033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
57053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
57063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
57083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
57103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
57113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
57123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbg;
57133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
57143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
57153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
57163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
57173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_grg
57193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
57203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
57213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, false, false) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
57233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
57243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
57263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
57273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
57293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
57313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
57323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
57333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.grg;
57343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
57353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
57363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
57373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
57383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_rbr
57403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
57413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
57423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
57453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
57473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
57483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
57503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
57523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
57533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
57543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rbr;
57553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
57563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
57573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
57583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
57593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_rggr
57613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
57623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
57633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
57653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
57663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
57683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
57693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
57713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
57733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
57743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
57753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rggr;
57763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
57773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
57783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
57793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
57803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec3_bbbb
57823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
57833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
57843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
57853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
57863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
57873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
57893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
57903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
57923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
57943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
57953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
57963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbbb;
57973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
57983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
57993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
58003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
58013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_x
58033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
58043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
58053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
58063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
58073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
58083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
58103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
58113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
58133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
58153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
58163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
58173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.x;
58183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
58193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
58203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
58213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
58223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_w
58243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
58253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
58263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
58273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | true | false | true | false ];
58283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
58293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
58313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
58323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
58343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
58363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
58373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
58383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.w;
58393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
58403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
58413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
58423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
58433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wx
58453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
58463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
58473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
58483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
58493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
58503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
58523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
58533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
58553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
58573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
58583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
58593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wx;
58603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
58613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
58623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
58633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
58643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wz
58663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
58673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
58683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
58693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
58703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
58713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
58733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
58743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
58763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
58783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
58793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
58803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wz;
58813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
58823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
58833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
58843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
58853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_www
58873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
58883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
58893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
58903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
58913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
58923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
58943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
58953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
58973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
58993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
59003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
59013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.www;
59023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
59033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
59043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
59053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
59063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_yyw
59083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
59093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
59103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
59123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
59133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
59153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
59163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
59183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
59203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
59213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
59223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyw;
59233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
59243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
59253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
59263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
59273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wzy
59293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
59303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
59313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
59333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
59343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
59363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
59373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
59393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
59413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
59423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
59433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzy;
59443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
59453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
59463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
59473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
59483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_xyzw
59503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
59513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
59523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
59553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
59573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
59583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
59603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
59623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
59633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
59643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyzw;
59653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
59663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
59673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
59683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
59693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wzyx
59713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
59723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
59733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
59763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
59783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
59793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
59813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
59833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
59843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
59853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzyx;
59863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
59873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
59883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
59893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
59903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_xxxx
59923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
59933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
59943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
59963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
59973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
59993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
60003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
60023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
60043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
60053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
60063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xxxx;
60073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
60083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
60093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
60103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
60113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_yyyy
60133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
60143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
60153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
60183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
60203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
60213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
60233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
60253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
60263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
60273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.yyyy;
60283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
60293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
60303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
60313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
60323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wwww
60343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
60353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
60363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
60393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
60413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
60423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
60443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
60463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
60473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
60483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwww;
60493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
60503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
60513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
60523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
60533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wzzw
60553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
60563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
60573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
60603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
60623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
60633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
60653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
60673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
60683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
60693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wzzw;
60703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
60713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
60723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
60733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
60743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_wwwy
60763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
60773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
60783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
60803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
60813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
60833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
60843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
60863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
60883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
60893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
60903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.wwwy;
60913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
60923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
60933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
60943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
60953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
60963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_xyxx
60973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
60983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
60993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
61023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
61043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
61053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
61073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
61093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
61103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
61113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.xyxx;
61123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
61133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
61143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
61153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
61163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_zzwz
61183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
61193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
61203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
61233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
61253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
61263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
61283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
61303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
61313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
61323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.zzwz;
61333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
61343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
61353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
61363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
61373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_s
61393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
61403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
61413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
61433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
61443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
61463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
61473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
61493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
61513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
61523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
61533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.s;
61543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
61553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
61563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
61573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
61583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_q
61603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
61613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
61623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | true | false | true | false ];
61643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
61653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
61673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
61683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
61703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
61723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
61733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
61743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.q;
61753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
61763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
61773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
61783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
61793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qs
61813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
61823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
61833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
61843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
61853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
61863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
61883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
61893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
61913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
61923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
61933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
61943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
61953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qs;
61963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
61973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
61983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
61993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
62003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qp
62023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
62033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
62043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
62063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
62073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
62093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
62103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
62123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
62143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
62153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
62163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qp;
62173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
62183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
62193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
62203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
62213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qqq
62233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
62243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
62253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
62273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
62283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
62303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
62313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
62333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
62353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
62363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
62373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqq;
62383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
62393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
62403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
62413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
62423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_ttq
62443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
62453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
62463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
62483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
62493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
62513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
62523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
62543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
62563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
62573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
62583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ttq;
62593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
62603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
62613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
62623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
62633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qpt
62653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
62663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
62673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
62693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
62703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
62723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
62733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
62753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
62773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
62783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
62793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpt;
62803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
62813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
62823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
62833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
62843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_stpq
62863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
62873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
62883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
62903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
62913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
62933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
62943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
62963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
62973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
62983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
62993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
63003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stpq;
63013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
63023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
63033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
63043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
63053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qpts
63073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
63083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
63093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
63123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
63143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
63153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
63173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
63193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
63203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
63213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qpts;
63223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
63233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
63243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
63253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
63263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_ssss
63283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
63293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
63303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
63333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
63353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
63363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
63383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
63403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
63413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
63423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ssss;
63433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
63443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
63453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
63463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
63473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_tttt
63493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
63503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
63513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
63543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
63563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
63573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
63593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
63613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
63623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
63633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.tttt;
63643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
63653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
63663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
63673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
63683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qqqq
63703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
63713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
63723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
63753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
63773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
63783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
63803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
63823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
63833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
63843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqq;
63853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
63863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
63873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
63883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
63893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qppq
63913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
63923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
63933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
63953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
63963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
63983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
63993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
64013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
64033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
64043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
64053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qppq;
64063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
64073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
64083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
64093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
64103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_qqqt
64123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
64133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
64143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
64173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
64193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
64203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
64223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
64243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
64253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
64263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.qqqt;
64273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
64283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
64293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
64303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
64313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_stss
64333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
64343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
64353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
64383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
64403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
64413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
64433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
64453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
64463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
64473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.stss;
64483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
64493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
64503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
64513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
64523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_ppqp
64543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
64553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
64563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
64593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
64613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
64623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
64643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
64663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
64673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
64683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ppqp;
64693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
64703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
64713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
64723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
64733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_r
64753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
64763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
64773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | false | false | true | false ];
64793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
64803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
64823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
64833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
64853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
64873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
64883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
64893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.r;
64903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
64913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
64923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
64933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
64943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
64953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_a
64963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
64973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
64983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
64993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bool out0 = [ true | true | false | true | false ];
65003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
65013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
65033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
65043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
65063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
65083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
65093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
65103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.a;
65113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
65123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
65133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
65143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
65153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_ar
65173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
65183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
65193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
65203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
65213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
65223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
65243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
65253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
65273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
65293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
65303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
65313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ar;
65323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
65333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
65343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
65353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
65363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_ab
65383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
65393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
65403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
65413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec2 out0 = [ bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, false) ];
65423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
65433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
65453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
65463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
65483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
65503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
65513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
65523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.ab;
65533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
65543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
65553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
65563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
65573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_aaa
65593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
65603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
65613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
65623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, true, true) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
65633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
65643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
65663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
65673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
65693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
65713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
65723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
65733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaa;
65743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
65753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
65763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
65773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
65783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_gga
65803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
65813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
65823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
65833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
65843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
65853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
65873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
65883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
65903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
65913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
65923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
65933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
65943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gga;
65953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
65963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
65973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
65983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
65993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_abg
66013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
66023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
66033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		output bvec3 out0 = [ bvec3(true, false, false) | bvec3(true, false, false) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
66053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
66063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
66083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
66093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
66113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
66133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
66143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
66153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abg;
66163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
66173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
66183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
66193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
66203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_rgba
66223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
66233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
66243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
66273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
66293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
66303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
66323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
66343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
66353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
66363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgba;
66373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
66383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
66393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
66403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
66413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_abgr
66433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
66443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
66453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
66483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
66503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
66513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
66533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
66553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
66563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
66573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abgr;
66583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
66593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
66603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
66613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
66623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_rrrr
66643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
66653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
66663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
66693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
66713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
66723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
66743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
66763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
66773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
66783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rrrr;
66793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
66803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
66813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
66823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
66833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_gggg
66853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
66863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
66873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
66893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
66903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
66923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
66933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
66953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
66963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
66973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
66983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
66993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.gggg;
67003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
67013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
67023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
67033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
67043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_aaaa
67063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
67073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
67083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
67113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
67133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
67143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
67163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
67183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
67193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
67203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaaa;
67213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
67223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
67233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
67243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
67253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_abba
67273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
67283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
67293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
67323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
67343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
67353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
67373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
67393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
67403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
67413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.abba;
67423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
67433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
67443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
67453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
67463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_aaag
67483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
67493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
67503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
67533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
67553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
67563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
67583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
67603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
67613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
67623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.aaag;
67633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
67643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
67653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
67663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
67673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_rgrr
67693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
67703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
67713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
67743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
67763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
67773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
67793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
67813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
67823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
67833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.rgrr;
67843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
67853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
67863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
67873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
67883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  case mediump_bvec4_bbab
67903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	values
67913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	{
67923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		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) ];
67943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	}
67953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	both ""
67973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		precision mediump float;
67983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
67993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		${DECLARATIONS}
68003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
68013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		void main()
68023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		{
68033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${SETUP}
68043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			out0 = in0.bbab;
68053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  			${OUTPUT}
68063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  		}
68073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  	""
68083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry  end
68093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
68103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
68113c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # vector_swizzles
6812