>>>>> "Tom" == Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
Tom> if (unlikely(num < (float4) INT_MIN || num >= (float4) INT_MAX || isnan(num)))
>> if (num < (float4)INT_MIN || num >= -(float4)INT_MIN || ...
Tom> Meh. Seems to me that's relying on pretty much the same
Tom> assumptions
No, because we know that INT_MIN is always exactly representable as a
float (whereas INT_MAX is not), and therefore the cast result will not
depend on any rounding choices whether at compile or run time. Nor does
it depend on knowing that float4 can't represent INT_MAX exactly.
--
Andrew (irc:RhodiumToad)