• Tom Lane's avatar
    Put in_range_float4_float8's work in-line. · cb3e9e40
    Tom Lane authored
    In commit 8b29e88c, I'd dithered about whether to make
    in_range_float4_float8 be a standalone copy of the float in-range logic
    or have it punt to in_range_float8_float8.  I went with the latter, which
    saves code space though at the cost of performance and readability.
    
    However, it emerges that this tickles a compiler or hardware bug on
    buildfarm member opossum.  Test results from commit 55e0e458 show
    conclusively that widening a float4 NaN to float8 produces Inf, not NaN,
    on that machine; which accounts perfectly for the window RANGE test
    failures it's been showing.  We can dodge this problem by making
    in_range_float4_float8 be an independent function, so that it checks
    for NaN inputs before widening them.
    
    Ordinarily I'd not be very excited about working around such obviously
    broken functionality; but given that this was a judgment call to begin
    with, I don't mind reversing it.
    cb3e9e40
float.c 84.6 KB