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

--- Comment #21 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Peter Bergner
<berg...@gcc.gnu.org>:

https://gcc.gnu.org/g:410ddbbc6612ca25f4a00120987921372937623e

commit r10-9433-g410ddbbc6612ca25f4a00120987921372937623e
Author: Peter Bergner <berg...@linux.ibm.com>
Date:   Mon Mar 8 12:20:41 2021 -0600

    rs6000: Fix invalid splits when using Altivec style addresses [PR98959]

    The rs6000_emit_le_vsx_* functions assume they are not passed an Altivec
    style "& ~16" address.  However, some of our expanders and splitters do
    not verify we do not have an Altivec style address before calling those
    functions, leading to an ICE.  The solution here is to guard the expanders
    and splitters to ensure we do not call them if we're given an Altivec style
    address.

    2021-03-08  Peter Bergner  <berg...@linux.ibm.com>

    gcc/
            PR target/98959
            * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an
assert
            to ensure we do not have an Altivec style address.
            * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if
passed
            an Altivec style address.
            (*vsx_le_perm_store_<mode>): Likewise.
            (splitters after *vsx_le_perm_store_<mode>): Likewise.
            (vsx_load_<mode>): Disable special expander if passed an Altivec
            style address.
            (vsx_store_<mode>): Likewise.

    gcc/testsuite/
            PR target/98959
            * gcc.target/powerpc/pr98959.c: New test.

    (cherry picked from commit cb25dea3ef2c7768007bffc56f0e31e1c42b44e2)

Reply via email to