unnormal Intel 80-bit long doubles and isnanl
Siddhesh Poyarekar
siddhesh@gotplt.org
Wed Nov 25 02:47:49 GMT 2020
On 11/25/20 2:58 AM, Joseph Myers wrote:
> glibc effectively treats them as unspecified behavior - we don't expect
> them to produce any particular meaningful function return value (this
> includes the possibility that such an invalid encoding might be returned
> by a function given such an encoding as input), but if they result in
> buffer overflows, infinite loops or similar, that's fixed as a bug.
Knowing what to call these numbers would be the first step towards
knowing what to do with them, which is why I considered classification
the first thing to tackle.
> Note that there are lots of libm function implementations, not just
> isnanl, which work by looking at the encoding without considering the
> possibility it might be one of the kinds of encodings (other than sNaN)
> that cannot result from floating-point arithmetic. This includes both
> ldbl-96 implementations in C and implementations in assembly for i386 and
> x86_64, and probably implementations for m68k and ia64 as well.
> iscanonical is the only operation in glibc that deliberately tries to
> detect and produce defined results for these encodings.
Once we have consensus on what unnormals are, it will be much easier for
me to work through the toolchain and ensure that we consistently treat
them as NaNs.
Would you agree to treating unnormals as NaNs and consequently have
glibc provide that guarantee in the library instead of either declaring
it undefined or maintaining the status quo, i.e. keeping it unspecified?
Siddhesh
More information about the Gcc
mailing list