# 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_to_vector "Vector to Vector Conversions"

	case vec4_to_vec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_vec3
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_vec2
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_ivec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_ivec3
		version 300 es
		values
		{
			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) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_ivec2
		version 300 es
		values
		{
			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) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_bvec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_bvec3
		version 300 es
		values
		{
			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) ];
			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_bvec2
		version 300 es
		values
		{
			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) ];
			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_vec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_vec3
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_vec2
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_ivec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_ivec3
		version 300 es
		values
		{
			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) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_ivec2
		version 300 es
		values
		{
			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) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_bvec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_bvec3
		version 300 es
		values
		{
			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) ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec4_to_bvec2
		version 300 es
		values
		{
			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) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_vec4
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_vec3
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_vec2
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_ivec4
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_ivec3
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_ivec2
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_bvec4
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_bvec3
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec4_to_bvec2
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_vec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_vec3
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_vec2
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_ivec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_ivec3
		version 300 es
		values
		{
			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) ];
			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_ivec2
		version 300 es
		values
		{
			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) ];
			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_bvec4
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_bvec3
		version 300 es
		values
		{
			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) ];
			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec4_to_bvec2
		version 300 es
		values
		{
			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) ];
			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec4_to_uvec4
		version 300 es
		values
		{
			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) ];
			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec4(in0);
				${OUTPUT}
			}
		""
	end

	case vec4_to_uvec3
		version 300 es
		values
		{
			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) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case vec4_to_uvec2
		version 300 es
		values
		{
			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) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case ivec4_to_uvec4
		version 300 es
		values
		{
			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) ];
			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec4(in0);
				${OUTPUT}
			}
		""
	end

	case ivec4_to_uvec3
		version 300 es
		values
		{
			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) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case ivec4_to_uvec2
		version 300 es
		values
		{
			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) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case uvec4_to_uvec4
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output uvec4 out0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec4(in0);
				${OUTPUT}
			}
		""
	end

	case uvec4_to_uvec3
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case uvec4_to_uvec2
		version 300 es
		values
		{
			input uvec4 in0 = [ uvec4(0, 0, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 2, 4, 9) | uvec4(32, 64, 51, 24) | uvec4(0, 0, 0, 0) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case bvec4_to_uvec4
		version 300 es
		values
		{
			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) ];
			output uvec4 out0 = [ uvec4(1, 0, 0, 1) | uvec4(0, 0, 0, 1) | uvec4(0, 1, 0, 0) | uvec4(1, 1, 1, 1) | uvec4(0, 0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec4(in0);
				${OUTPUT}
			}
		""
	end

	case bvec4_to_uvec3
		version 300 es
		values
		{
			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) ];
			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case bvec4_to_uvec2
		version 300 es
		values
		{
			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) ];
			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case vec3_to_vec3
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_vec2
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_ivec3
		version 300 es
		values
		{
			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) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_ivec2
		version 300 es
		values
		{
			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) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_bvec3
		version 300 es
		values
		{
			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) ];
			output bvec3 out0 = [ bvec3(false, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) | bvec3(true, true, true) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_bvec2
		version 300 es
		values
		{
			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) ];
			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_vec3
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_vec2
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_ivec3
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_ivec2
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_bvec3
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec3_to_bvec2
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, -2, -4) | ivec3(-32, 64, -51) | ivec3(0, 0, 0) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_vec3
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_vec2
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_ivec3
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output ivec3 out0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_ivec2
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_bvec3
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output bvec3 out0 = [ bvec3(false, false, false) | bvec3(true, true, true) | bvec3(false, true, true) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec3_to_bvec2
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_vec3
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_vec2
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_ivec3
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output ivec3 out0 = [ ivec3(1, 0, 0) | ivec3(0, 0, 0) | ivec3(0, 1, 0) | ivec3(1, 1, 1) | ivec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_ivec2
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_bvec3
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output bvec3 out0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec3_to_bvec2
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec3_to_uvec3
		version 300 es
		values
		{
			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) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case vec3_to_uvec2
		version 300 es
		values
		{
			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) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case ivec3_to_uvec3
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case ivec3_to_uvec2
		version 300 es
		values
		{
			input ivec3 in0 = [ ivec3(0, 0, 0) | ivec3(1, 1, 1) | ivec3(0, 2, 4) | ivec3(32, 64, 51) | ivec3(0, 0, 0) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case uvec3_to_uvec3
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output uvec3 out0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case uvec3_to_uvec2
		version 300 es
		values
		{
			input uvec3 in0 = [ uvec3(0, 0, 0) | uvec3(1, 1, 1) | uvec3(0, 2, 4) | uvec3(32, 64, 51) | uvec3(0, 0, 0) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case bvec3_to_uvec3
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output uvec3 out0 = [ uvec3(1, 0, 0) | uvec3(0, 0, 0) | uvec3(0, 1, 0) | uvec3(1, 1, 1) | uvec3(0, 0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec3(in0);
				${OUTPUT}
			}
		""
	end

	case bvec3_to_uvec2
		version 300 es
		values
		{
			input bvec3 in0 = [ bvec3(true, false, false) | bvec3(false, false, false) | bvec3(false, true, false) | bvec3(true, true, true) | bvec3(false, false, false) ];
			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case vec2_to_vec2
		version 300 es
		values
		{
			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) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec2_to_ivec2
		version 300 es
		values
		{
			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) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec2_to_bvec2
		version 300 es
		values
		{
			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) ];
			output bvec2 out0 = [ bvec2(false, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) | bvec2(true, true) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec2_to_vec2
		version 300 es
		values
		{
			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec2_to_ivec2
		version 300 es
		values
		{
			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case ivec2_to_bvec2
		version 300 es
		values
		{
			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, -2) | ivec2(-32, 64) | ivec2(0, 0) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec2_to_vec2
		version 300 es
		values
		{
			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
			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) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec2_to_ivec2
		version 300 es
		values
		{
			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
			output ivec2 out0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case uvec2_to_bvec2
		version 300 es
		values
		{
			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
			output bvec2 out0 = [ bvec2(false, false) | bvec2(true, true) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

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

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec2_to_ivec2
		version 300 es
		values
		{
			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			output ivec2 out0 = [ ivec2(1, 0) | ivec2(0, 0) | ivec2(0, 1) | ivec2(1, 1) | ivec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case bvec2_to_bvec2
		version 300 es
		values
		{
			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			output bvec2 out0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

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

	case vec2_to_uvec2
		version 300 es
		values
		{
			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) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case ivec2_to_uvec2
		version 300 es
		values
		{
			input ivec2 in0 = [ ivec2(0, 0) | ivec2(1, 1) | ivec2(0, 2) | ivec2(32, 64) | ivec2(0, 0) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case uvec2_to_uvec2
		version 300 es
		values
		{
			input uvec2 in0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
			output uvec2 out0 = [ uvec2(0, 0) | uvec2(1, 1) | uvec2(0, 2) | uvec2(32, 64) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end

	case bvec2_to_uvec2
		version 300 es
		values
		{
			input bvec2 in0 = [ bvec2(true, false) | bvec2(false, false) | bvec2(false, true) | bvec2(true, true) | bvec2(false, false) ];
			output uvec2 out0 = [ uvec2(1, 0) | uvec2(0, 0) | uvec2(0, 1) | uvec2(1, 1) | uvec2(0, 0) ];
		}

		both ""
			#version 300 es
			precision mediump float;
			precision mediump int;

			${DECLARATIONS}

			void main()
			{
				${SETUP}
				out0 = uvec2(in0);
				${OUTPUT}
			}
		""
	end


end # vector_to_vector
