vector mins = '-16 -16 -24';
vector maxs = '16 16 32';
ivec4 i4 = '1 2 -3 4';
vec4 v4 = '1 2 -3 4';
lvec4 l4 = '1 2 -3 4';
uivec4 ui4 = '1 2 -3 4';
dvec4 d4 = '1 2 -3 4';
ulvec4 ul4 = '1 2 -3 4';

int
check_v (vector v, float x, float y, float z)
{
	return v.x != x || v.y != y || v.z != z;
}

int check_ivec4 (ivec4 v, int x, int y, int z, int w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int check_vec4 (vec4 v, float x, float y, float z, float w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int check_lvec4 (lvec4 v, long x, long y, long z, long w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int check_uivec4 (uivec4 v, unsigned x, unsigned y, unsigned z, unsigned w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int check_dvec4 (dvec4 v, double x, double y, double z, double w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int check_ulvec4 (ulvec4 v, unsigned long x, unsigned long y, unsigned long z,
				  unsigned long w)
{
	return v.x != x || v.y != y || v.z != z || v.w != w;
}

int
main ()
{
	int ret = 0;
	ret |= check_v (mins, -16, -16, -24);
	ret |= check_v (maxs, 16, 16, 32);
	ret |= check_ivec4 (i4, 1, 2, -3, 4);
	ret |= check_vec4 (v4, 1, 2, -3, 4);
	ret |= check_lvec4 (l4, 1, 2, -3, 4);
	ret |= check_uivec4 (ui4, 1, 2, -3, 4);
	ret |= check_dvec4 (d4, 1, 2, -3, 4);
	ret |= check_ulvec4 (ul4, 1, 2, -3, 4);
	return ret;
}
