static IntRange fromType(Type type, bool isUnsigned)
{
	if (type.toBasetype().ty == Tdchar)
		upper.value = 0x10FFFFUL;
	else if (!isUnsigned)	{
		lower.value =  ~(mask >> 1); lower.value =  ~(mask >> 1);
		lower.negative = true; upper.value = (mask >> 1);
}
uinteger_t minHalfChunk = imin.value &  ~ halfChunkMask;
	uinteger_t maxHalfChunk = imax.value &  ~halfChunkMask;
	return IntRange(lower, upper);
}