From e6f24f824beb8ba6805702e287bbd6153b472488 Mon Sep 17 00:00:00 2001 From: Peter Bergner Date: Thu, 20 Feb 2020 11:25:12 -0600 Subject: [PATCH] rs6000: Fix infinite loop building ghostscript and icu [PR93658] Previous push didn't get the ChangeLog entries or the actual fix. Push those now. gcc/ PR target/93658 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX vector modes. gcc/testsuite/ PR target/93658 * gcc.target/powerpc/pr93658.c: New test. --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc8f9e8..95c883e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2020-02-20 Peter Bergner + + PR target/93658 + * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX + vector modes. + 2020-02-20 Martin Liska PR translation/93831 diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index f34e1ba..9910b27 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -8808,7 +8808,7 @@ rs6000_legitimate_address_p (machine_mode mode, rtx x, bool reg_ok_strict) bool quad_offset_p = mode_supports_dq_form (mode); /* If this is an unaligned stvx/ldvx type address, discard the outer AND. */ - if (VECTOR_MEM_ALTIVEC_P (mode) + if (VECTOR_MEM_ALTIVEC_OR_VSX_P (mode) && GET_CODE (x) == AND && CONST_INT_P (XEXP (x, 1)) && INTVAL (XEXP (x, 1)) == -16) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 89acd3f..e0399e0 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2020-02-20 Peter Bergner + + PR target/93658 + * gcc.target/powerpc/pr93658.c: New test. + 2020-02-20 Tobias Burnus PR fortran/93825 -- 2.7.4