[Bug target/85657] Make __ibm128 a separate type, even if long double uses the IBM double-double format
meissner at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jun 22 14:07:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85657
--- Comment #6 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Fri Jun 22 14:07:11 2018
New Revision: 261890
URL: https://gcc.gnu.org/viewcvs?rev=261890&root=gcc&view=rev
Log:
[gcc]
2018-06-22 Michael Meissner <meissner@linux.ibm.com>
Back port from trunk
2018-05-21 Michael Meissner <meissner@linux.ibm.com>
PR target/85657
* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not
define __ibm128 as long double.
* config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128
as a distinct type with IEEE 128-bit floating point is supported.
(init_float128_ieee): Fix up conversions between IFmode and IEEE
128-bit types to use the correct functions.
(rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to
convert between 128-bit floating point types that have different
modes but the same representation, instead of using gen_lowpart to
makean alias.
* config/rs6000/rs6000.md (IFKF): New iterator for IFmode and
KFmode.
(IFKF_reg): New attributes to give the register constraints for
IFmode and KFmode.
(extend<mode>tf2_internal): New insns to mark an explicit
conversion between 128-bit floating point types that have a
different mode but share the same representation.
[gcc/testsuite]
2018-06-22 Michael Meissner <meissner@linux.ibm.com>
Back port from trunk
2018-05-21 Michael Meissner <meissner@linux.ibm.com>
PR target/85657
* gcc.target/powerpc/pr85657-1.c: New test for converting between
__float128, __ibm128, and long double.
* gcc.target/powerpc/pr85657-2.c: Likewise.
* gcc.target/powerpc/pr85657-3.c: Likewise.
* g++.dg/pr85667.C: New test to make sure __ibm128 is
implementated as a separate type internally, and is not just an
alias for long double.
Added:
branches/gcc-8-branch/gcc/testsuite/g++.dg/pr85657.C
branches/gcc-8-branch/gcc/testsuite/gcc.target/powerpc/pr85657-1.c
branches/gcc-8-branch/gcc/testsuite/gcc.target/powerpc/pr85657-2.c
branches/gcc-8-branch/gcc/testsuite/gcc.target/powerpc/pr85657-3.c
Modified:
branches/gcc-8-branch/gcc/ChangeLog
branches/gcc-8-branch/gcc/config/rs6000/rs6000-c.c
branches/gcc-8-branch/gcc/config/rs6000/rs6000.c
branches/gcc-8-branch/gcc/config/rs6000/rs6000.md
branches/gcc-8-branch/gcc/testsuite/ChangeLog
More information about the Gcc-bugs
mailing list