[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: M4 1.4.9b testsuite failure
From: |
Bruno Haible |
Subject: |
Re: M4 1.4.9b testsuite failure |
Date: |
Thu, 31 May 2007 12:57:36 +0200 |
User-agent: |
KMail/1.5.4 |
Andreas Schwab wrote:
> Bruno Haible <address@hidden> writes:
>
> > union u { unsigned int word[4]; long double value; } x =
> > { { 0x00000000, 0x40000001, 0x0000ffff, 0x00000000 } };
>
> This is not a valid number. The integer bit _must_ be 1 for a valid NaN
> or Infinity.
The Intel IA-64 documentation does not employ the term "valid". According to
this doc [1][2], the number is a "Pseudo-NaN". So in some sense it's a
number outside IEEE-754.
While isnanl(X) = 0 may be subject to discussion,
finitel(X) = 1 and
printf %g X = "-5.94866e+4931"
are clearly inappropriate.
Bruno
[1] Intel IA-64 Architecture Software Developer's Manual, Volume 1:
Application Architecture.
Figure 5-6 "Memory to Floating-Point Register Data Translation"
[2] Intel IA-64 Architecture Software Developer's Manual, Volume 1:
Application Architecture.
Table 5-2 "Floating-Point Register Encodings"