On Mon, 10 Jul 2017, Yuri Gribov wrote:

> On Mon, Jul 10, 2017 at 11:06 AM, Joseph Myers <jos...@codesourcery.com> 
> wrote:
> > On Sat, 8 Jul 2017, Yuri Gribov wrote:
> >
> >> On Fri, Jul 7, 2017 at 11:51 PM, Joseph Myers <jos...@codesourcery.com> 
> >> wrote:
> >> > On Fri, 7 Jul 2017, Yuri Gribov wrote:
> >> >
> >> >> > I suspect infinities would already work with the patch as-is (the 
> >> >> > logic
> >> >> > dealing with constants outside the range of the integer type).  I'm 
> >> >> > less
> >> >> > clear that NaNs would work properly.  (If the comparison is == or != 
> >> >> > you
> >> >> > can optimize it for quiet NaNs, to false and true respectively.  If 
> >> >> > it's a
> >> >> > signaling NaN, or < <= > >=, optimizing to false is only valid with
> >> >> > -fno-trapping-math, as it would lose an "invalid" exception.)
> >> >>
> >> >> It's actually under -fsignaling-nans (which if off by default). I've
> >> >
> >> > No, ordered comparisons with qNaNs should result in exceptions,
> >>
> >> I assume you mean sNaNs.
> >
> > No, I mean qNaNs, as I said.  Any of < <= > >= with a NaN argument,
> > whether quiet or signaling, raise "invalid"; == and != only raise
> > "invalid" for sNaNs, not qNaNs.  (For a few architectures this is broken
> > in GCC; see bug 52451 for x86, 58684 for powerpc, 77918 for s390.  We
> > should not introduce more instances of such breakage, and should fix it
> > where it exists.)
> 
> Oh, I see. Assuming that I fix this (in obvious way, by changing
> real_issignaling_nan to real_is_nan) and boostrap/regtest, is the rest
> of the patch ok?

Please send the updated patch (including any testcase updates needed) for 
review.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to