I accidently broke AIX with my patch on October 6th. That patch split
-mfloat128 into -mfloat128-type and -mfloat128 under PowerPC Linux. This patch
fixes that issue. I bootstrapped it on PowerPC Linux with no regressions, and
David Edelsohn reports that it fixes the problem on AIX. Is it ok to apply the
patch?
2016-10-10 Michael Meissner
PR target/77924
* config/rs6000/rs6000.c (rs6000_init_builtins): Only create the
distinct __ibm128 IBM extended double type if long doubles are
128-bits and the default format for long double is IEEE 128-bit.
Index: gcc/config/rs6000/rs6000.c
===
--- gcc/config/rs6000/rs6000.c (revision 240941)
+++ gcc/config/rs6000/rs6000.c (working copy)
@@ -16572,10 +16572,10 @@ rs6000_init_builtins (void)
floating point, we need make sure the type is non-zero or else self-test
fails during bootstrap.
- We don't register a built-in type for __ibm128 or __float128 if the type
- is the same as long double. Instead we add a #define for __ibm128 or
- __float128 in rs6000_cpu_cpp_builtins to long double. */
- if (TARGET_IEEEQUAD || !TARGET_LONG_DOUBLE_128)
+ We don't register a built-in type for __ibm128 if the type is the same as
+ long double. Instead we add a #define for __ibm128 in
+ rs6000_cpu_cpp_builtins to long double. */
+ if (TARGET_LONG_DOUBLE_128 && FLOAT128_IEEE_P (TFmode))
{
ibm128_float_type_node = make_node (REAL_TYPE);
TYPE_PRECISION (ibm128_float_type_node) = 128;
--
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797