/* [config]
 * expect_result: fail
 * glsl_version: 1.50
 * require_extensions: GL_ARB_gpu_shader_int64
 * [end config]
 *
 * GL_ARB_gpu_shader_int64 spec states:
 *
 *     "No implicit conversions are
 *      provided to convert from unsigned to signed integer types, from
 *      floating-point to integer types, or from higher-precision to
 *      lower-precision types.  There are no implicit array or structure
 *      conversions."
 */

#version 150
#extension GL_ARB_gpu_shader_int64 : require

uniform vec2 from;
uniform u64vec2 to;

out vec4 color;

#define RED vec4(1.0, 0.0, 0.0, 1.0)
#define GREEN vec4(0.0, 1.0, 0.0, 1.0)

void main()
{
	u64vec2 converted = from;
	bool match = converted == to;
	color = match ? GREEN : RED;
}
