]> 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, 29 Jul 2022 01:56:03 +0000 (21:56 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Fri, 29 Jul 2022 01:56:03 +0000 (21:56 -0400)
commit06c88976cc885a2fc85d96945a36a333af243ffb
tree51de2a2b19dcc3ffa6e26478764c21d31865d385
parent411a768e46e3efb126748d388b5e4beb1ac1713f
Allow __ibm128 even if IEEE 128-bit floating point is not supported.

This set of patches fixes places in the compiler where it was assumed to use
__ibm128 we needed to have IEEE 128-bit support enabled.  A future patch will
implement the change to create the __ibm128 type if either we have IEEE 128-bit
floating point enabled, or the long double type is IBM 128-bit floating point.

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

gcc/

* config/rs6000/rs600.cc (init_float128_ibm): Remove checks for hardware
floating point for the IBM 128-bit comparisons.
(rs6000_init_libfuncs): Create IBM 128-bit floating point support even
if we don't support IEEE 128-bit floating point.
(rs6000_scalar_mode_supported_p): Allow __ibm128 even if we don't
support _Float128.
* config/rs6000/rs6000.h (FLOAT128_IBM_P): Remove checks for
-mhard-float.
(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.
(extendtfif2): Allow conversion if we have __ibm128 but not IEEE 128-bit
floating point.
(trunckftf2): Likewise.
gcc/config/rs6000/rs6000.cc
gcc/config/rs6000/rs6000.h
gcc/config/rs6000/rs6000.md
This page took 0.069427 seconds and 6 git commands to generate.