[Bug target/82748] ICE with __builtin_fabsq and __float128 in copy_to_mode_reg, at explow.c:612

meissner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Nov 6 18:32:00 GMT 2017


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82748

--- Comment #3 from Michael Meissner <meissner at gcc dot gnu.org> ---
Author: meissner
Date: Mon Nov  6 18:31:48 2017
New Revision: 254462

URL: https://gcc.gnu.org/viewcvs?rev=254462&root=gcc&view=rev
Log:
[gcc]
2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

        PR target/82748
        * config/rs6000/rs6000-builtin.def (BU_FLOAT128_1): Delete
        float128 helper macros, which are no longer used after deleting
        the old 'q' built-in functions, and moving the round to odd
        built-in functions to being special built-in functions.
        (BU_FLOAT128_2): Likewise.
        (BU_FLOAT128_1_HW): Likewise.
        (BU_FLOAT128_2_HW): Likewise.
        (BU_FLOAT128_3_HW): Likewise.
        (FABSQ): Delete old 'q' built-in functions.
        (COPYSIGNQ): Likewise.
        (SQRTF128_ODD): Move round to odd built-in functions to be
        special built-in functions, so that we can handle
        -mabi=ieeelongdouble.
        (TRUNCF128_ODD): Likewise.
        (ADDF128_ODD): Likewise.
        (SUBF128_ODD): Likewise.
        (MULF128_ODD): Likewise.
        (DIVF128_ODD): Likewise.
        (FMAF128_ODD): Likewise.
        * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Map old 'q'
        built-in names to 'f128'.
        * config/rs6000/rs6000.c (rs6000_fold_builtin): Remove folding the
        old 'q' built-in functions, as the machine independent code for
        'f128' built-in functions handles this.
        (rs6000_expand_builtin): Add expansion for float128 round to odd
        functions, keying off on -mabi=ieeelongdouble of whether to use
        the KFmode or TFmode variant.
        (rs6000_init_builtins): Initialize the _Float128 round to odd
        built-in functions.
        * doc/extend.texi (PowerPC Built-in Functions): Document the old
        _Float128 'q' built-in functions are now mapped into the new
        'f128' built-in functions.

[gcc/testsuite]
2017-11-06  Michael Meissner  <meissner@linux.vnet.ibm.com>

        PR target/82748
        * gcc.target/powerpc/pr82748-1.c: New test.
        * gcc.target/powerpc/pr82748-2.c: Likewise.


Added:
    trunk/gcc/testsuite/gcc.target/powerpc/pr82748-1.c
    trunk/gcc/testsuite/gcc.target/powerpc/pr82748-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000-builtin.def
    trunk/gcc/config/rs6000/rs6000-c.c
    trunk/gcc/config/rs6000/rs6000.c
    trunk/gcc/doc/extend.texi
    trunk/gcc/testsuite/ChangeLog


More information about the Gcc-bugs mailing list