diff options
author | Kewen Lin <linkw@linux.ibm.com> | 2024-07-30 21:21:15 -0500 |
---|---|---|
committer | Kewen Lin <linkw@gcc.gnu.org> | 2024-07-30 21:21:15 -0500 |
commit | 993a3c0894c487dce5efc6cfb5b31a8358905e8f (patch) | |
tree | 49692d1e4d9b31581892532f6b0a9b964f19c18c /gcc/dwarf2codeview.cc | |
parent | 169341f0893a009736f9715db969909880d0e876 (diff) | |
download | gcc-993a3c0894c487dce5efc6cfb5b31a8358905e8f.zip gcc-993a3c0894c487dce5efc6cfb5b31a8358905e8f.tar.gz gcc-993a3c0894c487dce5efc6cfb5b31a8358905e8f.tar.bz2 |
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.
Diffstat (limited to 'gcc/dwarf2codeview.cc')
0 files changed, 0 insertions, 0 deletions