This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: 128 bit long double on AMD 64
- From: "Nelson H. F. Beebe" <beebe at math dot utah dot edu>
- To: Usman W Roshan cis faculty/staff <usman at oak dot njit dot edu>
- Cc: beebe at math dot utah dot edu, gcc-help at gcc dot gnu dot org
- Date: Sat, 14 Oct 2006 08:42:32 -0600 (MDT)
- Subject: Re: 128 bit long double on AMD 64
Usman Roshan <usman@oak.njit.edu> asks on Sat, 14 Oct 2006 09:23:53
-0400 (EDT) about 128-bit floating-point arithmetic on AMD64
processors.
We have several Sun AMD64-based systems, all running Red Hat
Enterprise Linux AS release 4 (Nahant Update 3).
On those systems, we have C/C++/Fortran compilers from GNU, Intel,
PathScale, Portland Group, and Sun, plus tcc and lcc. The latter two
generate only IA-32 code.
None of these compilers provides 128-bit floating-point arithmetic on
this platform.
Indeed, of the 30 or so different Unix platforms that I use routinely
for development and testing, only one vendor, Hewlett-Packard, on
HP-UX IA-64, has chosen to offer a 128-bit floating-point long double
in C and C++ on an Intel CPU.
Sun Solaris SPARC has 128-bit floating-point in software, and I use it
extensively.
IBM S/390 VM has 128-bit floating-point in hardware in both S/360
hexadecimal (since 1969) and IEEE 754 (since 1999) formats, but IBM
has not yet made them available in their GNU/Linux O/S on that
platform. Indeed, their GNU/Linux provides access only to IEEE 754
arithmetic, unless one is prepared to program in assembly language.
IBM AIX on PowerPC and SGI IRIX MIPS also have 128-bit floating-point,
but both use a doubled-double format, which fails to extend the
exponent range, offers a 106-bit significand (instead of a 113-bit
one), and which has serious arithmetic anomalies arising from the fact
that the upper and lower members of the pair do not have their
exponents linked by a constant difference.
Apple Mac OS X on PowerPC treats long double as 64-bit double, but the
recent Mac OS X on Intel use the Intel 80-bit format for long double.
gcc on FreeBSD, NetBSD, and OpenBSD on IA-32 treats long double as
double, even though IA-32 hardware has had the 80-bit format for 25
years.
All compilers that I know of for GNU/Linux and Solaris on IA-32 use
the 80-bit format for long double.
-------------------------------------------------------------------------------
- Nelson H. F. Beebe Tel: +1 801 581 5254 -
- University of Utah FAX: +1 801 581 4148 -
- Department of Mathematics, 110 LCB Internet e-mail: beebe@math.utah.edu -
- 155 S 1400 E RM 233 beebe@acm.org beebe@computer.org -
- Salt Lake City, UT 84112-0090, USA URL: http://www.math.utah.edu/~beebe/ -
-------------------------------------------------------------------------------