[Bug target/107315] support 128bit long double on aarch64 darwin

iains at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Oct 24 08:29:28 GMT 2022


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107315

--- Comment #3 from Iain Sandoe <iains at gcc dot gnu.org> ---
As Andrew says, we cannot alter the type of "long double" since the ABI
specifies it is the same as double ... but .. we can (and have) add 16byte
float support.

------

The development branch for aarch64-darwin is here:
https://github.com/iains/gcc-darwin-arm64 (this work will be upstreamed when I
have some spare time)

The issue of a 16byte float value was discussed here:
https://github.com/iains/gcc-darwin-arm64/issues/5

Primarily, this was motivated by Fortran where support for REAL*16 is needed
for at least some applications.

The feedback from Apple was "if we were to implement 16byte float support, we'd
use the ABI from AAPCS64".

So, in the development branches, we have implemented the following type support
(IEEE754, but of course, soft floating point)

_Float128
__float128
REAL*16

In c-family and Fortran respectively.


More information about the Gcc-bugs mailing list