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.