]> gcc.gnu.org Git - gcc.git/commit
Allow __ibm128 even if IEEE 128-bit floating point is not supported.
authorMichael Meissner <meissner@linux.ibm.com>
Fri, 9 Sep 2022 18:04:37 +0000 (14:04 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Fri, 9 Sep 2022 18:04:37 +0000 (14:04 -0400)
commitd1c714cf35ee974e3dc02e93fc7f761b29a89660
tree59ee86f1c1186739550a2a4d9a2e20fa8b3e316d
parentbbf978de4f7e51957d83fb0a537e4228c2c479d0
Allow __ibm128 even if IEEE 128-bit floating point is not supported.

This patch allows the use of the __ibm128 keyword on non-VSX systems.
Originally, the __ibm128 keyword was only enabled when the IEEE 128-bit
floating point is enabled.  Sometime back in the GCC 12 development period,
Segher asked that the __ibm128 keyword be allowed in older systems that don't
support IEEE 128-bit.  But at the time, stage 1 had closed for GCC 12, so I
deferred doing this change until GCC 13.  This patch allows __ibm128 to be used
if either IEEE 128-bit is enabled or long double used the IBM 128-bit format.

2022-09-09   Michael Meissner  <meissner@linux.ibm.com>

gcc/

* config/rs6000/rs6000-builtins.cc (rs6000_init_builtins): Enable using
the__ibm128 keyword on systems that either use the 128-bit IBM long
double format for long double or support IEEE 128-bit.
* config/rs6000/rs6000.cc (rs6000_init_libfuncs): Create IBM 128-bit
floating point support functions on systems that support the __ibm128
keyword.
(rs6000_scalar_mode_supported_p): Likewise.
* config/rs6000/rs6000.h (TARGET_IBM128): New macro.
* config/rs6000/rs6000.md (@extenddf<mode>2_fprs): Allow IFmode to be
converted even if long double is not 128-bits.
(extenddf<mode>2_vsx): Likewise.
(extendiftf2):Allow conversion on systems that support the __ibm128
keyword.
(extendtfif2): Likewise.
(trunciftf2): Likewise.
(trunctfif2): Likewise.
gcc/config/rs6000/rs6000-builtin.cc
gcc/config/rs6000/rs6000.cc
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
This page took 0.060181 seconds and 6 git commands to generate.