Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Aug 2012 23:01:01 -0000
From:      Peter Jeremy <peter@rulingia.com>
To:        Bruce Evans <brde@optusnet.com.au>
Cc:        Diane Bruce <db@db.net>, John Baldwin <jhb@freebsd.org>, David Chisnall <theraven@freebsd.org>, Stephen Montgomery-Smith <stephen@missouri.edu>, Bruce Evans <bde@freebsd.org>, Steve Kargl <sgk@troutmask.apl.washington.edu>, David Schultz <das@freebsd.org>, Warner Losh <imp@bsdimp.com>
Subject:   Re: Use of C99 extra long double math functions after r236148
Message-ID:  <20120722220031.GA7791@server.rulingia.com>
Resent-Message-ID: <20120812230054.GU20453@server.rulingia.com>
In-Reply-To: <20120722121219.GC73662@server.rulingia.com>
References:  <5004A5C7.1040405@missouri.edu> <5004DEA9.1050001@missouri.edu> <20120717040118.GA86840@troutmask.apl.washington.edu> <20120717042125.GF66913@server.rulingia.com> <20120717043848.GB87001@troutmask.apl.washington.edu> <20120717225328.GA86902@server.rulingia.com> <20120717232740.GA95026@troutmask.apl.washington.edu> <20120718001337.GA87817@server.rulingia.com> <20120718123627.D1575@besplex.bde.org> <20120722121219.GC73662@server.rulingia.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--TB36FDmn/VVEgNH/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2012-Jul-22 22:12:19 +1000, Peter Jeremy <peter@server.rulingia.com> wro=
te:
>A have simplified the default (NaN + I*NaN) return from catanh() to
>the minimun to ensure that both real & imaginary parts return as NaN.
>I've been doing some experiments on mixing NaNs using x87, SSE, SPARC64
>and ARM (last on Linux) and have come to the conclusion that there is
>no standard behaviour:  Given x & y as NaNs, (x+y) can return either
>x or y, possibly with the sign bit from the other operand. depending
>on the FPU.

I've tried running my exception test program on Solaris/SPARC using
SunStudio and it gives different results to FreeBSD/sparc64 in some
cases so it looks like the FreeBSD/sparc64 exception handling code
is also buggy.

And, when the base gcc tries to shortcut floating point expressions
and execute them at compile time, it also gets exception handling
wrong in several cases (it'll correctly detect that a constant
expression evaluates to Inf or NaN but, in many cases, the NaN it
calculates is different to the x87 or SSE evaluation of the same
arguments).

--=20
Peter Jeremy

--TB36FDmn/VVEgNH/
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEARECAAYFAlAMd/8ACgkQ/opHv/APuIcS0gCgsrcNiDSYJUv7BJ1suNBzj19v
YzUAoJwG8BJIx0RIXszST3Xr3/dsczIf
=FwOq
-----END PGP SIGNATURE-----

--TB36FDmn/VVEgNH/--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120722220031.GA7791>