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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Alex Coplan
<acop...@gcc.gnu.org>:

https://gcc.gnu.org/g:9266a101ac9707a164bd241c00675a45aae01373

commit r10-9770-g9266a101ac9707a164bd241c00675a45aae01373
Author: Alex Coplan <alex.cop...@arm.com>
Date:   Thu Apr 8 09:36:57 2021 +0100

    arm: Various MVE vec_duplicate fixes [PR99647]

    This patch fixes various issues with vec_duplicate in the MVE patterns.
    Currently there are two patterns named *mve_mov<mode>. The second of
    these is really a vector duplicate rather than a move, so I've renamed
    it accordingly.

    As it stands, there are several issues with this pattern:
    1. The MVE_types iterator has an entry for TImode, but
       vec_duplicate:TI is invalid.
    2. The mode of the operand to vec_duplicate is SImode, but it should
       vary according to the vector mode iterator.
    3. The second alternative of this pattern is bogus: it allows matching
       symbol_refs (the cause of the PR) and const_ints (which means that it
       matches (vec_duplicate (const_int ...)) which is non-canonical: such
       rtxes should be const_vectors instead and handled by the main vector
       move pattern).

    This patch fixes all of these issues, and removes the redundant
    *mve_vec_duplicate<mode> pattern.

    gcc/ChangeLog:

            PR target/99647
            * config/arm/iterators.md (MVE_vecs): New.
            (V_elem): Also handle V2DF.
            * config/arm/mve.md (*mve_mov<mode>): Rename to ...
            (*mve_vdup<mode>): ... this. Remove second alternative since
            vec_duplicate of const_int is not canonical RTL, and we don't
            want to match symbol_refs.
            (*mve_vec_duplicate<mode>): Delete (pattern is redundant).

    gcc/testsuite/ChangeLog:

            PR target/99647
            * gcc.c-torture/compile/pr99647.c: New test.

    (cherry picked from commit 67d56b272021363eb58c319ca3b73beba3a60817)
  • [Bug target/99647] arm: GCC gen... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to