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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Kewen Lin <li...@gcc.gnu.org>:

https://gcc.gnu.org/g:993a3c0894c487dce5efc6cfb5b31a8358905e8f

commit r15-2428-g993a3c0894c487dce5efc6cfb5b31a8358905e8f
Author: Kewen Lin <li...@linux.ibm.com>
Date:   Tue Jul 30 21:21:15 2024 -0500

    rs6000: Relax some FLOAT128 expander condition for FLOAT128_IEEE_P
[PR105359]

    As PR105359 shows, we disable some FLOAT128 expanders for
    64-bit long double, but in fact IEEE float128 types like
    __ieee128 are only guarded with TARGET_FLOAT128_TYPE and
    TARGET_LONG_DOUBLE_128 is only checked when determining if
    we can reuse long_double_type_node.  So this patch is to
    relax all affected FLOAT128 expander conditions for
    FLOAT128_IEEE_P.  By the way, currently IBM double double
    type __ibm128 is guarded by TARGET_LONG_DOUBLE_128, so we
    have to use TARGET_LONG_DOUBLE_128 for it.  IMHO, it's not
    necessary and can be enhanced later.

    Btw, for all test cases mentioned in PR105359, I removed
    the xfails and tested them with explicit -mlong-double-64,
    both pr79004.c and float128-hw.c are tested well and
    float128-hw4.c isn't tested (unsupported due to 64 bit
    long double conflicts with -mabi=ieeelongdouble).

            PR target/105359

    gcc/ChangeLog:

            * config/rs6000/rs6000.md (@extenddf<FLOAT128:mode>2): Don't check
            TARGET_LONG_DOUBLE_128 for FLOAT128_IEEE_P modes.
            (extendsf<FLOAT128:mode>2): Likewise.
            (trunc<FLOAT128:mode>df2): Likewise.
            (trunc<FLOAT128:mode>sf2): Likewise.
            (floatsi<FLOAT128:mode>2): Likewise.
            (fix_trunc<FLOAT128:mode>si2): Likewise.

    gcc/testsuite/ChangeLog:

            * gcc.target/powerpc/pr79004.c: Remove xfails.
  • [Bug target/105359] _Float128 e... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to