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

group invalid_implicit_conversions "Invalid Implicit Conversions"

	case add_float_int_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a + b;
			}
		""
	end
	case add_float_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_float_ivec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_float_ivec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_float_ivec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a + b;
			}
		""
	end
	case add_float_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec2_int_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec2_ivec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec2_ivec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec3_int_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec3_ivec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec3_ivec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_vec4_int_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a + b;
			}
		""
	end
	case add_vec4_ivec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_vec4_ivec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_vec4_ivec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_float_uint_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uint b;
				float c = a + b;
			}
		""
	end
	case add_float_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				float a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_float_uvec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec2 b;
				float c = a + b;
			}
		""
	end
	case add_float_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				float a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_float_uvec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec3 b;
				float c = a + b;
			}
		""
	end
	case add_float_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				float a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_float_uvec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec4 b;
				float c = a + b;
			}
		""
	end
	case add_float_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				float a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_vec2_uint_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uint b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec2 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_vec2_uvec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec2 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec2 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_vec2_uvec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec3 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec2 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_vec2_uvec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec4 b;
				vec2 c = a + b;
			}
		""
	end
	case add_vec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec2 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_vec3_uint_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uint b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec3 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_vec3_uvec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec2 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec3 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_vec3_uvec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec3 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec3 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_vec3_uvec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec4 b;
				vec3 c = a + b;
			}
		""
	end
	case add_vec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec3 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_vec4_uint_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uint b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec4 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_vec4_uvec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec2 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec4 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_vec4_uvec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec3 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec4 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_vec4_uvec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec4 b;
				vec4 c = a + b;
			}
		""
	end
	case add_vec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec4 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_int_uint_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uint b;
				int c = a + b;
			}
		""
	end
	case add_int_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				int a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_int_uvec2_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec2 b;
				int c = a + b;
			}
		""
	end
	case add_int_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				int a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_int_uvec3_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec3 b;
				int c = a + b;
			}
		""
	end
	case add_int_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				int a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_int_uvec4_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec4 b;
				int c = a + b;
			}
		""
	end
	case add_int_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				int a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_ivec2_uint_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uint b;
				ivec2 c = a + b;
			}
		""
	end
	case add_ivec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec2 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_ivec2_uvec2_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec2 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_ivec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec2 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_ivec2_uvec3_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec3 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_ivec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec2 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_ivec2_uvec4_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec4 b;
				ivec2 c = a + b;
			}
		""
	end
	case add_ivec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec2 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_ivec3_uint_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uint b;
				ivec3 c = a + b;
			}
		""
	end
	case add_ivec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec3 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_ivec3_uvec2_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec2 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_ivec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec3 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_ivec3_uvec3_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec3 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_ivec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec3 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_ivec3_uvec4_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec4 b;
				ivec3 c = a + b;
			}
		""
	end
	case add_ivec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec3 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case add_ivec4_uint_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uint b;
				ivec4 c = a + b;
			}
		""
	end
	case add_ivec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec4 a;
				uint b;
				uint c = a + b;
			}
		""
	end
	case add_ivec4_uvec2_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec2 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_ivec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec4 a;
				uvec2 b;
				uvec2 c = a + b;
			}
		""
	end
	case add_ivec4_uvec3_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec3 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_ivec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec4 a;
				uvec3 b;
				uvec3 c = a + b;
			}
		""
	end
	case add_ivec4_uvec4_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec4 b;
				ivec4 c = a + b;
			}
		""
	end
	case add_ivec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec4 a;
				uvec4 b;
				uvec4 c = a + b;
			}
		""
	end
	case mul_float_int_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a * b;
			}
		""
	end
	case mul_float_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_float_ivec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_float_ivec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_float_ivec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a * b;
			}
		""
	end
	case mul_float_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec2_int_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec2_ivec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec2_ivec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec3_int_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec3_ivec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec3_ivec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_vec4_int_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a * b;
			}
		""
	end
	case mul_vec4_ivec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_vec4_ivec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_vec4_ivec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_float_uint_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uint b;
				float c = a * b;
			}
		""
	end
	case mul_float_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				float a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_float_uvec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec2 b;
				float c = a * b;
			}
		""
	end
	case mul_float_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				float a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_float_uvec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec3 b;
				float c = a * b;
			}
		""
	end
	case mul_float_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				float a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_float_uvec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec4 b;
				float c = a * b;
			}
		""
	end
	case mul_float_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				float a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_vec2_uint_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uint b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec2 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_vec2_uvec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec2 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec2 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_vec2_uvec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec3 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec2 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_vec2_uvec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec4 b;
				vec2 c = a * b;
			}
		""
	end
	case mul_vec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec2 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_vec3_uint_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uint b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec3 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_vec3_uvec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec2 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec3 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_vec3_uvec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec3 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec3 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_vec3_uvec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec4 b;
				vec3 c = a * b;
			}
		""
	end
	case mul_vec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec3 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_vec4_uint_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uint b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec4 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_vec4_uvec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec2 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec4 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_vec4_uvec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec3 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec4 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_vec4_uvec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec4 b;
				vec4 c = a * b;
			}
		""
	end
	case mul_vec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec4 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_int_uint_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uint b;
				int c = a * b;
			}
		""
	end
	case mul_int_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				int a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_int_uvec2_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec2 b;
				int c = a * b;
			}
		""
	end
	case mul_int_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				int a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_int_uvec3_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec3 b;
				int c = a * b;
			}
		""
	end
	case mul_int_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				int a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_int_uvec4_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec4 b;
				int c = a * b;
			}
		""
	end
	case mul_int_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				int a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_ivec2_uint_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uint b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_ivec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec2 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_ivec2_uvec2_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec2 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_ivec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec2 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_ivec2_uvec3_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec3 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_ivec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec2 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_ivec2_uvec4_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec4 b;
				ivec2 c = a * b;
			}
		""
	end
	case mul_ivec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec2 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_ivec3_uint_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uint b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_ivec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec3 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_ivec3_uvec2_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec2 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_ivec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec3 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_ivec3_uvec3_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec3 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_ivec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec3 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_ivec3_uvec4_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec4 b;
				ivec3 c = a * b;
			}
		""
	end
	case mul_ivec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec3 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case mul_ivec4_uint_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uint b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_ivec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec4 a;
				uint b;
				uint c = a * b;
			}
		""
	end
	case mul_ivec4_uvec2_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec2 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_ivec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec4 a;
				uvec2 b;
				uvec2 c = a * b;
			}
		""
	end
	case mul_ivec4_uvec3_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec3 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_ivec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec4 a;
				uvec3 b;
				uvec3 c = a * b;
			}
		""
	end
	case mul_ivec4_uvec4_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec4 b;
				ivec4 c = a * b;
			}
		""
	end
	case mul_ivec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec4 a;
				uvec4 b;
				uvec4 c = a * b;
			}
		""
	end
	case sub_float_int_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a - b;
			}
		""
	end
	case sub_float_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_float_ivec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_float_ivec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_float_ivec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a - b;
			}
		""
	end
	case sub_float_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec2_int_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec2_ivec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec2_ivec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec3_int_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec3_ivec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec3_ivec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_vec4_int_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a - b;
			}
		""
	end
	case sub_vec4_ivec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_vec4_ivec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_vec4_ivec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_float_uint_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uint b;
				float c = a - b;
			}
		""
	end
	case sub_float_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				float a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_float_uvec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec2 b;
				float c = a - b;
			}
		""
	end
	case sub_float_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				float a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_float_uvec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec3 b;
				float c = a - b;
			}
		""
	end
	case sub_float_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				float a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_float_uvec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec4 b;
				float c = a - b;
			}
		""
	end
	case sub_float_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				float a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_vec2_uint_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uint b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec2 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_vec2_uvec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec2 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec2 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_vec2_uvec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec3 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec2 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_vec2_uvec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec4 b;
				vec2 c = a - b;
			}
		""
	end
	case sub_vec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec2 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_vec3_uint_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uint b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec3 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_vec3_uvec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec2 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec3 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_vec3_uvec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec3 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec3 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_vec3_uvec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec4 b;
				vec3 c = a - b;
			}
		""
	end
	case sub_vec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec3 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_vec4_uint_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uint b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec4 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_vec4_uvec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec2 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec4 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_vec4_uvec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec3 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec4 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_vec4_uvec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec4 b;
				vec4 c = a - b;
			}
		""
	end
	case sub_vec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec4 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_int_uint_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uint b;
				int c = a - b;
			}
		""
	end
	case sub_int_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				int a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_int_uvec2_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec2 b;
				int c = a - b;
			}
		""
	end
	case sub_int_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				int a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_int_uvec3_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec3 b;
				int c = a - b;
			}
		""
	end
	case sub_int_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				int a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_int_uvec4_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec4 b;
				int c = a - b;
			}
		""
	end
	case sub_int_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				int a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_ivec2_uint_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uint b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_ivec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec2 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_ivec2_uvec2_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec2 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_ivec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec2 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_ivec2_uvec3_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec3 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_ivec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec2 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_ivec2_uvec4_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec4 b;
				ivec2 c = a - b;
			}
		""
	end
	case sub_ivec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec2 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_ivec3_uint_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uint b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_ivec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec3 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_ivec3_uvec2_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec2 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_ivec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec3 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_ivec3_uvec3_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec3 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_ivec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec3 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_ivec3_uvec4_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec4 b;
				ivec3 c = a - b;
			}
		""
	end
	case sub_ivec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec3 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case sub_ivec4_uint_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uint b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_ivec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec4 a;
				uint b;
				uint c = a - b;
			}
		""
	end
	case sub_ivec4_uvec2_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec2 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_ivec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec4 a;
				uvec2 b;
				uvec2 c = a - b;
			}
		""
	end
	case sub_ivec4_uvec3_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec3 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_ivec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec4 a;
				uvec3 b;
				uvec3 c = a - b;
			}
		""
	end
	case sub_ivec4_uvec4_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec4 b;
				ivec4 c = a - b;
			}
		""
	end
	case sub_ivec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec4 a;
				uvec4 b;
				uvec4 c = a - b;
			}
		""
	end
	case div_float_int_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				int b;
				float c = a / b;
			}
		""
	end
	case div_float_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				float a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_float_ivec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec2 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				float a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_float_ivec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec3 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				float a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_float_ivec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				ivec4 b;
				float c = a / b;
			}
		""
	end
	case div_float_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				float a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec2_int_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				int b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec2 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec2_ivec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec2 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec2 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec3 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec2 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec2_ivec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				ivec4 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec2 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec3_int_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				int b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec3 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec3_ivec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec2 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec3 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec3_ivec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec3 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec3 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				ivec4 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec3 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_vec4_int_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				int b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_int_int
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				int c;
				vec4 a;
				int b;
				int c = a / b;
			}
		""
	end
	case div_vec4_ivec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec2 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec2_ivec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec2 c;
				vec4 a;
				ivec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_vec4_ivec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec3 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec3_ivec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec3 c;
				vec4 a;
				ivec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_vec4_ivec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				ivec4 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_ivec4_ivec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				ivec4 c;
				vec4 a;
				ivec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_float_uint_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uint b;
				float c = a / b;
			}
		""
	end
	case div_float_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				float a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_float_uvec2_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec2 b;
				float c = a / b;
			}
		""
	end
	case div_float_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				float a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_float_uvec3_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec3 b;
				float c = a / b;
			}
		""
	end
	case div_float_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				float a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_float_uvec4_float
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				float c;
				float a;
				uvec4 b;
				float c = a / b;
			}
		""
	end
	case div_float_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				float a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_vec2_uint_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uint b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec2 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_vec2_uvec2_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec2 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec2 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_vec2_uvec3_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec3 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec2 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_vec2_uvec4_vec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec2 c;
				vec2 a;
				uvec4 b;
				vec2 c = a / b;
			}
		""
	end
	case div_vec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec2 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_vec3_uint_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uint b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec3 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_vec3_uvec2_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec2 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec3 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_vec3_uvec3_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec3 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec3 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_vec3_uvec4_vec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec3 c;
				vec3 a;
				uvec4 b;
				vec3 c = a / b;
			}
		""
	end
	case div_vec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec3 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_vec4_uint_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uint b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				vec4 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_vec4_uvec2_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec2 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				vec4 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_vec4_uvec3_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec3 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				vec4 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_vec4_uvec4_vec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				vec4 c;
				vec4 a;
				uvec4 b;
				vec4 c = a / b;
			}
		""
	end
	case div_vec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				vec4 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_int_uint_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uint b;
				int c = a / b;
			}
		""
	end
	case div_int_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				int a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_int_uvec2_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec2 b;
				int c = a / b;
			}
		""
	end
	case div_int_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				int a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_int_uvec3_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec3 b;
				int c = a / b;
			}
		""
	end
	case div_int_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				int a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_int_uvec4_int
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				int c;
				int a;
				uvec4 b;
				int c = a / b;
			}
		""
	end
	case div_int_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				int a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_ivec2_uint_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uint b;
				ivec2 c = a / b;
			}
		""
	end
	case div_ivec2_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec2 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_ivec2_uvec2_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec2 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_ivec2_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec2 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_ivec2_uvec3_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec3 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_ivec2_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec2 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_ivec2_uvec4_ivec2
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec2 c;
				ivec2 a;
				uvec4 b;
				ivec2 c = a / b;
			}
		""
	end
	case div_ivec2_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec2 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_ivec3_uint_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uint b;
				ivec3 c = a / b;
			}
		""
	end
	case div_ivec3_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec3 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_ivec3_uvec2_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec2 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_ivec3_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec3 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_ivec3_uvec3_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec3 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_ivec3_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec3 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_ivec3_uvec4_ivec3
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec3 c;
				ivec3 a;
				uvec4 b;
				ivec3 c = a / b;
			}
		""
	end
	case div_ivec3_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec3 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end
	case div_ivec4_uint_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uint b;
				ivec4 c = a / b;
			}
		""
	end
	case div_ivec4_uint_uint
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uint c;
				ivec4 a;
				uint b;
				uint c = a / b;
			}
		""
	end
	case div_ivec4_uvec2_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec2 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_ivec4_uvec2_uvec2
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec2 c;
				ivec4 a;
				uvec2 b;
				uvec2 c = a / b;
			}
		""
	end
	case div_ivec4_uvec3_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec3 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_ivec4_uvec3_uvec3
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec3 c;
				ivec4 a;
				uvec3 b;
				uvec3 c = a / b;
			}
		""
	end
	case div_ivec4_uvec4_ivec4
		expect compile_fail
		version 300 es

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

			${DECLARATIONS}

			void main()
			{
				ivec4 c;
				ivec4 a;
				uvec4 b;
				ivec4 c = a / b;
			}
		""
	end
	case div_ivec4_uvec4_uvec4
		expect compile_fail
		version 300 es

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

			 ${DECLARATIONS}

			void main()
			{
				uvec4 c;
				ivec4 a;
				uvec4 b;
				uvec4 c = a / b;
			}
		""
	end

end # invalid_implicit_conversions