[Bug target/94591] [8/9/10/11 Regression] Assembler messages: Error: operand mismatch -- `rev64 v0.2d,v0.2d' (or `rev32 v0.2s,v0.2s')

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 19 19:44:54 GMT 2020


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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Alex Coplan <acoplan@gcc.gnu.org>:

https://gcc.gnu.org/g:98452668d362bb9e6358f7eb5cff69f4f5ab1d45

commit r11-502-g98452668d362bb9e6358f7eb5cff69f4f5ab1d45
Author: Alex Coplan <alex.coplan@arm.com>
Date:   Tue May 19 20:33:20 2020 +0100

    [aarch64] PR target/94591: Don't generate invalid REV64 insns

    This fixes PR94591. The problem was the function aarch64_evpc_rev_local()
    matching vector permutations that were not reversals. In particular, prior
to
    this patch, this function matched the identity permutation which led to
    generating bogus REV64 insns which were rejected by the assembler.

    gcc/
            PR target/94591
            * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match
            identity permutation.

    gcc/testsuite/
            PR target/94591
            * gcc.c-torture/execute/pr94591.c: New test.


More information about the Gcc-bugs mailing list