[aarch64] PR target/94591: Don't generate invalid REV64 insns
authorAlex Coplan <alex.coplan@arm.com>
Tue, 19 May 2020 19:33:20 +0000 (20:33 +0100)
committerAlex Coplan <alex.coplan@arm.com>
Tue, 19 May 2020 19:43:57 +0000 (20:43 +0100)
commit98452668d362bb9e6358f7eb5cff69f4f5ab1d45
tree597495ab1d146c96945da3edd2dc3a4d80d49ce6
parent25c284f14881eeb68b9ddf16c6760b9535d824a8
[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.
gcc/ChangeLog
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/pr94591.c [new file with mode: 0644]