From: Peter Bergner Date: Thu, 20 Feb 2020 17:25:12 +0000 (-0600) Subject: rs6000: Fix infinite loop building ghostscript and icu [PR93658] X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e6f24f824beb8ba6805702e287bbd6153b472488;p=gcc.git 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. --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc8f9e85bae..95c883ebe49 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 f34e1ba70c6..9910b27ed24 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 89acd3f518f..e0399e01f2c 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