]> git.ipfire.org Git - thirdparty/gcc.git/commit
aarch64: PR target/94591: Don't generate invalid REV64 insns
authorAlex Coplan <alex.coplan@arm.com>
Fri, 29 May 2020 13:05:11 +0000 (14:05 +0100)
committerAlex Coplan <alex.coplan@arm.com>
Fri, 29 May 2020 13:05:11 +0000 (14:05 +0100)
commit49824d35e0c87a5fdb3f5ea41223aa21d6ca6bfc
treea47fa4302cd9674c3b5128a3e1026ad1f2f77b51
parent49a35d1f699892907d7a34198274a286993c0f22
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.

(cherry picked from commit 98452668d362bb9e6358f7eb5cff69f4f5ab1d45)
gcc/config/aarch64/aarch64.c
gcc/testsuite/gcc.c-torture/execute/pr94591.c [new file with mode: 0644]