making double type default to 80 or 128 bytes

Jim Wilson jimw@sifive.com
Mon Aug 10 23:37:17 GMT 2020


On Fri, Aug 7, 2020 at 9:00 AM Dennis Clarke via Gcc-help
<gcc-help@gcc.gnu.org> wrote:
> There is no such thng as an 80 byte double. The standards state that we
> shall use floating point types which are of specific bit widths and all
> of those are perfectly aligned on perfect power of two bit widths. These
> range from 16 bits to 256 bit width. To date I have not seen hardware
> which natively supports the 256-bit floating point type.  The IBM POWER9
> processor as well as the RISC-V and Fujitsu SPARC provide hardware for
> the 128-bit width and they seem to work very well indeed. The 80-bit
> thing to which you refer is a hack put in place by the intel/x86 world
> simply because the hardware can not properly handle anything larger. It
> should not exist at all in if we use the floating point standards.

The IEEE FP standard defines some basic formats which have fixed
bit-widths, and extended formats which have implementation defined bit
widths.  The 80-bit x86 format meets the definition of extended
binary64 in the 2008 standard, and extended double in the 1985
standard.  Likewise the similar 96 bit (with 16-bits of zero padding)
format used on 68k systems.  Nowadays though, I think most people
would rather have a proper 128-bit long double than an 80/96-bit
extended double.  But there is nothing hackish about the 80/96 bit
extended doubles on x86/68k.  They have just outlived their
usefulness.

Jim


More information about the Gcc-help mailing list