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 scalar_to_scalar "Scalar to Scalar Conversions"
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_float
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_int
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 2 | 3 | 0 | -8 | -20 | 36 ];
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_bool
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | true | true | true | true | true | true ];
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_float
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | 2.0 | 5.0 | 8.0 | 11.0 | -12.0 | -66.0 | -192.0 | 255.0 ];
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_int
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_bool
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | true | true | true | true | true | true | true | true ];
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_float
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 1.0 | 0.0 ];
1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_int
1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 1 | 0 ];
1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_bool
1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ true | false ];
1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # scalar_to_scalar
2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup scalar_to_vector "Scalar to Vector Conversions"
2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_vec2
2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(2.0, 2.0) | vec2(3.5, 3.5) | vec2(-0.5, -0.5) | vec2(-8.25, -8.25) | vec2(-20.125, -20.125) | vec2(36.8125, 36.8125) ];
2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_vec3
2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(2.0, 2.0, 2.0) | vec3(3.5, 3.5, 3.5) | vec3(-0.5, -0.5, -0.5) | vec3(-8.25, -8.25, -8.25) | vec3(-20.125, -20.125, -20.125) | vec3(36.8125, 36.8125, 36.8125) ];
2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_vec4
2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 2.0, 2.0, 2.0) | vec4(3.5, 3.5, 3.5, 3.5) | vec4(-0.5, -0.5, -0.5, -0.5) | vec4(-8.25, -8.25, -8.25, -8.25) | vec4(-20.125, -20.125, -20.125, -20.125) | vec4(36.8125, 36.8125, 36.8125, 36.8125) ];
2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_ivec2
2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(2, 2) | ivec2(3, 3) | ivec2(0, 0) | ivec2(-8, -8) | ivec2(-20, -20) | ivec2(36, 36) ];
2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
2923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_ivec3
2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
2983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(2, 2, 2) | ivec3(3, 3, 3) | ivec3(0, 0, 0) | ivec3(-8, -8, -8) | ivec3(-20, -20, -20) | ivec3(36, 36, 36) ];
3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
3153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
3163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
3173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_ivec4
3193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
3203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
3213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
3223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(2, 2, 2, 2) | ivec4(3, 3, 3, 3) | ivec4(0, 0, 0, 0) | ivec4(-8, -8, -8, -8) | ivec4(-20, -20, -20, -20) | ivec4(36, 36, 36, 36) ];
3233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
3263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
3273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
3283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
3303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
3323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
3333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
3343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
3353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
3363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
3373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
3383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
3393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_bvec2
3413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
3423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
3433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
3443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
3453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
3483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
3493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
3503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
3523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
3543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
3553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
3563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
3573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
3583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
3593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
3603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
3613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_bvec3
3633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
3643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
3653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
3663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
3673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
3703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
3713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
3723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
3743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
3763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
3773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
3783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
3793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
3803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
3813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
3823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
3833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_bvec4
3853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
3863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
3873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
3883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
3893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
3903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
3923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
3933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
3943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
3963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
3983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
3993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
4003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
4013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
4023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
4033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
4043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
4053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_vec2
4073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
4083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
4093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
4103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(2.0, 2.0) | vec2(5.0, 5.0) | vec2(8.0, 8.0) | vec2(11.0, 11.0) | vec2(-12.0, -12.0) | vec2(-66.0, -66.0) | vec2(-192.0, -192.0) | vec2(255.0, 255.0) ];
4113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
4123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
4143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
4153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
4163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
4183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
4203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
4213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
4223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
4233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
4243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
4253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
4263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
4273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_vec3
4293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
4303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
4313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
4323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(2.0, 2.0, 2.0) | vec3(5.0, 5.0, 5.0) | vec3(8.0, 8.0, 8.0) | vec3(11.0, 11.0, 11.0) | vec3(-12.0, -12.0, -12.0) | vec3(-66.0, -66.0, -66.0) | vec3(-192.0, -192.0, -192.0) | vec3(255.0, 255.0, 255.0) ];
4333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
4343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
4363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
4373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
4383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
4403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
4423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
4433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
4443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
4453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
4463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
4473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
4483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
4493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_vec4
4513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
4523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
4533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
4543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(2.0, 2.0, 2.0, 2.0) | vec4(5.0, 5.0, 5.0, 5.0) | vec4(8.0, 8.0, 8.0, 8.0) | vec4(11.0, 11.0, 11.0, 11.0) | vec4(-12.0, -12.0, -12.0, -12.0) | vec4(-66.0, -66.0, -66.0, -66.0) | vec4(-192.0, -192.0, -192.0, -192.0) | vec4(255.0, 255.0, 255.0, 255.0) ];
4553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
4563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
4583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
4593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
4603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
4623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
4643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
4653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
4663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
4673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
4683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
4693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
4703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
4713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_ivec2
4733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
4743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
4753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
4763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(2, 2) | ivec2(5, 5) | ivec2(8, 8) | ivec2(11, 11) | ivec2(-12, -12) | ivec2(-66, -66) | ivec2(-192, -192) | ivec2(255, 255) ];
4773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
4783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
4803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
4813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
4823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
4843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
4863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
4873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
4883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
4893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
4903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
4913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
4923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
4933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_ivec3
4953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
4963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
4973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
4983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(2, 2, 2) | ivec3(5, 5, 5) | ivec3(8, 8, 8) | ivec3(11, 11, 11) | ivec3(-12, -12, -12) | ivec3(-66, -66, -66) | ivec3(-192, -192, -192) | ivec3(255, 255, 255) ];
4993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
5003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
5023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
5033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
5043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
5063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
5083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
5093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
5103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
5113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
5123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
5133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
5143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
5153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_ivec4
5173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
5183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
5193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(2, 2, 2, 2) | ivec4(5, 5, 5, 5) | ivec4(8, 8, 8, 8) | ivec4(11, 11, 11, 11) | ivec4(-12, -12, -12, -12) | ivec4(-66, -66, -66, -66) | ivec4(-192, -192, -192, -192) | ivec4(255, 255, 255, 255) ];
5213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
5223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
5243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
5253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
5263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
5283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
5303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
5313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
5323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
5333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
5343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
5353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
5363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
5373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_bvec2
5393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
5403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
5413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
5433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
5443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
5463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
5473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
5483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
5503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
5523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
5533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
5543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
5553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
5563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
5573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
5583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
5593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_bvec3
5613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
5623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
5633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
5653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
5663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
5683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
5693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
5703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
5723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
5743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
5753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
5763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
5773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
5783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
5793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
5803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
5813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_bvec4
5833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
5843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
5853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
5863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
5873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
5883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
5903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
5913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
5923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
5943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
5963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
5973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
5983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
5993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
6003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
6013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
6023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
6033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_vec2
6053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
6063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
6073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
6083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
6093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
6103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
6123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
6133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
6143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
6163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
6183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
6193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
6203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
6213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
6223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
6233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
6243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
6253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_vec3
6273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
6283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
6293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
6303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
6313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
6323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
6343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
6353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
6363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
6383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
6403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
6413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
6423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
6433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
6443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
6453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
6463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
6473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_vec4
6493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
6503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
6513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
6523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
6533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
6543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
6563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
6573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
6583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
6603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
6623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
6633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
6643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
6653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
6663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
6673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
6683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
6693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_ivec2
6713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
6723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
6733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
6743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
6753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
6763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
6783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
6793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
6803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
6823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
6843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
6853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
6863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
6873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
6883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
6893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
6903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
6913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_ivec3
6933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
6943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
6953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
6963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
6973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
6983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
7003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
7013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
7023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
7043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
7063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
7073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
7083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
7093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
7103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
7113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
7123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
7133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_ivec4
7153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
7163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
7173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
7183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
7193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
7203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
7223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
7233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
7243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
7263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
7283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
7293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
7303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
7313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
7323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
7333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
7343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
7353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_bvec2
7373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
7383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
7393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
7403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
7413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
7423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
7443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
7453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
7463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
7483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
7503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
7513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
7523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
7533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
7543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
7553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
7563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
7573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_bvec3
7593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
7603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
7613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
7623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, true, true) | bvec3(false, false, false) ];
7633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
7643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
7663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
7673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
7683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
7703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
7723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
7733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
7743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
7753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
7763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
7773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
7783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
7793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_bvec4
7813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
7823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
7833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
7843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
7853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
7863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
7883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
7893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
7903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
7923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
7943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
7953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
7963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
7973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
7983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
7993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
8003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
8013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8033c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # scalar_to_vector
8043c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup vector_to_scalar "Vector to Scalar Conversions"
8053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_float
8073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
8083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
8093c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
8103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
8113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
8123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
8143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
8153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
8163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
8183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
8203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
8213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
8223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
8233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
8243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
8253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
8263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
8273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_int
8293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
8303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
8313c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
8323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
8333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
8343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
8363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
8373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
8383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
8403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
8423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
8433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
8443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
8453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
8463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
8473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
8483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
8493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_bool
8513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
8523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
8533c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
8543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | true | true | true ];
8553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
8563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
8583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
8593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
8603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
8623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
8643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
8653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
8663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
8673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
8683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
8693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
8703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
8713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_float
8733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
8743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
8753c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
8763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
8773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
8783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
8803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
8813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
8823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
8843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
8863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
8873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
8883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
8893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
8903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
8913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
8923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
8933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_int
8953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
8963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
8973c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
8983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
8993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
9003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
9023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
9033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
9043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
9063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
9083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
9093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
9103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
9113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
9123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
9133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
9143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
9153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_bool
9173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
9183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
9193c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
9203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | true | true | true ];
9213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
9223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
9243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
9253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
9263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
9283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
9303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
9313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
9323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
9333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
9343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
9353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
9363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
9373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_float
9393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
9403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
9413c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
9423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | -0.5 | -32.0 | -0.75 ];
9433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
9443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
9463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
9473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
9483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
9503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
9523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
9533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
9543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
9553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
9563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
9573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
9583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
9593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_int
9613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
9623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
9633c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
9643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
9653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
9663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
9683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
9693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
9703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
9723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
9743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
9753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
9763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
9773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
9783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
9793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
9803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
9813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_bool
9833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
9843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
9853c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
9863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | true | true | true ];
9873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
9883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
9903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
9913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
9923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
9943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
9963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
9973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
9983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
9993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
10003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
10013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
10023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
10033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_float
10053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
10063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
10073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
10083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
10093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
10103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
10123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
10133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
10143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
10163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
10183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
10193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
10203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
10213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
10223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
10233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
10243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
10253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_int
10273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
10283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
10293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
10303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
10313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
10323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
10343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
10353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
10363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
10383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
10403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
10413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
10423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
10433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
10443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
10453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
10463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
10473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_bool
10493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
10503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
10513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
10523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | false | true | false ];
10533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
10543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
10563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
10573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
10583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
10603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
10623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
10633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
10643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
10653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
10663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
10673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
10683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
10693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_float
10713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
10723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
10733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
10743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
10753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
10763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
10783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
10793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
10803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
10823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
10843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
10853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
10863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
10873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
10883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
10893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
10903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
10913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_int
10933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
10943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
10953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
10963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
10973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
10983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
10993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
11003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
11013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
11023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
11043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
11063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
11073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
11083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
11093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
11103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
11113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
11123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
11133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_bool
11153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
11163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
11173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
11183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | false | true | false ];
11193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
11203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
11223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
11233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
11243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
11263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
11283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
11293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
11303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
11313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
11323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
11333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
11343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
11353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_float
11373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
11383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
11393c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
11403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 0.0 | 1.0 | 0.0 | -32.0 | 0.0 ];
11413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
11423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
11443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
11453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
11463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
11483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
11503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
11513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
11523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
11533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
11543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
11553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
11563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
11573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_int
11593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
11603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
11613c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
11623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 0 | 1 | 0 | -32 | 0 ];
11633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
11643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
11663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
11673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
11683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
11703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
11723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
11733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
11743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
11753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
11763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
11773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
11783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
11793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_bool
11813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
11823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
11833c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
11843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ false | true | false | true | false ];
11853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
11863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
11883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
11893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
11903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
11923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
11933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
11943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
11953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
11963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
11973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
11983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
11993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
12003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
12013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_float
12033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
12043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
12053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
12063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
12073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
12083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
12103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
12113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
12123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
12143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
12163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
12173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
12183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
12193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
12203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
12213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
12223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
12233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_int
12253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
12263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
12273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
12283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
12293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
12303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
12323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
12333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
12343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
12363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
12383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
12393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
12403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
12413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
12423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
12433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
12443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
12453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_bool
12473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
12483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
12493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
12503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ true | false | false | true | false ];
12513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
12523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
12543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
12553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
12563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
12583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
12603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
12613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
12623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
12633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
12643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
12653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
12663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
12673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_float
12693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
12703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
12713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
12723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
12733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
12743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
12763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
12773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
12783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
12803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
12823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
12833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
12843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
12853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
12863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
12873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
12883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
12893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_int
12913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
12923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
12933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
12943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
12953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
12963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
12973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
12983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
12993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
13003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
13023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
13043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
13053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
13063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
13073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
13083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
13093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
13103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
13113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_bool
13133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
13143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
13153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
13163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ true | false | false | true | false ];
13173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
13183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
13203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
13213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
13223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
13243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
13263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
13273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
13283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
13293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
13303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
13313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
13323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
13333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_float
13353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
13363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
13373c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
13383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output float out0 = [ 1.0 | 0.0 | 0.0 | 1.0 | 0.0 ];
13393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
13403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
13423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
13433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
13443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
13463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
13483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
13493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
13503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = float(in0);
13513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
13523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
13533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
13543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
13553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_int
13573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
13583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
13593c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
13603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output int out0 = [ 1 | 0 | 0 | 1 | 0 ];
13613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
13623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
13643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
13653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
13663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
13683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
13703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
13713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
13723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = int(in0);
13733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
13743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
13753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
13763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
13773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_bool
13793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
13803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
13813c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
13823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bool out0 = [ true | false | false | true | false ];
13833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
13843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
13863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
13873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
13883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
13903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
13913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
13923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
13933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
13943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bool(in0);
13953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
13963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
13973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
13983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
13993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14013c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # vector_to_scalar
14023c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup vector_illegal "Illegal Vector Conversions"
14033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_vec3
14053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
14063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
14073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
14093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
14103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
14113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
14133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
14153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
14163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
14173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
14183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 out0 = vec3(in0);
14193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
14203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
14213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
14223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
14233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_ivec3
14253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
14263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
14273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
14293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
14303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
14313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
14333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
14353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
14363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
14373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
14383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 out0 = ivec3(in0);
14393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
14403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
14413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
14423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
14433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_bvec3
14453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
14463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
14473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
14493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
14503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
14513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
14533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
14553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
14563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
14573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
14583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 out0 = bvec3(in0);
14593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
14603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
14613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
14623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
14633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_vec4
14653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
14663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
14673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
14693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
14703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
14713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
14733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
14753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
14763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
14773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
14783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
14793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
14803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
14813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
14823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
14833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_ivec4
14853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
14863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
14873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
14893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
14903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
14913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
14933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
14943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
14953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
14963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
14973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
14983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
14993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
15003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
15013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
15023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
15033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_bvec4
15053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
15063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
15073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
15093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
15103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
15113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
15133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
15153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
15163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
15173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec2 in0 = vec2(0.0, 0.5);
15183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
15193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
15203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
15213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
15223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
15233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_vec3
15253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
15263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
15273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
15293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
15303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
15313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
15333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
15353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
15363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
15373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
15383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 out0 = vec3(in0);
15393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
15403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
15413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
15423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
15433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_ivec3
15453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
15463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
15473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
15493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
15503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
15513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
15533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
15553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
15563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
15573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
15583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 out0 = ivec3(in0);
15593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
15603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
15613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
15623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
15633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_bvec3
15653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
15663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
15673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
15693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
15703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
15713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
15733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
15753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
15763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
15773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
15783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 out0 = bvec3(in0);
15793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
15803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
15813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
15823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
15833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_vec4
15853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
15863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
15873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
15893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
15903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
15913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
15933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
15943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
15953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
15963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
15973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
15983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
15993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
16003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
16013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
16023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
16033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_ivec4
16053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
16063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
16073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
16093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
16103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
16113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
16133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
16153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
16163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
16173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
16183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
16193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
16203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
16213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
16223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
16233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_bvec4
16253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
16263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
16273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
16293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
16303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
16313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
16333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
16353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
16363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
16373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec2 in0 = ivec2(0, 0);
16383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
16393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
16403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
16413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
16423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
16433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_vec3
16453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
16463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
16473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
16493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
16503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
16513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
16533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
16553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
16563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
16573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
16583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 out0 = vec3(in0);
16593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
16603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
16613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
16623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
16633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_ivec3
16653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
16663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
16673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
16693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
16703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
16713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
16733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
16753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
16763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
16773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
16783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 out0 = ivec3(in0);
16793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
16803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
16813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
16823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
16833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_bvec3
16853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
16863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
16873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
16893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
16903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
16913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
16933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
16943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
16953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
16963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
16973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
16983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 out0 = bvec3(in0);
16993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
17003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
17013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
17023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
17033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_vec4
17053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
17063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
17073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
17093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
17103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
17113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
17133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
17153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
17163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
17173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
17183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
17193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
17203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
17213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
17223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
17233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_ivec4
17253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
17263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
17273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
17293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
17303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
17313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
17333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
17353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
17363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
17373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
17383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
17393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
17403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
17413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
17423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
17433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_bvec4
17453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
17463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
17473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
17493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
17503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
17513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
17533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
17553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
17563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
17573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec2 in0 = bvec2(true, false);
17583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
17593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
17603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
17613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
17623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
17633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_vec4
17653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
17663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
17673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
17693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
17703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
17713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
17733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
17753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
17763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
17773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 in0 = vec3(0.0, 0.5, 0.75);
17783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
17793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
17803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
17813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
17823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
17833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_ivec4
17853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
17863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
17873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
17893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
17903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
17913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
17933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
17943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
17953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
17963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
17973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 in0 = vec3(0.0, 0.5, 0.75);
17983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
17993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
18003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
18013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
18023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
18033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_bvec4
18053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
18063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
18073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
18093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
18103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
18113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
18133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
18153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
18163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
18173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec3 in0 = vec3(0.0, 0.5, 0.75);
18183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
18193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
18203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
18213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
18223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
18233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_vec4
18253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
18263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
18273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
18293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
18303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
18313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
18333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
18353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
18363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
18373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 in0 = ivec3(0, 0, 0);
18383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
18393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
18403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
18413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
18423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
18433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_ivec4
18453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
18463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
18473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
18493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
18503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
18513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
18533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
18553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
18563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
18573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 in0 = ivec3(0, 0, 0);
18583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
18593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
18603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
18613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
18623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
18633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_bvec4
18653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
18663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
18673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
18693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
18703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
18713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
18733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
18753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
18763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
18773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec3 in0 = ivec3(0, 0, 0);
18783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
18793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
18803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
18813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
18823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
18833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_vec4
18853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
18863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
18873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
18893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
18903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
18913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
18933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
18943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
18953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
18963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
18973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 in0 = bvec3(true, false, false);
18983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				vec4 out0 = vec4(in0);
18993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
19003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
19013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
19023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
19033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_ivec4
19053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
19063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
19073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
19093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
19103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
19113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
19133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
19153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
19163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
19173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 in0 = bvec3(true, false, false);
19183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				ivec4 out0 = ivec4(in0);
19193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
19203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
19213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
19223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
19233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_bvec4
19253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		expect compile_fail
19263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values {}
19273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
19293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
19303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
19313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
19333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
19353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
19363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
19373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec3 in0 = bvec3(true, false, false);
19383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				bvec4 out0 = bvec4(in0);
19393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
19403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
19413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
19423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
19433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19453c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # vector_illegal
19463c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup vector_to_vector "Vector to Vector Conversions"
19473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_vec4
19493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
19503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
19513c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19523c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
19543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
19563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
19573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
19583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
19603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
19623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
19633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
19643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
19653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
19663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
19673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
19683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
19693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_vec3
19713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
19723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
19733c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19743c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
19763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
19783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
19793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
19803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
19823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
19843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
19853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
19863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
19873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
19883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
19893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
19903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
19913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_vec2
19933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
19943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
19953c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19963c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
19973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
19983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
19993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
20003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
20013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
20023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
20043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
20063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
20073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
20083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
20093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
20103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
20113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
20123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
20133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_ivec4
20153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
20163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
20173c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
20183c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
20193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
20203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
20223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
20233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
20243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
20263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
20283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
20293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
20303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
20313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
20323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
20333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
20343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
20353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_ivec3
20373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
20383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
20393c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
20403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
20413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
20423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
20443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
20453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
20463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
20483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
20503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
20513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
20523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
20533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
20543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
20553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
20563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
20573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_ivec2
20593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
20603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
20613c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
20623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
20633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
20643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
20663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
20673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
20683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
20703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
20723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
20733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
20743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
20753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
20763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
20773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
20783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
20793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_bvec4
20813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
20823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
20833c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
20843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
20853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
20863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
20883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
20893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
20903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
20923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
20933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
20943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
20953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
20963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
20973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
20983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
20993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
21003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
21013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_bvec3
21033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
21043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
21053c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
21063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
21073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
21083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
21103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
21113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
21123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
21143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
21163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
21173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
21183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
21193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
21203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
21213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
21223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
21233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_to_bvec2
21253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
21263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
21273c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
21283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
21293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
21303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
21323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
21333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
21343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
21363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
21383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
21393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
21403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
21413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
21423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
21433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
21443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
21453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_vec4
21473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
21483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
21493c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
21503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, -2.0, -4.0, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
21513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
21523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
21543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
21553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
21563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
21583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
21603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
21613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
21623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
21633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
21643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
21653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
21663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
21673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_vec3
21693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
21703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
21713c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
21723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, -2.0, -4.0) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.0, 0.0) ];
21733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
21743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
21763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
21773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
21783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
21803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
21823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
21833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
21843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
21853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
21863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
21873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
21883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
21893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_vec2
21913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
21923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
21933c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
21943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
21953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
21963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
21973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
21983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
21993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
22003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
22023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
22043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
22053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
22063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
22073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
22083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
22093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
22103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
22113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_ivec4
22133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
22143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
22153c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
22163c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
22173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
22183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
22203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
22213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
22223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
22243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
22263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
22273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
22283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
22293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
22303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
22313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
22323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
22333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_ivec3
22353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
22363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
22373c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
22383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
22393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
22403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
22423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
22433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
22443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
22463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
22483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
22493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
22503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
22513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
22523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
22533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
22543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
22553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_ivec2
22573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
22583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
22593c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
22603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
22613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
22623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
22643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
22653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
22663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
22683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
22703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
22713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
22723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
22733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
22743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
22753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
22763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
22773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_bvec4
22793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
22803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
22813c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
22823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) ];
22833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
22843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
22863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
22873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
22883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
22903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
22913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
22923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
22933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
22943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
22953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
22963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
22973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
22983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
22993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_bvec3
23013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
23023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
23033c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
23043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
23053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
23063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
23083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
23093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
23103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
23123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
23143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
23153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
23163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
23173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
23183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
23193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
23203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
23213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_to_bvec2
23233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
23243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
23253c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
23263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
23273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
23283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
23303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
23313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
23323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
23343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
23363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
23373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
23383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
23393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
23403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
23413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
23423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
23433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_vec4
23453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
23463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
23473c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
23483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 0.0, 0.0, 1.0) | vec4(0.0, 0.0, 0.0, 1.0) | vec4(0.0, 1.0, 0.0, 0.0) | vec4(1.0, 1.0, 1.0, 1.0) | vec4(0.0, 0.0, 0.0, 0.0) ];
23493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
23503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
23523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
23533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
23543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
23563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
23583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
23593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
23603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0);
23613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
23623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
23633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
23643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
23653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_vec3
23673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
23683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
23693c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
23703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(1.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 1.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
23713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
23723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
23743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
23753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
23763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
23783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
23803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
23813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
23823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
23833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
23843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
23853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
23863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
23873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_vec2
23893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
23903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
23913c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
23923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
23933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
23943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
23963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
23973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
23983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
23993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
24003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
24023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
24033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
24043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
24053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
24063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
24073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
24083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
24093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_ivec4
24113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
24123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
24133c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
24143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 0, 0, 1) | ivec4(0, 0, 0, 1) | ivec4(0, 1, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
24153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
24163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
24183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
24193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
24203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
24223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
24243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
24253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
24263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0);
24273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
24283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
24293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
24303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
24313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_ivec3
24333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
24343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
24353c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
24363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
24373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
24383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
24403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
24413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
24423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
24443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
24463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
24473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
24483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
24493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
24503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
24513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
24523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
24533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_ivec2
24553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
24563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
24573c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
24583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
24593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
24603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
24623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
24633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
24643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
24663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
24683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
24693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
24703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
24713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
24723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
24733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
24743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
24753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_bvec4
24773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
24783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
24793c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
24803c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
24813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
24823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
24843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
24853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
24863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
24883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
24903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
24913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
24923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0);
24933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
24943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
24953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
24963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
24973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
24983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_bvec3
24993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
25003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
25013c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
25033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
25043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
25063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
25073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
25083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
25103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
25123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
25133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
25143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
25153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
25163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
25173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
25183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
25193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_to_bvec2
25213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
25223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
25233c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
25253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
25263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
25283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
25293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
25303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
25323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
25343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
25353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
25363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
25373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
25383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
25393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
25403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
25413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_vec3
25433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
25443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
25453c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25463c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
25483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
25503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
25513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
25523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
25543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
25563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
25573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
25583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
25593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
25603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
25613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
25623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
25633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_vec2
25653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
25663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
25673c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25683c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
25703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
25723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
25733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
25743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
25763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
25783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
25793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
25803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
25813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
25823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
25833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
25843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
25853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_ivec3
25873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
25883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
25893c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
25903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
25913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
25923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
25943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
25953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
25963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
25983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
25993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
26003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
26013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
26023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
26033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
26043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
26053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
26063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
26073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_ivec2
26093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
26103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
26113c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
26123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
26133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
26143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
26163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
26173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
26183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
26203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
26223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
26233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
26243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
26253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
26263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
26273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
26283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
26293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_bvec3
26313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
26323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
26333c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
26343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
26353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
26363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
26383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
26393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
26403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
26423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
26443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
26453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
26463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
26473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
26483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
26493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
26503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
26513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_to_bvec2
26533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
26543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
26553c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
26563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
26573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
26583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
26603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
26613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
26623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
26643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
26663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
26673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
26683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
26693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
26703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
26713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
26723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
26733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_vec3
26753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
26763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
26773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
26783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, -2.0, -4.0) | vec3(-32.0, 64.0, -51.0) | vec3(0.0, 0.0, 0.0) ];
26793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
26803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
26823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
26833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
26843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
26863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
26883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
26893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
26903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
26913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
26923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
26933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
26943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
26953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
26963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_vec2
26973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
26983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
26993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
27013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
27023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
27043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
27053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
27063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
27083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
27103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
27113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
27123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
27133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
27143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
27153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
27163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
27173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_ivec3
27193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
27203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
27213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
27243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
27263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
27273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
27283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
27303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
27323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
27333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
27343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
27353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
27363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
27373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
27383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
27393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_ivec2
27413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
27423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
27433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
27453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
27463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
27483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
27493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
27503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
27523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
27543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
27553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
27563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
27573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
27583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
27593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
27603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
27613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_bvec3
27633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
27643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
27653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
27673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
27683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
27703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
27713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
27723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
27743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
27763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
27773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
27783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
27793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
27803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
27813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
27823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
27833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_to_bvec2
27853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
27863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
27873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
27883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
27893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
27903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
27923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
27933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
27943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
27963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
27973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
27983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
27993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
28003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
28013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
28023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
28033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
28043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
28053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_vec3
28073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
28083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
28093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(1.0, 0.0, 0.0) | vec3(0.0, 0.0, 0.0) | vec3(0.0, 1.0, 0.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 0.0) ];
28113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
28123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
28143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
28153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
28163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
28183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
28203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
28213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
28223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0);
28233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
28243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
28253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
28263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
28273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_vec2
28293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
28303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
28313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
28333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
28343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
28363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
28373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
28383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
28403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
28423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
28433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
28443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
28453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
28463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
28473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
28483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
28493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_ivec3
28513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
28523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
28533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
28553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
28563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
28583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
28593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
28603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
28623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
28643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
28653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
28663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0);
28673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
28683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
28693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
28703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
28713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_ivec2
28733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
28743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
28753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
28773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
28783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
28803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
28813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
28823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
28843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
28863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
28873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
28883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
28893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
28903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
28913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
28923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
28933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
28943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_bvec3
28953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
28963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
28973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
28993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
29003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
29023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
29033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
29043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
29063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
29083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
29093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
29103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0);
29113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
29123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
29133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
29143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
29153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_to_bvec2
29173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
29183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
29193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
29203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
29213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
29223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
29243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
29253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
29263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
29283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
29303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
29313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
29323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
29333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
29343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
29353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
29363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
29373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_vec2
29393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
29403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
29413c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
29423c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
29433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
29443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
29463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
29473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
29483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
29503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
29523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
29533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
29543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
29553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
29563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
29573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
29583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
29593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_ivec2
29613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
29623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
29633c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
29643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
29653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
29663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
29683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
29693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
29703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
29723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
29743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
29753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
29763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
29773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
29783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
29793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
29803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
29813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_to_bvec2
29833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
29843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
29853c827367444ee418f129b2c238299f49d3264554Jarkko 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) ];
29863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
29873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
29883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
29903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
29913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
29923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
29943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
29953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
29963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
29973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
29983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
29993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
30003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
30013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
30023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
30033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_vec2
30053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
30063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
30073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
30083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(0.0, 0.0) | vec2(1.0, 1.0) | vec2(0.0, -2.0) | vec2(-32.0, 64.0) | vec2(0.0, 0.0) ];
30093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
30103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
30123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
30133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
30143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
30163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
30183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
30193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
30203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
30213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
30223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
30233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
30243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
30253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_ivec2
30273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
30283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
30293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
30303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
30313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
30323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
30343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
30353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
30363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
30383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
30403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
30413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
30423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
30433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
30443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
30453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
30463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
30473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec2_to_bvec2
30493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
30503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
30513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
30523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
30533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
30543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
30563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
30573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
30583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
30603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
30623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
30633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
30643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
30653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
30663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
30673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
30683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
30693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_vec2
30713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
30723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
30733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
30743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, 0.0) | vec2(0.0, 0.0) | vec2(0.0, 1.0) | vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
30753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
30763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
30783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
30793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
30803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
30823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
30843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
30853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
30863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0);
30873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
30883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
30893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
30903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
30913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_ivec2
30933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
30943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
30953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
30963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
30973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
30983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
30993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
31003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
31013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
31023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
31043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
31063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
31073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
31083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0);
31093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
31103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
31113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
31123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
31133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_to_bvec2
31153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
31163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
31173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
31183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
31193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
31203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
31223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
31233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
31243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
31263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
31283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
31293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
31303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0);
31313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
31323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
31333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
31343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
31353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31373c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # vector_to_vector
31383c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup scalar_to_matrix "Scalar to Matrix Conversions"
31393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_mat4
31413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
31423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
31433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
31443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0) | mat4(3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 0.0, 3.5) | mat4(-0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, 0.0, -0.5) | mat4(-8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, 0.0, -8.25) | mat4(-20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, 0.0, -20.125) | mat4(36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 0.0, 36.8125) ];
31453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
31463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
31483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
31493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
31503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
31523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
31543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
31553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
31563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
31573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
31583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
31593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
31603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
31613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_mat3
31633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
31643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
31653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
31663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0) | mat3(3.5, 0.0, 0.0, 0.0, 3.5, 0.0, 0.0, 0.0, 3.5) | mat3(-0.5, 0.0, 0.0, 0.0, -0.5, 0.0, 0.0, 0.0, -0.5) | mat3(-8.25, 0.0, 0.0, 0.0, -8.25, 0.0, 0.0, 0.0, -8.25) | mat3(-20.125, 0.0, 0.0, 0.0, -20.125, 0.0, 0.0, 0.0, -20.125) | mat3(36.8125, 0.0, 0.0, 0.0, 36.8125, 0.0, 0.0, 0.0, 36.8125) ];
31673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
31683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
31703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
31713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
31723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
31743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
31763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
31773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
31783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
31793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
31803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
31813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
31823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
31833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_to_mat2
31853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
31863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
31873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | 1.0 | 2.0 | 3.5 | -0.5 | -8.25 | -20.125 | 36.8125 ];
31883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.0, 0.0, 0.0) | mat2(1.0, 0.0, 0.0, 1.0) | mat2(2.0, 0.0, 0.0, 2.0) | mat2(3.5, 0.0, 0.0, 3.5) | mat2(-0.5, 0.0, 0.0, -0.5) | mat2(-8.25, 0.0, 0.0, -8.25) | mat2(-20.125, 0.0, 0.0, -20.125) | mat2(36.8125, 0.0, 0.0, 36.8125) ];
31893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
31903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
31923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
31933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
31943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
31963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
31973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
31983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
31993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
32003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
32013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
32023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
32033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
32043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
32053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_mat4
32073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
32083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
32093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
32103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 0.0, 2.0) | mat4(5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 5.0) | mat4(8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 0.0, 8.0) | mat4(11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 0.0, 11.0) | mat4(-12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, 0.0, -12.0) | mat4(-66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, 0.0, -66.0) | mat4(-192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, 0.0, -192.0) | mat4(255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 0.0, 255.0) ];
32113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
32123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
32143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
32153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
32163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
32183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
32203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
32213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
32223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
32233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
32243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
32253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
32263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
32273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_mat3
32293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
32303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
32313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
32323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(2.0, 0.0, 0.0, 0.0, 2.0, 0.0, 0.0, 0.0, 2.0) | mat3(5.0, 0.0, 0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 5.0) | mat3(8.0, 0.0, 0.0, 0.0, 8.0, 0.0, 0.0, 0.0, 8.0) | mat3(11.0, 0.0, 0.0, 0.0, 11.0, 0.0, 0.0, 0.0, 11.0) | mat3(-12.0, 0.0, 0.0, 0.0, -12.0, 0.0, 0.0, 0.0, -12.0) | mat3(-66.0, 0.0, 0.0, 0.0, -66.0, 0.0, 0.0, 0.0, -66.0) | mat3(-192.0, 0.0, 0.0, 0.0, -192.0, 0.0, 0.0, 0.0, -192.0) | mat3(255.0, 0.0, 0.0, 0.0, 255.0, 0.0, 0.0, 0.0, 255.0) ];
32333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
32343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
32363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
32373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
32383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
32403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
32423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
32433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
32443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
32453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
32463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
32473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
32483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
32493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_to_mat2
32513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
32523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
32533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 1 | 2 | 5 | 8 | 11 | -12 | -66 | -192 | 255 ];
32543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.0, 0.0, 0.0) | mat2(1.0, 0.0, 0.0, 1.0) | mat2(2.0, 0.0, 0.0, 2.0) | mat2(5.0, 0.0, 0.0, 5.0) | mat2(8.0, 0.0, 0.0, 8.0) | mat2(11.0, 0.0, 0.0, 11.0) | mat2(-12.0, 0.0, 0.0, -12.0) | mat2(-66.0, 0.0, 0.0, -66.0) | mat2(-192.0, 0.0, 0.0, -192.0) | mat2(255.0, 0.0, 0.0, 255.0) ];
32553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
32563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
32583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
32593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
32603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
32623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
32643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
32653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
32663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
32673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
32683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
32693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
32703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
32713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_mat4
32733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
32743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
32753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
32763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
32773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
32783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
32803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
32813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
32823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
32843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
32863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
32873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
32883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
32893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
32903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
32913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
32923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
32933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
32943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_mat3
32953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
32963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
32973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
32983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) ];
32993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
33003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
33023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
33033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
33043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
33063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
33083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
33093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
33103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
33113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
33123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
33133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
33143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
33153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_to_mat2
33173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
33183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
33193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
33203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(0.0, 0.0, 0.0, 0.0) ];
33213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
33223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
33243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
33253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
33263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
33283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
33303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
33313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
33323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
33333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
33343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
33353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
33363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
33373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33393c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # scalar_to_matrix
33403c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup matrix_to_matrix "Matrix to Matrix Conversions"
33413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat4_to_mat4
33433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
33443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
33453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
33463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
33473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
33483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
33503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
33513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
33523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
33543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
33563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
33573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
33583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
33593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
33603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
33613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
33623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
33633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat4_to_mat3
33653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
33663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
33673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
33683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.0208333333333, 0.0625, -0.75, -8.425, 0.03125) ];
33693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
33703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
33723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
33733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
33743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
33763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
33783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
33793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
33803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
33813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
33823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
33833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
33843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
33853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat4_to_mat2
33873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
33883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
33893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat4 in0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, -6.725, 12.5, 0.0208333333333, 0.0625, -0.5, -0.75, -8.425, 0.03125, -0.0125, 9.975, -6.542, 0.015625, 9.975) ];
33903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.0208333333333) ];
33913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
33923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
33943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
33953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
33963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
33983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
34003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
34013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
34023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
34033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
34043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
34053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
34063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
34073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat3_to_mat4
34093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
34103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
34113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.03125, 0.0625, -0.75, 0.015625, 0.03125) ];
34123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, 32.0, 0.125, 0.0, 12.5, 0.03125, 0.0625, 0.0, -0.75, 0.015625, 0.03125, 0.0, 0.0, 0.0, 0.0, 1.0) ];
34133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
34143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
34163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
34173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
34183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
34203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
34223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
34233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
34243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
34253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
34263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
34273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
34283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
34293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat3_to_mat3
34313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
34323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
34333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.03125, 0.0625, -0.75, 0.015625, 0.03125) ];
34343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.03125, 0.0625, -0.75, 0.015625, 0.03125) ];
34353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
34363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
34383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
34393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
34403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
34423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
34443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
34453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
34463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
34473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
34483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
34493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
34503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
34513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat3_to_mat2
34533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
34543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
34553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat3 in0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, 32.0, 0.125, 12.5, 0.03125, 0.0625, -0.75, 0.015625, 0.03125) ];
34563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, 32.0, 12.5, 0.03125) ];
34573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
34583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
34603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
34613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
34623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
34643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
34663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
34673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
34683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
34693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
34703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
34713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
34723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
34733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat2_to_mat4
34753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
34763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
34773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
34783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(6.5, -0.75, 0.0, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(8.0, -24.0, 0.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(0.125, 0.03125, 0.0, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) | mat4(-18.725, -0.0125, 0.0, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0) ];
34793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
34803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
34823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
34833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
34843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
34863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
34883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
34893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
34903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0);
34913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
34923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
34933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
34943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
34953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
34963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat2_to_mat3
34973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
34983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
34993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
35003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0) | mat3(6.5, -0.75, 0.0, 12.5, 9.975, 0.0, 0.0, 0.0, 1.0) | mat3(8.0, -24.0, 0.0, 16.0, -16.0, 0.0, 0.0, 0.0, 1.0) | mat3(0.125, 0.03125, 0.0, 0.0625, 0.015625, 0.0, 0.0, 0.0, 1.0) | mat3(-18.725, -0.0125, 0.0, -0.5, 19.975, 0.0, 0.0, 0.0, 1.0) ];
35013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
35023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
35043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
35053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
35063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
35083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
35103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
35113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
35123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0);
35133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
35143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
35153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
35163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
35173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case mat2_to_mat2
35193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
35203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
35213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input mat2 in0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
35223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 0.0, 1.0) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(6.5, -0.75, 12.5, 9.975) | mat2(8.0, -24.0, 16.0, -16.0) | mat2(0.125, 0.03125, 0.0625, 0.015625) | mat2(-18.725, -0.0125, -0.5, 19.975) ];
35233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
35243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
35263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
35273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
35283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
35303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
35323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
35333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
35343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0);
35353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
35363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
35373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
35383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
35393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35413c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # matrix_to_matrix
35423c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup vector_combine "Vector Combine Constructors"
35433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_vec2_to_vec4
35453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
35463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
35473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
35483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
35493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-0.5, -2.25, -32.0, 64.0) | vec4(-32.0, 64.0, 1.0, 1.25) | vec4(1.0, 1.25, 0.0, 0.5) | vec4(0.0, 0.5, -0.5, -2.25) | vec4(-0.75, -0.0322580645161, -0.75, -0.0322580645161) ];
35503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
35513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
35533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
35543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
35553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
35573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
35593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
35603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
35613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
35623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
35633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
35643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
35653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
35663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_vec2_to_ivec4
35683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
35693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
35703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
35713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
35723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, -2, -32, 64) | ivec4(-32, 64, 1, 1) | ivec4(1, 1, 0, 0) | ivec4(0, 0, 0, -2) | ivec4(0, 0, 0, 0) ];
35733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
35743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
35763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
35773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
35783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
35803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
35823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
35833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
35843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
35853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
35863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
35873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
35883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
35893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_vec2_to_bvec4
35913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
35923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
35933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.75, -0.0322580645161) ];
35943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in1 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) ];
35953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, false, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) ];
35963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
35973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
35983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
35993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
36003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
36013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
36033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
36053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
36063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
36073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
36083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
36093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
36103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
36113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
36123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_bvec2_to_vec4
36143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
36153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
36163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
36173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
36183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(0.0, 0.0, 1.0, 0.0) | vec4(1.0, 0.0, 0.0, 0.0) | vec4(0.0, 1.0, 0.0, 1.0) | vec4(0.0, 0.0, 1.0, 1.0) | vec4(1.0, 1.0, 0.0, 0.0) ];
36193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
36203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
36223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
36233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
36243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
36263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
36283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
36293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
36303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
36313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
36323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
36333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
36343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
36353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_bvec2_to_ivec4
36373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
36383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
36393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
36403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
36413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, 0, 1, 0) | ivec4(1, 0, 0, 0) | ivec4(0, 1, 0, 1) | ivec4(0, 0, 1, 1) | ivec4(1, 1, 0, 0) ];
36423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
36433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
36453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
36463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
36473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
36493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
36513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
36523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
36533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
36543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
36553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
36563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
36573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
36583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_bvec2_to_bvec4
36603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
36613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
36623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
36633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
36643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(false, false, true, false) | bvec4(true, false, false, false) | bvec4(false, true, false, true) | bvec4(false, false, true, true) | bvec4(true, true, false, false) ];
36653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
36663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
36683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
36693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
36703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
36723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
36743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
36753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
36763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
36773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
36783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
36793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
36803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
36813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_float_to_vec4
36833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
36843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
36853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
36863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
36873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
36883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
36893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 0.0, 3.5, 3.5) | vec4(0.0, 36.8125, 36.8125, 36.8125) | vec4(-0.5, -8.25, -8.25, 1.0) | vec4(-8.25, 2.0, 1.0, -8.25) | vec4(3.5, 3.5, 2.0, 2.0) | vec4(-20.125, 1.0, 0.0, 0.0) | vec4(36.8125, -20.125, -20.125, -0.5) | vec4(2.0, -0.5, -0.5, -20.125) ];
36903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
36913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
36933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
36943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
36953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
36973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
36983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
36993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
37003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
37013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2, in3);
37023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
37033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
37043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
37053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
37063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_float_to_ivec4
37083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
37093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
37103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
37113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
37123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
37133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
37143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 0, 3, 3) | ivec4(0, 36, 36, 36) | ivec4(0, -8, -8, 1) | ivec4(-8, 2, 1, -8) | ivec4(3, 3, 2, 2) | ivec4(-20, 1, 0, 0) | ivec4(36, -20, -20, 0) | ivec4(2, 0, 0, -20) ];
37153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
37163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
37183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
37193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
37203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
37223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
37243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
37253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
37263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2, in3);
37273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
37283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
37293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
37303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
37313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_float_to_bvec4
37333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
37343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
37353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
37363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
37373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
37383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
37393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, false, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
37403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
37413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
37433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
37443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
37453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
37473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
37493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
37503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
37513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2, in3);
37523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
37533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
37543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
37553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
37563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_int_to_vec4
37583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
37593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
37603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
37613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
37623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
37633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
37643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-12.0, 2.0, 11.0, -192.0) | vec4(-66.0, 5.0, 255.0, -66.0) | vec4(2.0, -66.0, 5.0, 8.0) | vec4(5.0, 11.0, 8.0, -12.0) | vec4(8.0, -192.0, 2.0, 1.0) | vec4(-192.0, 8.0, -192.0, 2.0) | vec4(255.0, -12.0, -12.0, 0.0) | vec4(1.0, 1.0, -66.0, 255.0) | vec4(0.0, 255.0, 1.0, 5.0) | vec4(11.0, 0.0, 0.0, 11.0) ];
37653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
37663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
37683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
37693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
37703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
37723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
37743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
37753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
37763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2, in3);
37773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
37783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
37793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
37803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
37813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_int_to_ivec4
37833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
37843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
37853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
37863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
37873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
37883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
37893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(-12, 2, 11, -192) | ivec4(-66, 5, 255, -66) | ivec4(2, -66, 5, 8) | ivec4(5, 11, 8, -12) | ivec4(8, -192, 2, 1) | ivec4(-192, 8, -192, 2) | ivec4(255, -12, -12, 0) | ivec4(1, 1, -66, 255) | ivec4(0, 255, 1, 5) | ivec4(11, 0, 0, 11) ];
37903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
37913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
37933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
37943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
37953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
37973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
37983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
37993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
38003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
38013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2, in3);
38023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
38033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
38043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
38053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
38063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_int_to_bvec4
38083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
38093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
38103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
38113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
38123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
38133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
38143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, false) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, false, false, true) ];
38153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
38163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
38183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
38193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
38203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
38223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
38243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
38253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
38263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2, in3);
38273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
38283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
38293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
38303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
38313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_bool_to_vec4
38333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
38343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
38353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
38363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
38373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ true | false ];
38383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ false | true ];
38393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 0.0, 1.0, 0.0) | vec4(0.0, 1.0, 0.0, 1.0) ];
38403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
38413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
38433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
38443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
38453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
38473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
38493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
38503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
38513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2, in3);
38523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
38533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
38543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
38553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
38563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_bool_to_ivec4
38583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
38593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
38603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
38613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
38623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ true | false ];
38633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ false | true ];
38643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 0, 1, 0) | ivec4(0, 1, 0, 1) ];
38653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
38663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
38683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
38693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
38703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
38723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
38743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
38753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
38763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2, in3);
38773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
38783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
38793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
38803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
38813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_bool_to_bvec4
38833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
38843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
38853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
38863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
38873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ true | false ];
38883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ false | true ];
38893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, false, true, false) | bvec4(false, true, false, true) ];
38903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
38913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
38933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
38943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
38953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
38973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
38983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
38993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
39003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
39013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2, in3);
39023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
39033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
39043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
39053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
39063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_bool_to_vec4
39083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
39093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
39103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
39113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
39123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
39133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
39143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 1.0, -192.0, 1.0) | vec4(1.0, 2.0, -12.0, 1.0) | vec4(1.0, 1.0, 2.0, 0.0) | vec4(0.0, 0.0, -66.0, 0.0) | vec4(0.0, 36.8125, 255.0, 1.0) | vec4(0.0, -8.25, 8.0, 0.0) | vec4(1.0, -0.5, 0.0, 0.0) | vec4(0.0, 3.5, 5.0, 0.0) | vec4(1.0, -20.125, 11.0, 1.0) | vec4(0.0, 0.0, 1.0, 1.0) ];
39153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
39163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
39183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
39193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
39203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
39223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
39243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
39253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
39263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2, in3);
39273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
39283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
39293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
39303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
39313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_bool_to_ivec4
39333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
39343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
39353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
39363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
39373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
39383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
39393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 1, -192, 1) | ivec4(1, 2, -12, 1) | ivec4(1, 1, 2, 0) | ivec4(0, 0, -66, 0) | ivec4(0, 36, 255, 1) | ivec4(0, -8, 8, 0) | ivec4(1, 0, 0, 0) | ivec4(0, 3, 5, 0) | ivec4(1, -20, 11, 1) | ivec4(0, 0, 1, 1) ];
39403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
39413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
39433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
39443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
39453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
39473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
39493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
39503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
39513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2, in3);
39523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
39533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
39543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
39553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
39563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_bool_to_bvec4
39583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
39593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
39603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
39613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
39623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
39633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
39643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, false) | bvec4(false, false, true, false) | bvec4(false, true, true, true) | bvec4(false, true, true, false) | bvec4(true, true, false, false) | bvec4(false, true, true, false) | bvec4(true, true, true, true) | bvec4(false, false, true, true) ];
39653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
39663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
39683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
39693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
39703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
39723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
39743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
39753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
39763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2, in3);
39773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
39783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
39793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
39803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
39813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_ivec2_to_vec4
39833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
39843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
39853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) ];
39863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
39873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-0.5, -2.25, 0.0, 0.0) | vec4(0.0, 0.5, 0.0, -2.0) | vec4(-32.0, 64.0, -32.0, 64.0) | vec4(1.0, 1.25, 0.0, 0.0) | vec4(-0.75, -0.0322580645161, 1.0, 1.0) ];
39883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
39893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
39913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
39923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
39933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
39953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
39963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
39973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
39983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
39993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
40003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
40013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
40023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
40033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
40043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_ivec2_to_ivec4
40063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
40073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
40083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) ];
40093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
40103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, -2, 0, 0) | ivec4(0, 0, 0, -2) | ivec4(-32, 64, -32, 64) | ivec4(1, 1, 0, 0) | ivec4(0, 0, 1, 1) ];
40113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
40123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
40143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
40153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
40163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
40183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
40203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
40213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
40223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
40233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
40243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
40253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
40263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
40273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_ivec2_to_bvec4
40293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
40303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
40313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) ];
40323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
40333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, false, false) | bvec4(false, true, false, true) | bvec4(true, true, true, true) | bvec4(true, true, false, false) | bvec4(true, true, true, true) ];
40343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
40353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
40373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
40383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
40393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
40413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
40433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
40443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
40453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
40463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
40473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
40483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
40493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
40503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bvec2_to_vec4
40523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
40533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
40543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
40553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
40563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-32.0, 64.0, 0.0, 0.0) | vec4(-0.5, -2.25, 1.0, 0.0) | vec4(1.0, 1.25, 1.0, 1.0) | vec4(-0.75, -0.0322580645161, 0.0, 1.0) | vec4(0.0, 0.5, 0.0, 0.0) ];
40573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
40583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
40603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
40613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
40623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
40643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
40663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
40673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
40683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
40693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
40703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
40713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
40723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
40733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bvec2_to_ivec4
40753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
40763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
40773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
40783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
40793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(-32, 64, 0, 0) | ivec4(0, -2, 1, 0) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 1) | ivec4(0, 0, 0, 0) ];
40803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
40813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
40833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
40843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
40853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
40873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
40893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
40903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
40913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
40923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
40933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
40943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
40953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
40963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
40973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bvec2_to_bvec4
40983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
40993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
41003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(0.0, 0.5) ];
41013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
41023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, false, false) | bvec4(true, true, true, false) | bvec4(true, true, true, true) | bvec4(true, true, false, true) | bvec4(false, true, false, false) ];
41033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
41043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
41063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
41073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
41083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
41103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
41123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
41133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
41143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
41153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
41163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
41173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
41183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
41193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_float_to_vec4
41213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
41223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
41233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, true, false) | bvec3(true, true, true) ];
41243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
41253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 0.0, 0.0, -8.25) | vec4(0.0, 0.0, 0.0, -20.125) | vec4(0.0, 0.0, 0.0, 2.0) | vec4(0.0, 0.0, 0.0, 0.0) | vec4(1.0, 0.0, 0.0, -0.5) | vec4(0.0, 1.0, 0.0, 3.5) | vec4(0.0, 1.0, 0.0, 36.8125) | vec4(1.0, 1.0, 1.0, 1.0) ];
41263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
41273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
41293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
41303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
41313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
41333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
41353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
41363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
41373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
41383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
41393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
41403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
41413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
41423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_float_to_ivec4
41443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
41453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
41463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, true, false) | bvec3(true, true, true) ];
41473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
41483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 0, 0, -8) | ivec4(0, 0, 0, -20) | ivec4(0, 0, 0, 2) | ivec4(0, 0, 0, 0) | ivec4(1, 0, 0, 0) | ivec4(0, 1, 0, 3) | ivec4(0, 1, 0, 36) | ivec4(1, 1, 1, 1) ];
41493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
41503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
41523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
41533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
41543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
41563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
41583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
41593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
41603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
41613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
41623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
41633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
41643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
41653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_float_to_bvec4
41673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
41683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
41693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(false, true, false) | bvec3(true, true, true) ];
41703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
41713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(false, true, false, true) | bvec4(false, true, false, true) | bvec4(true, true, true, true) ];
41723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
41733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
41753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
41763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
41773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
41793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
41813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
41823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
41833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
41843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
41853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
41863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
41873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
41883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_float_to_vec4
41903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
41913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
41923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in0 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
41933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
41943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.0) | vec4(0.0, 0.5, 0.75, 2.0) | vec4(-0.5, -2.25, -4.875, 36.8125) | vec4(0.0, 0.5, 0.75, 3.5) | vec4(1.0, 1.25, 1.125, 1.0) | vec4(-0.5, -2.25, -4.875, -0.5) | vec4(-32.0, 64.0, -51.0, -8.25) | vec4(1.0, 1.25, 1.125, -20.125) ];
41953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
41963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
41973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
41983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
41993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
42003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
42023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
42043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
42053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
42063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1);
42073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
42083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
42093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
42103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
42113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_float_to_ivec4
42133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
42143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
42153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in0 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
42163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
42173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 2) | ivec4(0, -2, -4, 36) | ivec4(0, 0, 0, 3) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 0) | ivec4(-32, 64, -51, -8) | ivec4(1, 1, 1, -20) ];
42183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
42193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
42213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
42223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
42233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
42253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
42273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
42283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
42293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1);
42303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
42313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
42323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
42333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
42343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_float_to_bvec4
42363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
42373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
42383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in0 = [ vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.5, -2.25, -4.875) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
42393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
42403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, true, false) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(false, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) ];
42413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
42423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
42443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
42453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
42463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
42483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
42503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
42513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
42523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1);
42533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
42543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
42553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
42563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
42573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_ivec2_int_to_vec4
42593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
42603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
42613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
42623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) ];
42633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
42643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(-66.0, 0.0, 0.0, 8.0) | vec4(8.0, 0.0, 0.0, 2.0) | vec4(-192.0, -32.0, 64.0, 11.0) | vec4(255.0, -32.0, 64.0, -192.0) | vec4(5.0, 1.0, 1.0, 255.0) | vec4(-12.0, 0.0, 0.0, -12.0) | vec4(0.0, 1.0, 1.0, 0.0) | vec4(2.0, 0.0, -2.0, -66.0) | vec4(1.0, 0.0, -2.0, 1.0) | vec4(11.0, 0.0, 0.0, 5.0) ];
42653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
42663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
42683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
42693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
42703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
42723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
42743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
42753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
42763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2);
42773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
42783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
42793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
42803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
42813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_ivec2_int_to_ivec4
42833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
42843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
42853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
42863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) ];
42873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
42883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(-66, 0, 0, 8) | ivec4(8, 0, 0, 2) | ivec4(-192, -32, 64, 11) | ivec4(255, -32, 64, -192) | ivec4(5, 1, 1, 255) | ivec4(-12, 0, 0, -12) | ivec4(0, 1, 1, 0) | ivec4(2, 0, -2, -66) | ivec4(1, 0, -2, 1) | ivec4(11, 0, 0, 5) ];
42893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
42903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
42923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
42933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
42943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
42963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
42973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
42983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
42993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
43003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2);
43013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
43023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
43033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
43043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
43053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_ivec2_int_to_bvec4
43073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
43083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
43093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
43103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) ];
43113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
43123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, false, false, true) | bvec4(true, false, false, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(false, true, true, false) | bvec4(true, false, true, true) | bvec4(true, false, true, true) | bvec4(true, false, false, true) ];
43133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
43143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
43163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
43173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
43183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
43203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
43223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
43233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
43243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2);
43253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
43263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
43273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
43283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
43293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_ivec2_to_vec4
43313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
43323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
43333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | true | false | false | false | false ];
43343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
43353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) ];
43363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec4 out0 = [ vec4(1.0, 2.0, 0.0, 0.0) | vec4(1.0, 0.0, 0.0, 0.0) | vec4(1.0, 3.5, -32.0, 64.0) | vec4(1.0, -8.25, 1.0, 1.0) | vec4(0.0, 36.8125, 0.0, -2.0) | vec4(0.0, -20.125, 0.0, -2.0) | vec4(0.0, 1.0, 1.0, 1.0) | vec4(0.0, -0.5, 0.0, 0.0) ];
43373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
43383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
43403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
43413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
43423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
43443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
43463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
43473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
43483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec4(in0, in1, in2);
43493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
43503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
43513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
43523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
43533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_ivec2_to_ivec4
43553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
43563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
43573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | true | false | false | false | false ];
43583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
43593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) ];
43603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec4 out0 = [ ivec4(1, 2, 0, 0) | ivec4(1, 0, 0, 0) | ivec4(1, 3, -32, 64) | ivec4(1, -8, 1, 1) | ivec4(0, 36, 0, -2) | ivec4(0, -20, 0, -2) | ivec4(0, 1, 1, 1) | ivec4(0, 0, 0, 0) ];
43613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
43623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
43643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
43653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
43663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
43683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
43703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
43713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
43723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec4(in0, in1, in2);
43733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
43743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
43753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
43763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
43773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_ivec2_to_bvec4
43793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
43803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
43813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | true | false | false | false | false ];
43823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
43833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in2 = [ ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) ];
43843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec4 out0 = [ bvec4(true, true, false, false) | bvec4(true, false, false, false) | bvec4(true, true, true, true) | bvec4(true, true, true, true) | bvec4(false, true, false, true) | bvec4(false, true, false, true) | bvec4(false, true, true, true) | bvec4(false, true, false, false) ];
43853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
43863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
43883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
43893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
43903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
43923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
43933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
43943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
43953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
43963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec4(in0, in1, in2);
43973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
43983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
43993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
44003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
44013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_to_vec3
44033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
44043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
44053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
44063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
44073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
44083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(3.5, -0.5, 0.0) | vec3(2.0, 1.0, 1.0) | vec3(-20.125, 2.0, 3.5) | vec3(-8.25, -20.125, -8.25) | vec3(36.8125, 0.0, -0.5) | vec3(1.0, -8.25, 36.8125) | vec3(0.0, 36.8125, -20.125) | vec3(-0.5, 3.5, 2.0) ];
44093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
44103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
44123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
44133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
44143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
44163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
44183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
44193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
44203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1, in2);
44213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
44223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
44233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
44243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
44253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_to_ivec3
44273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
44283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
44293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
44303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
44313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
44323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(3, 0, 0) | ivec3(2, 1, 1) | ivec3(-20, 2, 3) | ivec3(-8, -20, -8) | ivec3(36, 0, 0) | ivec3(1, -8, 36) | ivec3(0, 36, -20) | ivec3(0, 3, 2) ];
44333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
44343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
44363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
44373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
44383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
44403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
44423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
44433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
44443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1, in2);
44453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
44463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
44473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
44483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
44493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_to_bvec3
44513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
44523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
44533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
44543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
44553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
44563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, false, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) ];
44573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
44583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
44603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
44613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
44623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
44643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
44663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
44673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
44683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1, in2);
44693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
44703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
44713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
44723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
44733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_to_vec3
44753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
44763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
44773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
44783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
44793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
44803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 2.0, -192.0) | vec3(2.0, 8.0, -12.0) | vec3(1.0, 11.0, -66.0) | vec3(5.0, -12.0, 8.0) | vec3(255.0, -192.0, 1.0) | vec3(8.0, 1.0, 2.0) | vec3(-66.0, -66.0, 5.0) | vec3(11.0, 5.0, 11.0) | vec3(-12.0, 255.0, 255.0) | vec3(-192.0, 0.0, 0.0) ];
44813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
44823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
44843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
44853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
44863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
44883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
44903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
44913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
44923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1, in2);
44933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
44943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
44953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
44963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
44973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
44983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_to_ivec3
44993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
45003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
45013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
45023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
45033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
45043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 2, -192) | ivec3(2, 8, -12) | ivec3(1, 11, -66) | ivec3(5, -12, 8) | ivec3(255, -192, 1) | ivec3(8, 1, 2) | ivec3(-66, -66, 5) | ivec3(11, 5, 11) | ivec3(-12, 255, 255) | ivec3(-192, 0, 0) ];
45053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
45063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
45083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
45093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
45103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
45123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
45143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
45153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
45163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1, in2);
45173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
45183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
45193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
45203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
45213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_to_bvec3
45233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
45243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
45253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
45263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
45273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
45283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, false, false) ];
45293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
45303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
45323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
45333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
45343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
45363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
45383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
45393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
45403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1, in2);
45413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
45423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
45433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
45443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
45453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_to_vec3
45473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
45483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
45493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true ];
45503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
45513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ false | true ];
45523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) ];
45533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
45543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
45563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
45573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
45583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
45603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
45623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
45633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
45643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1, in2);
45653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
45663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
45673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
45683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
45693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_to_ivec3
45713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
45723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
45733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true ];
45743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
45753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ false | true ];
45763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) ];
45773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
45783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
45803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
45813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
45823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
45843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
45863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
45873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
45883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1, in2);
45893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
45903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
45913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
45923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
45933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
45943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_to_bvec3
45953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
45963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
45973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true ];
45983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
45993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ false | true ];
46003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) ];
46013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
46023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
46043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
46053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
46063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
46083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
46103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
46113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
46123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1, in2);
46133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
46143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
46153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
46163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
46173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_to_vec3
46193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
46203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
46213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
46223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
46233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
46243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, -12.0) | vec3(1.0, 2.0, -192.0) | vec3(0.0, 1.0, 2.0) | vec3(1.0, -0.5, 5.0) | vec3(0.0, -8.25, -66.0) | vec3(1.0, 3.5, 255.0) | vec3(0.0, -20.125, 11.0) | vec3(1.0, 1.0, 0.0) | vec3(0.0, 0.0, 8.0) | vec3(1.0, 36.8125, 1.0) ];
46253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
46263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
46283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
46293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
46303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
46323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
46343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
46353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
46363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1, in2);
46373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
46383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
46393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
46403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
46413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_to_ivec3
46433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
46443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
46453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
46463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
46473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
46483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, -12) | ivec3(1, 2, -192) | ivec3(0, 1, 2) | ivec3(1, 0, 5) | ivec3(0, -8, -66) | ivec3(1, 3, 255) | ivec3(0, -20, 11) | ivec3(1, 1, 0) | ivec3(0, 0, 8) | ivec3(1, 36, 1) ];
46493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
46503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
46523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
46533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
46543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
46563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
46583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
46593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
46603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1, in2);
46613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
46623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
46633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
46643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
46653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_to_bvec3
46673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
46683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
46693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
46703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
46713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
46723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, false) | bvec3(false, false, true) | bvec3(true, true, true) ];
46733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
46743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
46763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
46773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
46783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
46803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
46823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
46833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
46843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1, in2);
46853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
46863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
46873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
46883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
46893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bool_to_vec3
46913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
46923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
46933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) ];
46943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true | false | true | true ];
46953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(-0.75, -0.0322580645161, 0.0) | vec3(1.0, 1.25, 1.0) | vec3(-0.5, -2.25, 0.0) | vec3(0.0, 0.5, 1.0) | vec3(-32.0, 64.0, 1.0) ];
46963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
46973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
46983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
46993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
47003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
47013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
47033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
47053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
47063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
47073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1);
47083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
47093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
47103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
47113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
47123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bool_to_ivec3
47143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
47153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
47163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) ];
47173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true | false | true | true ];
47183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, 0) | ivec3(0, 0, 1) | ivec3(-32, 64, 1) ];
47193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
47203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
47223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
47233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
47243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
47263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
47283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
47293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
47303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1);
47313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
47323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
47333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
47343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
47353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bool_to_bvec3
47373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
47383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
47393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) ];
47403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true | false | true | true ];
47413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, false) | bvec3(false, true, true) | bvec3(true, true, true) ];
47423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
47433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
47453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
47463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
47473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
47493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
47513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
47523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
47533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1);
47543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
47553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
47563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
47573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
47583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_float_to_vec3
47603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
47613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
47623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
47633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
47643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(1.0, 0.0, 2.0) | vec3(0.0, 0.0, 36.8125) | vec3(1.0, 0.0, 0.0) | vec3(0.0, 1.0, -20.125) | vec3(0.0, 0.0, 1.0) | vec3(0.0, 1.0, -0.5) | vec3(0.0, 0.0, -8.25) | vec3(1.0, 1.0, 3.5) ];
47653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
47663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
47683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
47693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
47703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
47723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
47743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
47753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
47763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1);
47773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
47783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
47793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
47803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
47813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_float_to_ivec3
47833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
47843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
47853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
47863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
47873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(1, 0, 2) | ivec3(0, 0, 36) | ivec3(1, 0, 0) | ivec3(0, 1, -20) | ivec3(0, 0, 1) | ivec3(0, 1, 0) | ivec3(0, 0, -8) | ivec3(1, 1, 3) ];
47883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
47893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
47913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
47923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
47933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
47953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
47963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
47973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
47983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
47993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1);
48003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
48013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
48023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
48033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
48043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_float_to_bvec3
48063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
48073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
48083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
48093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
48103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(true, false, true) | bvec3(false, false, true) | bvec3(true, false, false) | bvec3(false, true, true) | bvec3(false, false, true) | bvec3(false, true, true) | bvec3(false, false, true) | bvec3(true, true, true) ];
48113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
48123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
48143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
48153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
48163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
48183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
48203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
48213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
48223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1);
48233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
48243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
48253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
48263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
48273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_int_to_vec3
48293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
48303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
48313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(true, false) | bvec2(false, false) ];
48323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
48333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 1.0, 0.0) | vec3(0.0, 1.0, 255.0) | vec3(1.0, 1.0, 1.0) | vec3(0.0, 0.0, 2.0) | vec3(0.0, 0.0, 8.0) | vec3(0.0, 0.0, 11.0) | vec3(1.0, 1.0, -192.0) | vec3(1.0, 0.0, 5.0) | vec3(1.0, 0.0, -12.0) | vec3(0.0, 0.0, -66.0) ];
48343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
48353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
48373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
48383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
48393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
48413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
48433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
48443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
48453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1);
48463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
48473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
48483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
48493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
48503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_int_to_ivec3
48523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
48533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
48543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(true, false) | bvec2(false, false) ];
48553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
48563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 1, 0) | ivec3(0, 1, 255) | ivec3(1, 1, 1) | ivec3(0, 0, 2) | ivec3(0, 0, 8) | ivec3(0, 0, 11) | ivec3(1, 1, -192) | ivec3(1, 0, 5) | ivec3(1, 0, -12) | ivec3(0, 0, -66) ];
48573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
48583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
48603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
48613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
48623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
48643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
48663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
48673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
48683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1);
48693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
48703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
48713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
48723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
48733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_int_to_bvec3
48753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
48763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
48773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(false, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(true, false) | bvec2(false, false) ];
48783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
48793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, true, false) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, true) | bvec3(false, false, true) | bvec3(false, false, true) | bvec3(true, true, true) | bvec3(true, false, true) | bvec3(true, false, true) | bvec3(false, false, true) ];
48803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
48813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
48833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
48843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
48853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
48873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
48893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
48903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
48913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1);
48923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
48933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
48943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
48953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
48963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
48973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_ivec2_to_vec3
48983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
48993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
49003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | true ];
49013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
49023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 0.0, -2.0) | vec3(0.0, 0.0, 0.0) | vec3(1.0, -32.0, 64.0) | vec3(1.0, 1.0, 1.0) ];
49033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
49043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
49063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
49073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
49083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
49103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
49123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
49133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
49143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec3(in0, in1);
49153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
49163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
49173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
49183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
49193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_ivec2_to_ivec3
49213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
49223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
49233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | true ];
49243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
49253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 0, -2) | ivec3(0, 0, 0) | ivec3(1, -32, 64) | ivec3(1, 1, 1) ];
49263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
49273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
49293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
49303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
49313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
49333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
49353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
49363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
49373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec3(in0, in1);
49383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
49393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
49403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
49413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
49423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_ivec2_to_bvec3
49443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
49453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
49463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | false | true | true ];
49473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
49483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, false, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) ];
49493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
49503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
49523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
49533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
49543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
49563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
49583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
49593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
49603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec3(in0, in1);
49613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
49623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
49633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
49643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
49653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_to_vec2
49673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
49683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
49693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
49703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
49713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(2.0, 3.5) | vec2(3.5, -20.125) | vec2(-8.25, -0.5) | vec2(-0.5, 2.0) | vec2(0.0, 1.0) | vec2(-20.125, 0.0) | vec2(36.8125, 36.8125) | vec2(1.0, -8.25) ];
49723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
49733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
49753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
49763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
49773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
49793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
49813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
49823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
49833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
49843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
49853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
49863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
49873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
49883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_to_ivec2
49903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
49913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
49923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
49933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
49943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(2, 3) | ivec2(3, -20) | ivec2(-8, 0) | ivec2(0, 2) | ivec2(0, 1) | ivec2(-20, 0) | ivec2(36, 36) | ivec2(1, -8) ];
49953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
49963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
49973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
49983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
49993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
50003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
50023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
50043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
50053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
50063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
50073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
50083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
50093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
50103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
50113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_to_bvec2
50133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
50143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
50153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
50163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
50173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) ];
50183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
50193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
50213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
50223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
50233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
50253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
50273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
50283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
50293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
50303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
50313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
50323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
50333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
50343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_to_vec2
50363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
50373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
50383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
50393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
50403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(8.0, -66.0) | vec2(255.0, 2.0) | vec2(-192.0, 255.0) | vec2(2.0, 8.0) | vec2(0.0, -12.0) | vec2(1.0, 5.0) | vec2(-12.0, -192.0) | vec2(11.0, 0.0) | vec2(-66.0, 1.0) | vec2(5.0, 11.0) ];
50413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
50423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
50443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
50453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
50463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
50483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
50503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
50513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
50523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
50533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
50543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
50553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
50563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
50573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_to_ivec2
50593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
50603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
50613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
50623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
50633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(8, -66) | ivec2(255, 2) | ivec2(-192, 255) | ivec2(2, 8) | ivec2(0, -12) | ivec2(1, 5) | ivec2(-12, -192) | ivec2(11, 0) | ivec2(-66, 1) | ivec2(5, 11) ];
50643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
50653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
50673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
50683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
50693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
50713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
50733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
50743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
50753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
50763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
50773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
50783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
50793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
50803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_to_bvec2
50823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
50833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
50843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
50853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
50863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) ];
50873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
50883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
50903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
50913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
50923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
50943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
50953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
50963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
50973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
50983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
50993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
51003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
51013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
51023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
51033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_to_vec2
51053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
51063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
51073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
51083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false ];
51093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
51103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
51113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
51133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
51143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
51153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
51173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
51193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
51203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
51213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
51223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
51233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
51243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
51253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
51263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_to_ivec2
51283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
51293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
51303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
51313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false ];
51323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
51333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
51343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
51363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
51373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
51383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
51403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
51423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
51433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
51443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
51453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
51463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
51473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
51483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
51493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_to_bvec2
51513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
51523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
51533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false ];
51543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false ];
51553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
51563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
51573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
51593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
51603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
51613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
51633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
51653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
51663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
51673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
51683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
51693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
51703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
51713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
51723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_int_to_vec2
51743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
51753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
51763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
51773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
51783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(1.0, -192.0) | vec2(-0.5, -66.0) | vec2(-20.125, 255.0) | vec2(0.0, 1.0) | vec2(3.5, 2.0) | vec2(-8.25, 0.0) | vec2(36.8125, -12.0) | vec2(2.0, 5.0) | vec2(1.0, 11.0) | vec2(0.0, 8.0) ];
51793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
51803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
51823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
51833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
51843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
51863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
51883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
51893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
51903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
51913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
51923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
51933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
51943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
51953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
51963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_int_to_ivec2
51973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
51983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
51993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
52003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
52013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(1, -192) | ivec2(0, -66) | ivec2(-20, 255) | ivec2(0, 1) | ivec2(3, 2) | ivec2(-8, 0) | ivec2(36, -12) | ivec2(2, 5) | ivec2(1, 11) | ivec2(0, 8) ];
52023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
52033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
52053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
52063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
52073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
52093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
52113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
52123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
52133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
52143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
52153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
52163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
52173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
52183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_int_to_bvec2
52203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
52213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
52223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
52233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
52243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(false, true) ];
52253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
52263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
52283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
52293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
52303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
52323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
52343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
52353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
52363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
52373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
52383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
52393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
52403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
52413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_bool_to_vec2
52433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
52443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
52453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
52463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | false | false | true | true | false | true ];
52473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(2.0, 1.0) | vec2(-20.125, 0.0) | vec2(0.0, 0.0) | vec2(1.0, 0.0) | vec2(-8.25, 1.0) | vec2(-0.5, 1.0) | vec2(36.8125, 0.0) | vec2(3.5, 1.0) ];
52483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
52493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
52513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
52523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
52533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
52553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
52573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
52583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
52593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
52603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
52613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
52623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
52633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
52643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_bool_to_ivec2
52663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
52673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
52683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
52693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | false | false | true | true | false | true ];
52703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(2, 1) | ivec2(-20, 0) | ivec2(0, 0) | ivec2(1, 0) | ivec2(-8, 1) | ivec2(0, 1) | ivec2(36, 0) | ivec2(3, 1) ];
52713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
52723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
52743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
52753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
52763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
52783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
52803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
52813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
52823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
52833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
52843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
52853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
52863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
52873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_bool_to_bvec2
52893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
52903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
52913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
52923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | false | false | true | true | false | true ];
52933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) ];
52943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
52953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
52963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
52973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
52983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
52993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
53013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
53033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
53043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
53053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
53063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
53073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
53083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
53093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
53103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_bool_to_vec2
53123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
53133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
53143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
53153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
53163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output vec2 out0 = [ vec2(8.0, 1.0) | vec2(255.0, 0.0) | vec2(11.0, 1.0) | vec2(-66.0, 0.0) | vec2(0.0, 1.0) | vec2(-192.0, 0.0) | vec2(-12.0, 0.0) | vec2(1.0, 1.0) | vec2(5.0, 0.0) | vec2(2.0, 1.0) ];
53173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
53183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
53203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
53213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
53223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
53243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
53263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
53273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
53283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = vec2(in0, in1);
53293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
53303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
53313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
53323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
53333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_bool_to_ivec2
53353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
53363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
53373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
53383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
53393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output ivec2 out0 = [ ivec2(8, 1) | ivec2(255, 0) | ivec2(11, 1) | ivec2(-66, 0) | ivec2(0, 1) | ivec2(-192, 0) | ivec2(-12, 0) | ivec2(1, 1) | ivec2(5, 0) | ivec2(2, 1) ];
53403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
53413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
53433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
53443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
53453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
53473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
53493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
53503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
53513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = ivec2(in0, in1);
53523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
53533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
53543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
53553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
53563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_bool_to_bvec2
53583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
53593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
53603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
53613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
53623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output bvec2 out0 = [ bvec2(true, true) | bvec2(true, false) | bvec2(true, true) | bvec2(true, false) | bvec2(false, true) | bvec2(true, false) | bvec2(true, false) | bvec2(true, true) | bvec2(true, false) | bvec2(true, true) ];
53633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
53643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
53663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
53673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
53683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
53703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
53723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
53733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
53743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = bvec2(in0, in1);
53753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
53763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
53773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
53783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
53793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53813c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # vector_combine
53823c827367444ee418f129b2c238299f49d3264554Jarkko Poyrygroup matrix_combine "Matrix Combine Constructors"
53833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_vec2_to_mat2
53853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
53863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
53873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(1.0, 1.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) ];
53883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in1 = [ vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(0.0, 0.5) | vec2(1.0, 1.25) ];
53893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.5, -0.5, -2.25) | mat2(1.0, 1.25, -0.75, -0.0322580645161) | mat2(-32.0, 64.0, -32.0, 64.0) | mat2(-0.75, -0.0322580645161, 0.0, 0.5) | mat2(-0.5, -2.25, 1.0, 1.25) ];
53903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
53913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
53933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
53943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
53953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
53973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
53983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
53993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
54003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
54013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
54023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
54033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
54043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
54053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
54063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec2_bvec2_to_mat2
54083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
54093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
54103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
54113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) ];
54123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 1.0, 1.0) | mat2(0.0, 0.0, 0.0, 0.0) | mat2(0.0, 1.0, 1.0, 0.0) | mat2(0.0, 0.0, 0.0, 0.0) | mat2(1.0, 1.0, 0.0, 1.0) ];
54133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
54143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
54163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
54173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
54183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
54203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
54223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
54233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
54243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
54253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
54263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
54273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
54283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
54293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_float_float_float_to_mat2
54313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
54323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
54333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ 0.0 | -0.5 | -20.125 | 2.0 | 36.8125 | 1.0 | 3.5 | -8.25 ];
54343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -8.25 | 2.0 | -0.5 | -20.125 | 3.5 | 1.0 | 36.8125 | 0.0 ];
54353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ 36.8125 | -8.25 | 3.5 | 2.0 | -0.5 | -20.125 | 1.0 | 0.0 ];
54363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in3 = [ 36.8125 | 0.0 | 2.0 | 3.5 | -8.25 | -0.5 | -20.125 | 1.0 ];
54373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, -8.25, 36.8125, 36.8125) | mat2(-0.5, 2.0, -8.25, 0.0) | mat2(-20.125, -0.5, 3.5, 2.0) | mat2(2.0, -20.125, 2.0, 3.5) | mat2(36.8125, 3.5, -0.5, -8.25) | mat2(1.0, 1.0, -20.125, -0.5) | mat2(3.5, 36.8125, 1.0, -20.125) | mat2(-8.25, 0.0, 0.0, 1.0) ];
54383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
54393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
54413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
54423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
54433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
54453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
54473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
54483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
54493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2, in3);
54503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
54513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
54523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
54533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
54543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_int_int_int_to_mat2
54563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
54573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
54583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ 2 | 0 | -66 | 8 | 1 | 255 | 5 | -12 | 11 | -192 ];
54593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in1 = [ -192 | 2 | 5 | -12 | -66 | 255 | 8 | 1 | 11 | 0 ];
54603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 2 | 11 | -192 | 255 | 1 | 5 | 0 | -12 | 8 | -66 ];
54613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in3 = [ 255 | 0 | 11 | -66 | 2 | 8 | -192 | 1 | -12 | 5 ];
54623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(2.0, -192.0, 2.0, 255.0) | mat2(0.0, 2.0, 11.0, 0.0) | mat2(-66.0, 5.0, -192.0, 11.0) | mat2(8.0, -12.0, 255.0, -66.0) | mat2(1.0, -66.0, 1.0, 2.0) | mat2(255.0, 255.0, 5.0, 8.0) | mat2(5.0, 8.0, 0.0, -192.0) | mat2(-12.0, 1.0, -12.0, 1.0) | mat2(11.0, 11.0, 8.0, -12.0) | mat2(-192.0, 0.0, -66.0, 5.0) ];
54633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
54643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
54663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
54673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
54683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
54703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
54723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
54733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
54743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2, in3);
54753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
54763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
54773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
54783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
54793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bool_bool_bool_to_mat2
54813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
54823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
54833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true ];
54843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in1 = [ false | true ];
54853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in2 = [ true | false ];
54863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ false | true ];
54873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.0, 1.0, 0.0) | mat2(1.0, 1.0, 0.0, 1.0) ];
54883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
54893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
54913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
54923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
54933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
54953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
54963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
54973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
54983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
54993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2, in3);
55003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
55013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
55023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
55033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
55043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_bool_to_mat2
55063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
55073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
55083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | true | true | false | false | true | true | true | false | false ];
55093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -0.5 | -20.125 | 3.5 | 2.0 | 1.0 | 0.0 | 0.0 | 1.0 | 36.8125 | -8.25 ];
55103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ -66 | -192 | 5 | 255 | 0 | -12 | 11 | 1 | 2 | 8 ];
55113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ true | false | true | false | false | false | true | false | true | true ];
55123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, -0.5, -66.0, 1.0) | mat2(1.0, -20.125, -192.0, 0.0) | mat2(1.0, 3.5, 5.0, 1.0) | mat2(0.0, 2.0, 255.0, 0.0) | mat2(0.0, 1.0, 0.0, 0.0) | mat2(1.0, 0.0, -12.0, 0.0) | mat2(1.0, 0.0, 11.0, 1.0) | mat2(1.0, 1.0, 1.0, 0.0) | mat2(0.0, 36.8125, 2.0, 1.0) | mat2(0.0, -8.25, 8.0, 1.0) ];
55133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
55143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
55163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
55173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
55183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
55203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
55223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
55233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
55243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2, in3);
55253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
55263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
55273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
55283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
55293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_ivec2_to_mat2
55313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
55323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
55333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) ];
55343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(-32, 64) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
55353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.5, -32.0, 64.0) | mat2(-32.0, 64.0, 0.0, 0.0) | mat2(-0.5, -2.25, 0.0, -2.0) | mat2(-0.75, -0.0322580645161, 0.0, 0.0) | mat2(1.0, 1.25, 1.0, 1.0) ];
55363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
55373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
55393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
55403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
55413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
55433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
55453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
55463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
55473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
55483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
55493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
55503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
55513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
55523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_bvec2_to_mat2
55543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
55553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
55563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(0.0, 0.5) ];
55573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(false, true) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) ];
55583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(-32.0, 64.0, 0.0, 1.0) | mat2(-0.5, -2.25, 0.0, 0.0) | mat2(-0.75, -0.0322580645161, 1.0, 0.0) | mat2(1.0, 1.25, 0.0, 0.0) | mat2(0.0, 0.5, 1.0, 1.0) ];
55593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
55603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
55623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
55633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
55643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
55663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
55683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
55693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
55703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
55713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
55723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
55733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
55743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
55753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec3_float_to_mat2
55773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
55783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
55793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in0 = [ bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) | bvec3(true, false, false) | bvec3(false, true, false) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, false, false) ];
55803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -20.125 | -0.5 | 3.5 | -8.25 | 0.0 | 1.0 | 2.0 | 36.8125 ];
55813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 1.0, 0.0, -20.125) | mat2(1.0, 1.0, 1.0, -0.5) | mat2(0.0, 0.0, 0.0, 3.5) | mat2(1.0, 0.0, 0.0, -8.25) | mat2(0.0, 1.0, 0.0, 0.0) | mat2(1.0, 0.0, 0.0, 1.0) | mat2(0.0, 0.0, 0.0, 2.0) | mat2(0.0, 0.0, 0.0, 36.8125) ];
55823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
55833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
55853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
55863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
55873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
55893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
55913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
55923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
55933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
55943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
55953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
55963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
55973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
55983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
55993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_float_to_mat2
56003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
56013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
56023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in0 = [ vec3(0.0, 0.5, 0.75) | vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(1.0, 1.25, 1.125) ];
56033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ -8.25 | 36.8125 | -0.5 | -20.125 | 1.0 | 2.0 | 0.0 | 3.5 ];
56043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(0.0, 0.5, 0.75, -8.25) | mat2(1.0, 1.25, 1.125, 36.8125) | mat2(-0.75, -0.0322580645161, 0.0526315789474, -0.5) | mat2(-0.5, -2.25, -4.875, -20.125) | mat2(0.0, 0.5, 0.75, 1.0) | mat2(-32.0, 64.0, -51.0, 2.0) | mat2(-0.5, -2.25, -4.875, 0.0) | mat2(1.0, 1.25, 1.125, 3.5) ];
56053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
56063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
56083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
56093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
56103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
56123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
56143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
56153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
56163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1);
56173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
56183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
56193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
56203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
56213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case int_ivec2_int_to_mat2
56233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
56243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
56253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in0 = [ -66 | 255 | 8 | 0 | 5 | -12 | 1 | -192 | 2 | 11 ];
56263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
56273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 0 | -12 | 8 | -66 | 11 | 5 | 255 | 2 | 1 | -192 ];
56283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(-66.0, 0.0, -2.0, 0.0) | mat2(255.0, 0.0, 0.0, -12.0) | mat2(8.0, -32.0, 64.0, 8.0) | mat2(0.0, 1.0, 1.0, -66.0) | mat2(5.0, 0.0, 0.0, 11.0) | mat2(-12.0, 0.0, 0.0, 5.0) | mat2(1.0, -32.0, 64.0, 255.0) | mat2(-192.0, 0.0, -2.0, 2.0) | mat2(2.0, 0.0, 0.0, 1.0) | mat2(11.0, 1.0, 1.0, -192.0) ];
56293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
56303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
56323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
56333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
56343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
56363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
56383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
56393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
56403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2);
56413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
56423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
56433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
56443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
56453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_ivec2_to_mat2
56473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
56483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
56493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | true | true | false | true | false | false | false ];
56503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 0.0 | 1.0 | 2.0 | -0.5 | 3.5 | -20.125 | 36.8125 | -8.25 ];
56513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in2 = [ ivec2(1, 1) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(0, -2) | ivec2(0, 0) | ivec2(0, 0) ];
56523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat2 out0 = [ mat2(1.0, 0.0, 1.0, 1.0) | mat2(1.0, 1.0, 1.0, 1.0) | mat2(1.0, 2.0, 0.0, -2.0) | mat2(0.0, -0.5, 0.0, 0.0) | mat2(1.0, 3.5, -32.0, 64.0) | mat2(0.0, -20.125, 0.0, -2.0) | mat2(0.0, 36.8125, 0.0, 0.0) | mat2(0.0, -8.25, 0.0, 0.0) ];
56533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
56543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
56563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
56573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
56583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
56603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
56623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
56633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
56643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat2(in0, in1, in2);
56653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
56663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
56673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
56683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
56693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec3_vec3_vec3_to_mat3
56713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
56723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
56733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in0 = [ vec3(1.0, 1.25, 1.125) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) ];
56743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in1 = [ vec3(-0.5, -2.25, -4.875) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(0.0, 0.5, 0.75) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
56753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec3 in2 = [ vec3(-0.5, -2.25, -4.875) | vec3(0.0, 0.5, 0.75) | vec3(-0.75, -0.0322580645161, 0.0526315789474) | vec3(-32.0, 64.0, -51.0) | vec3(1.0, 1.25, 1.125) ];
56763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 1.25, 1.125, -0.5, -2.25, -4.875, -0.5, -2.25, -4.875) | mat3(-0.75, -0.0322580645161, 0.0526315789474, -0.75, -0.0322580645161, 0.0526315789474, 0.0, 0.5, 0.75) | mat3(-32.0, 64.0, -51.0, 0.0, 0.5, 0.75, -0.75, -0.0322580645161, 0.0526315789474) | mat3(-0.5, -2.25, -4.875, -32.0, 64.0, -51.0, -32.0, 64.0, -51.0) | mat3(0.0, 0.5, 0.75, 1.0, 1.25, 1.125, 1.0, 1.25, 1.125) ];
56773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
56783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
56803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
56813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
56823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
56843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
56863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
56873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
56883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2);
56893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
56903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
56913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
56923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
56933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
56943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec3_ivec3_ivec3_to_mat3
56953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
56963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
56973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in0 = [ ivec3(0, -2, -4) | ivec3(1, 1, 1) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) | ivec3(0, 0, 0) ];
56983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in1 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
56993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in2 = [ ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, -2, -4) ];
57003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(0.0, -2.0, -4.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0) | mat3(1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0) | mat3(-32.0, 64.0, -51.0, 0.0, -2.0, -4.0, 0.0, 0.0, 0.0) | mat3(0.0, 0.0, 0.0, -32.0, 64.0, -51.0, -32.0, 64.0, -51.0) | mat3(0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0) ];
57013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
57023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
57043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
57053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
57063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
57083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
57103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
57113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
57123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2);
57133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
57143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
57153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
57163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
57173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec2_ivec2_float_float_int_bool_bool_to_mat3
57193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
57203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
57213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in0 = [ vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-32.0, 64.0) | vec2(-0.5, -2.25) | vec2(-32.0, 64.0) | vec2(-0.75, -0.0322580645161) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
57223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in1 = [ ivec2(-32, 64) | ivec2(0, -2) | ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 0) ];
57233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in2 = [ -20.125 | -8.25 | 3.5 | 1.0 | 1.0 | -0.5 | 2.0 | 0.0 | 36.8125 | 0.0 ];
57243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in3 = [ 0.0 | -0.5 | 1.0 | -20.125 | 36.8125 | 0.0 | -8.25 | 2.0 | 3.5 | 1.0 ];
57253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in4 = [ 2 | 11 | 1 | 0 | 8 | 5 | -66 | 255 | -192 | -12 ];
57263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in5 = [ false | true | true | false | false | true | false | true | false | true ];
57273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in6 = [ false | true | false | false | true | true | true | true | false | false ];
57283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(-0.75, -0.0322580645161, -32.0, 64.0, -20.125, 0.0, 2.0, 0.0, 0.0) | mat3(1.0, 1.25, 0.0, -2.0, -8.25, -0.5, 11.0, 1.0, 1.0) | mat3(0.0, 0.5, 1.0, 1.0, 3.5, 1.0, 1.0, 1.0, 0.0) | mat3(-32.0, 64.0, 0.0, 0.0, 1.0, -20.125, 0.0, 0.0, 0.0) | mat3(-0.5, -2.25, 0.0, 0.0, 1.0, 36.8125, 8.0, 0.0, 1.0) | mat3(-32.0, 64.0, 0.0, -2.0, -0.5, 0.0, 5.0, 1.0, 1.0) | mat3(-0.75, -0.0322580645161, -32.0, 64.0, 2.0, -8.25, -66.0, 0.0, 1.0) | mat3(1.0, 1.25, 0.0, 0.0, 0.0, 2.0, 255.0, 1.0, 1.0) | mat3(0.0, 0.5, 1.0, 1.0, 36.8125, 3.5, -192.0, 0.0, 0.0) | mat3(-0.5, -2.25, 0.0, 0.0, 0.0, 1.0, -12.0, 1.0, 0.0) ];
57293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
57303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
57323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
57333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
57343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
57363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
57383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
57393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
57403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
57413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
57423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
57433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
57443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
57453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_float_int_vec2_bool_bvec2_float_to_mat3
57473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
57483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
57493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ false | false | false | true | false | false | true | true | true | true ];
57503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in1 = [ 3.5 | -20.125 | 36.8125 | 0.0 | 2.0 | -8.25 | 1.0 | -0.5 | 1.0 | 0.0 ];
57513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 255 | -192 | 11 | 0 | 8 | 5 | -66 | 2 | -12 | 1 ];
57523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in3 = [ vec2(0.0, 0.5) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(-0.5, -2.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-32.0, 64.0) ];
57533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in4 = [ true | true | false | false | false | true | false | true | false | true ];
57543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in5 = [ bvec2(false, false) | bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) | bvec2(true, false) | bvec2(true, false) | bvec2(false, false) | bvec2(false, true) ];
57553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in6 = [ 0.0 | 36.8125 | 3.5 | -0.5 | -8.25 | 1.0 | 0.0 | 1.0 | -20.125 | 2.0 ];
57563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(0.0, 3.5, 255.0, 0.0, 0.5, 1.0, 0.0, 0.0, 0.0) | mat3(0.0, -20.125, -192.0, 0.0, 0.5, 1.0, 0.0, 0.0, 36.8125) | mat3(0.0, 36.8125, 11.0, -0.5, -2.25, 0.0, 1.0, 1.0, 3.5) | mat3(1.0, 0.0, 0.0, 1.0, 1.25, 0.0, 0.0, 1.0, -0.5) | mat3(0.0, 2.0, 8.0, -0.5, -2.25, 0.0, 1.0, 1.0, -8.25) | mat3(0.0, -8.25, 5.0, -0.75, -0.0322580645161, 1.0, 0.0, 0.0, 1.0) | mat3(1.0, 1.0, -66.0, -32.0, 64.0, 0.0, 1.0, 0.0, 0.0) | mat3(1.0, -0.5, 2.0, 1.0, 1.25, 1.0, 1.0, 0.0, 1.0) | mat3(1.0, 1.0, -12.0, -0.75, -0.0322580645161, 0.0, 0.0, 0.0, -20.125) | mat3(1.0, 0.0, 1.0, -32.0, 64.0, 1.0, 0.0, 1.0, 2.0) ];
57573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
57583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
57603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
57613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
57623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
57643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
57663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
57673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
57683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2, in3, in4, in5, in6);
57693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
57703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
57713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
57723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
57733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bool_bvec2_int_vec4_bool_to_mat3
57753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
57763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
57773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in0 = [ true | false | false | false | false | true | true | true | true | false ];
57783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec2 in1 = [ bvec2(true, true) | bvec2(false, false) | bvec2(false, true) | bvec2(false, false) | bvec2(false, false) | bvec2(true, false) | bvec2(false, false) | bvec2(true, true) | bvec2(true, false) | bvec2(false, true) ];
57793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input int in2 = [ 2 | -66 | 1 | 8 | -12 | 0 | 5 | 11 | 255 | -192 ];
57803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in3 = [ vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.5, -2.25, -4.875, 9.0) ];
57813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in4 = [ false | false | true | true | true | false | true | false | false | true ];
57823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(1.0, 1.0, 1.0, 2.0, 1.0, 1.25, 1.125, 1.75, 0.0) | mat3(0.0, 0.0, 0.0, -66.0, -0.5, -2.25, -4.875, 9.0, 0.0) | mat3(0.0, 0.0, 1.0, 1.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0) | mat3(0.0, 0.0, 0.0, 8.0, 1.0, 1.25, 1.125, 1.75, 1.0) | mat3(0.0, 0.0, 0.0, -12.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0) | mat3(1.0, 1.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0) | mat3(1.0, 0.0, 0.0, 5.0, 0.0, 0.5, 0.75, 0.825, 1.0) | mat3(1.0, 1.0, 1.0, 11.0, 0.0, 0.5, 0.75, 0.825, 0.0) | mat3(1.0, 1.0, 0.0, 255.0, -32.0, 64.0, -51.0, 24.0, 0.0) | mat3(0.0, 0.0, 1.0, -192.0, -0.5, -2.25, -4.875, 9.0, 1.0) ];
57833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
57843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
57863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
57873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
57883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
57903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
57913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
57923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
57933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
57943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2, in3, in4);
57953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
57963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
57973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
57983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
57993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_bvec4_ivec2_bool_bool_to_mat3
58013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
58023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
58033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ -0.5 | 36.8125 | 1.0 | 0.0 | -20.125 | 2.0 | -8.25 | 3.5 ];
58043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec4 in1 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) | bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(true, false, false, true) | bvec4(false, true, false, false) ];
58053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in2 = [ ivec2(1, 1) | ivec2(0, 0) | ivec2(0, 0) | ivec2(0, -2) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) | ivec2(-32, 64) ];
58063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in3 = [ true | false | true | false | true | false | false | true ];
58073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bool in4 = [ false | true | false | true | false | false | true | true ];
58083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat3 out0 = [ mat3(-0.5, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0) | mat3(36.8125, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat3(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0) | mat3(0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -2.0, 0.0, 1.0) | mat3(-20.125, 1.0, 1.0, 1.0, 1.0, 0.0, -2.0, 1.0, 0.0) | mat3(2.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat3(-8.25, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0) | mat3(3.5, 0.0, 1.0, 0.0, 0.0, -32.0, 64.0, 1.0, 1.0) ];
58093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
58103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
58123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
58133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
58143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
58163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
58183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
58193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
58203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat3(in0, in1, in2, in3, in4);
58213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
58223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
58233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
58243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
58253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case vec4_vec4_vec4_vec4_to_mat4
58273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
58283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
58293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in0 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(0.0, 0.5, 0.75, 0.825) ];
58303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in1 = [ vec4(1.0, 1.25, 1.125, 1.75) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) ];
58313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in2 = [ vec4(-32.0, 64.0, -51.0, 24.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) ];
58323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in3 = [ vec4(-0.5, -2.25, -4.875, 9.0) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(0.0, 0.5, 0.75, 0.825) ];
58333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(-32.0, 64.0, -51.0, 24.0, 1.0, 1.25, 1.125, 1.75, -32.0, 64.0, -51.0, 24.0, -0.5, -2.25, -4.875, 9.0) | mat4(-0.75, -0.0322580645161, 0.0526315789474, 0.25, -32.0, 64.0, -51.0, 24.0, 0.0, 0.5, 0.75, 0.825, -32.0, 64.0, -51.0, 24.0) | mat4(-0.5, -2.25, -4.875, 9.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 1.0, 1.25, 1.125, 1.75) | mat4(1.0, 1.25, 1.125, 1.75, -0.5, -2.25, -4.875, 9.0, 1.0, 1.25, 1.125, 1.75, -0.75, -0.0322580645161, 0.0526315789474, 0.25) | mat4(0.0, 0.5, 0.75, 0.825, 0.0, 0.5, 0.75, 0.825, -0.5, -2.25, -4.875, 9.0, 0.0, 0.5, 0.75, 0.825) ];
58343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
58353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
58373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
58383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
58393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
58413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
58433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
58443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
58453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0, in1, in2, in3);
58463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
58473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
58483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
58493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
58503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case ivec4_ivec4_ivec4_ivec4_to_mat4
58523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
58533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
58543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec4 in0 = [ ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) ];
58553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec4 in1 = [ ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) | ivec4(0, 0, 0, 0) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) ];
58563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec4 in2 = [ ivec4(0, 0, 0, 0) | ivec4(0, -2, -4, 9) | ivec4(1, 1, 1, 1) | ivec4(-32, 64, -51, 24) | ivec4(0, 0, 0, 0) ];
58573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec4 in3 = [ ivec4(0, 0, 0, 0) | ivec4(1, 1, 1, 1) | ivec4(0, -2, -4, 9) | ivec4(0, 0, 0, 0) | ivec4(-32, 64, -51, 24) ];
58583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0) | mat4(-32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 1.0, 1.0, 0.0, -2.0, -4.0, 9.0, 1.0, 1.0, 1.0, 1.0) | mat4(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, -2.0, -4.0, 9.0) | mat4(0.0, -2.0, -4.0, 9.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 0.0, 0.0) | mat4(0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0, 0.0, 0.0, 0.0, 0.0, -32.0, 64.0, -51.0, 24.0) ];
58593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
58603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
58623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
58633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
58643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
58663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
58683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
58693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
58703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0, in1, in2, in3);
58713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
58723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
58733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
58743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
58753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case bvec4_bvec4_bvec4_bvec4_to_mat4
58773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
58783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
58793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec4 in0 = [ bvec4(false, false, false, false) | bvec4(true, true, true, true) | bvec4(true, false, false, true) | bvec4(false, true, false, false) | bvec4(false, false, false, true) ];
58803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec4 in1 = [ bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(false, true, false, false) | bvec4(true, false, false, true) | bvec4(false, false, false, false) ];
58813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec4 in2 = [ bvec4(true, true, true, true) | bvec4(false, false, false, true) | bvec4(false, false, false, false) | bvec4(true, false, false, true) | bvec4(false, true, false, false) ];
58823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec4 in3 = [ bvec4(true, false, false, true) | bvec4(false, false, false, true) | bvec4(true, true, true, true) | bvec4(false, false, false, false) | bvec4(false, true, false, false) ];
58833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0) | mat4(1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0) | mat4(1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0) | mat4(0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0) | mat4(0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0) ];
58843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
58853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
58873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
58883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
58893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
58913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
58923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
58933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
58943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
58953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0, in1, in2, in3);
58963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
58973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
58983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
58993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
59003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	case float_ivec3_bvec3_vec4_ivec2_float_vec2_to_mat4
59023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		values
59033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{
59043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in0 = [ -0.5 | -20.125 | 1.0 | 2.0 | 3.5 | 36.8125 | -8.25 | 0.0 ];
59053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec3 in1 = [ ivec3(1, 1, 1) | ivec3(1, 1, 1) | ivec3(0, 0, 0) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) | ivec3(0, -2, -4) | ivec3(0, 0, 0) | ivec3(0, -2, -4) ];
59063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input bvec3 in2 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) ];
59073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec4 in3 = [ vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.5, -2.25, -4.875, 9.0) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(0.0, 0.5, 0.75, 0.825) | vec4(-32.0, 64.0, -51.0, 24.0) | vec4(1.0, 1.25, 1.125, 1.75) | vec4(-0.75, -0.0322580645161, 0.0526315789474, 0.25) | vec4(-0.5, -2.25, -4.875, 9.0) ];
59083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input ivec2 in4 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) | ivec2(0, -2) | ivec2(0, 0) | ivec2(1, 1) ];
59093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input float in5 = [ 3.5 | -20.125 | -8.25 | 0.0 | 36.8125 | -0.5 | 1.0 | 2.0 ];
59103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			input vec2 in6 = [ vec2(-32.0, 64.0) | vec2(1.0, 1.25) | vec2(-0.75, -0.0322580645161) | vec2(-0.5, -2.25) | vec2(1.0, 1.25) | vec2(0.0, 0.5) | vec2(0.0, 0.5) | vec2(-0.5, -2.25) ];
59113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			output mat4 out0 = [ mat4(-0.5, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.25, 1.125, 1.75, 0.0, 0.0, 3.5, -32.0, 64.0) | mat4(-20.125, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, -0.5, -2.25, -4.875, 9.0, 0.0, -2.0, -20.125, 1.0, 1.25) | mat4(1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.75, 0.825, 0.0, 0.0, -8.25, -0.75, -0.0322580645161) | mat4(2.0, -32.0, 64.0, -51.0, 0.0, 1.0, 0.0, 0.0, 0.5, 0.75, 0.825, -32.0, 64.0, 0.0, -0.5, -2.25) | mat4(3.5, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, -32.0, 64.0, -51.0, 24.0, 1.0, 1.0, 36.8125, 1.0, 1.25) | mat4(36.8125, 0.0, -2.0, -4.0, 1.0, 0.0, 0.0, 1.0, 1.25, 1.125, 1.75, 0.0, -2.0, -0.5, 0.0, 0.5) | mat4(-8.25, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.75, -0.0322580645161, 0.0526315789474, 0.25, 0.0, 0.0, 1.0, 0.0, 0.5) | mat4(0.0, 0.0, -2.0, -4.0, 0.0, 1.0, 0.0, -0.5, -2.25, -4.875, 9.0, 1.0, 1.0, 2.0, -0.5, -2.25) ];
59123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}
59133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		both ""
59153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump float;
59163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			precision mediump int;
59173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			${DECLARATIONS}
59193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			void main()
59213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{
59223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${SETUP}
59233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				out0 = mat4(in0, in1, in2, in3, in4, in5, in6);
59243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				${OUTPUT}
59253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}
59263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		""
59273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	end
59283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
59303c827367444ee418f129b2c238299f49d3264554Jarkko Poyryend # matrix_combine
5931