# WARNING: This file is auto-generated. Do NOT modify it manually, but rather
# modify the generating script file. Otherwise changes will be lost!
# See split-conversions.js

group vector_combine "Vector Combine Constructors"

	case vec2_vec2_to_vec4
		values
		{
			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) ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_vec2_to_ivec4
		values
		{
			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) ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_vec2_to_bvec4
		values
		{
			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) ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_bvec2_to_vec4
		values
		{
			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_bvec2_to_ivec4
		values
		{
			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_bvec2_to_bvec4
		values
		{
			input bvec2 in0 = [ bvec2(false, false) | bvec2(true, false) | bvec2(false, true) | bvec2(false, false) | bvec2(true, true) ];
			input bvec2 in1 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_float_float_float_to_vec4
		values
		{
			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case float_float_float_float_to_ivec4
		values
		{
			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case float_float_float_float_to_bvec4
		values
		{
			input float in0 = [ 1.0 | 0.0 | -0.5 | -8.25 | 3.5 | -20.125 | 36.8125 | 2.0 ];
			input float in1 = [ 0.0 | 36.8125 | -8.25 | 2.0 | 3.5 | 1.0 | -20.125 | -0.5 ];
			input float in2 = [ 3.5 | 36.8125 | -8.25 | 1.0 | 2.0 | 0.0 | -20.125 | -0.5 ];
			input float in3 = [ 3.5 | 36.8125 | 1.0 | -8.25 | 2.0 | 0.0 | -0.5 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case int_int_int_int_to_vec4
		values
		{
			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case int_int_int_int_to_ivec4
		values
		{
			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case int_int_int_int_to_bvec4
		values
		{
			input int in0 = [ -12 | -66 | 2 | 5 | 8 | -192 | 255 | 1 | 0 | 11 ];
			input int in1 = [ 2 | 5 | -66 | 11 | -192 | 8 | -12 | 1 | 255 | 0 ];
			input int in2 = [ 11 | 255 | 5 | 8 | 2 | -192 | -12 | -66 | 1 | 0 ];
			input int in3 = [ -192 | -66 | 8 | -12 | 1 | 2 | 0 | 255 | 5 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_bool_to_vec4
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ false | true ];
			input bool in2 = [ true | false ];
			input bool in3 = [ false | true ];
			output vec4 out0 = [ vec4(1.0, 0.0, 1.0, 0.0) | vec4(0.0, 1.0, 0.0, 1.0) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_bool_to_ivec4
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ false | true ];
			input bool in2 = [ true | false ];
			input bool in3 = [ false | true ];
			output ivec4 out0 = [ ivec4(1, 0, 1, 0) | ivec4(0, 1, 0, 1) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_bool_to_bvec4
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ false | true ];
			input bool in2 = [ true | false ];
			input bool in3 = [ false | true ];
			output bvec4 out0 = [ bvec4(true, false, true, false) | bvec4(false, true, false, true) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_bool_to_vec4
		values
		{
			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_bool_to_ivec4
		values
		{
			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_bool_to_bvec4
		values
		{
			input bool in0 = [ true | true | true | false | false | false | true | false | true | false ];
			input float in1 = [ 1.0 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 | -0.5 | 3.5 | -20.125 | 0.0 ];
			input int in2 = [ -192 | -12 | 2 | -66 | 255 | 8 | 0 | 5 | 11 | 1 ];
			input bool in3 = [ true | true | false | false | true | false | false | false | true | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2, in3);
				${OUTPUT}
			}
		""
	end

	case vec2_ivec2_to_vec4
		values
		{
			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) ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_ivec2_to_ivec4
		values
		{
			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) ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_ivec2_to_bvec4
		values
		{
			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) ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) | ivec2(1, 1) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_bvec2_to_vec4
		values
		{
			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) ];
			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_bvec2_to_ivec4
		values
		{
			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) ];
			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_bvec2_to_bvec4
		values
		{
			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) ];
			input bvec2 in1 = [ bvec2(false, false) | bvec2(true, false) | bvec2(true, true) | bvec2(false, true) | bvec2(false, false) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec3_float_to_vec4
		values
		{
			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) ];
			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec3_float_to_ivec4
		values
		{
			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) ];
			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec3_float_to_bvec4
		values
		{
			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) ];
			input float in1 = [ -8.25 | -20.125 | 2.0 | 0.0 | -0.5 | 3.5 | 36.8125 | 1.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec3_float_to_vec4
		values
		{
			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) ];
			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec3_float_to_ivec4
		values
		{
			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) ];
			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec3_float_to_bvec4
		values
		{
			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) ];
			input float in1 = [ 0.0 | 2.0 | 36.8125 | 3.5 | 1.0 | -0.5 | -8.25 | -20.125 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_ivec2_int_to_vec4
		values
		{
			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
			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) ];
			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case int_ivec2_int_to_ivec4
		values
		{
			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
			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) ];
			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case int_ivec2_int_to_bvec4
		values
		{
			input int in0 = [ -66 | 8 | -192 | 255 | 5 | -12 | 0 | 2 | 1 | 11 ];
			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) ];
			input int in2 = [ 8 | 2 | 11 | -192 | 255 | -12 | 0 | -66 | 1 | 5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_ivec2_to_vec4
		values
		{
			input bool in0 = [ true | true | true | true | false | false | false | false ];
			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_ivec2_to_ivec4
		values
		{
			input bool in0 = [ true | true | true | true | false | false | false | false ];
			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_ivec2_to_bvec4
		values
		{
			input bool in0 = [ true | true | true | true | false | false | false | false ];
			input float in1 = [ 2.0 | 0.0 | 3.5 | -8.25 | 36.8125 | -20.125 | 1.0 | -0.5 ];
			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) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec4(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case float_float_float_to_vec3
		values
		{
			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case float_float_float_to_ivec3
		values
		{
			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case float_float_float_to_bvec3
		values
		{
			input float in0 = [ 3.5 | 2.0 | -20.125 | -8.25 | 36.8125 | 1.0 | 0.0 | -0.5 ];
			input float in1 = [ -0.5 | 1.0 | 2.0 | -20.125 | 0.0 | -8.25 | 36.8125 | 3.5 ];
			input float in2 = [ 0.0 | 1.0 | 3.5 | -8.25 | -0.5 | 36.8125 | -20.125 | 2.0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case int_int_int_to_vec3
		values
		{
			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case int_int_int_to_ivec3
		values
		{
			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case int_int_int_to_bvec3
		values
		{
			input int in0 = [ 0 | 2 | 1 | 5 | 255 | 8 | -66 | 11 | -12 | -192 ];
			input int in1 = [ 2 | 8 | 11 | -12 | -192 | 1 | -66 | 5 | 255 | 0 ];
			input int in2 = [ -192 | -12 | -66 | 8 | 1 | 2 | 5 | 11 | 255 | 0 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_to_vec3
		values
		{
			input bool in0 = [ false | true ];
			input bool in1 = [ false | true ];
			input bool in2 = [ false | true ];
			output vec3 out0 = [ vec3(0.0, 0.0, 0.0) | vec3(1.0, 1.0, 1.0) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_to_ivec3
		values
		{
			input bool in0 = [ false | true ];
			input bool in1 = [ false | true ];
			input bool in2 = [ false | true ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_bool_bool_to_bvec3
		values
		{
			input bool in0 = [ false | true ];
			input bool in1 = [ false | true ];
			input bool in2 = [ false | true ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_to_vec3
		values
		{
			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_to_ivec3
		values
		{
			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case bool_float_int_to_bvec3
		values
		{
			input bool in0 = [ false | true | false | true | false | true | false | true | false | true ];
			input float in1 = [ 0.0 | 2.0 | 1.0 | -0.5 | -8.25 | 3.5 | -20.125 | 1.0 | 0.0 | 36.8125 ];
			input int in2 = [ -12 | -192 | 2 | 5 | -66 | 255 | 11 | 0 | 8 | 1 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1, in2);
				${OUTPUT}
			}
		""
	end

	case vec2_bool_to_vec3
		values
		{
			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) ];
			input bool in1 = [ false | true | false | true | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_bool_to_ivec3
		values
		{
			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) ];
			input bool in1 = [ false | true | false | true | true ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, 0) | ivec3(0, 0, 1) | ivec3(-32, 64, 1) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case vec2_bool_to_bvec3
		values
		{
			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) ];
			input bool in1 = [ false | true | false | true | true ];
			output bvec3 out0 = [ bvec3(true, true, false) | bvec3(true, true, true) | bvec3(true, true, false) | bvec3(false, true, true) | bvec3(true, true, true) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_float_to_vec3
		values
		{
			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) ];
			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_float_to_ivec3
		values
		{
			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) ];
			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_float_to_bvec3
		values
		{
			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) ];
			input float in1 = [ 2.0 | 36.8125 | 0.0 | -20.125 | 1.0 | -0.5 | -8.25 | 3.5 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_int_to_vec3
		values
		{
			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) ];
			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_int_to_ivec3
		values
		{
			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) ];
			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bvec2_int_to_bvec3
		values
		{
			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) ];
			input int in1 = [ 0 | 255 | 1 | 2 | 8 | 11 | -192 | 5 | -12 | -66 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_ivec2_to_vec3
		values
		{
			input bool in0 = [ false | true | false | true | true ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_ivec2_to_ivec3
		values
		{
			input bool in0 = [ false | true | false | true | true ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 0, -2) | ivec3(0, 0, 0) | ivec3(1, -32, 64) | ivec3(1, 1, 1) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_ivec2_to_bvec3
		values
		{
			input bool in0 = [ false | true | false | true | true ];
			input ivec2 in1 = [ ivec2(0, 0) | ivec2(0, -2) | ivec2(0, 0) | ivec2(-32, 64) | ivec2(1, 1) ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, false, true) | bvec3(false, false, false) | bvec3(true, true, true) | bvec3(true, true, true) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec3(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_float_to_vec2
		values
		{
			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_float_to_ivec2
		values
		{
			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_float_to_bvec2
		values
		{
			input float in0 = [ 2.0 | 3.5 | -8.25 | -0.5 | 0.0 | -20.125 | 36.8125 | 1.0 ];
			input float in1 = [ 3.5 | -20.125 | -0.5 | 2.0 | 1.0 | 0.0 | 36.8125 | -8.25 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_int_to_vec2
		values
		{
			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_int_to_ivec2
		values
		{
			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_int_to_bvec2
		values
		{
			input int in0 = [ 8 | 255 | -192 | 2 | 0 | 1 | -12 | 11 | -66 | 5 ];
			input int in1 = [ -66 | 2 | 255 | 8 | -12 | 5 | -192 | 0 | 1 | 11 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_bool_to_vec2
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ true | false ];
			output vec2 out0 = [ vec2(1.0, 1.0) | vec2(0.0, 0.0) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_bool_to_ivec2
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ true | false ];
			output ivec2 out0 = [ ivec2(1, 1) | ivec2(0, 0) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case bool_bool_to_bvec2
		values
		{
			input bool in0 = [ true | false ];
			input bool in1 = [ true | false ];
			output bvec2 out0 = [ bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_int_to_vec2
		values
		{
			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_int_to_ivec2
		values
		{
			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_int_to_bvec2
		values
		{
			input float in0 = [ 1.0 | -0.5 | -20.125 | 0.0 | 3.5 | -8.25 | 36.8125 | 2.0 | 1.0 | 0.0 ];
			input int in1 = [ -192 | -66 | 255 | 1 | 2 | 0 | -12 | 5 | 11 | 8 ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_bool_to_vec2
		values
		{
			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
			input bool in1 = [ true | false | false | false | true | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_bool_to_ivec2
		values
		{
			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
			input bool in1 = [ true | false | false | false | true | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case float_bool_to_bvec2
		values
		{
			input float in0 = [ 2.0 | -20.125 | 0.0 | 1.0 | -8.25 | -0.5 | 36.8125 | 3.5 ];
			input bool in1 = [ true | false | false | false | true | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_bool_to_vec2
		values
		{
			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = vec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_bool_to_ivec2
		values
		{
			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = ivec2(in0, in1);
				${OUTPUT}
			}
		""
	end

	case int_bool_to_bvec2
		values
		{
			input int in0 = [ 8 | 255 | 11 | -66 | 0 | -192 | -12 | 1 | 5 | 2 ];
			input bool in1 = [ true | false | true | false | true | false | false | true | false | true ];
			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) ];
		}

		both ""
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = bvec2(in0, in1);
				${OUTPUT}
			}
		""
	end


end # vector_combine
