[AArch64] Add MOVPRFX alternatives for SVE EXT patterns
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 15 Aug 2019 08:37:14 +0000 (08:37 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 15 Aug 2019 08:37:14 +0000 (08:37 +0000)
commit06b3ba23eb6ff965a92cd99d2835d4c29316a447
tree318b8d020e52354c789c169d538ca72cfdc781a6
parent2ae21bd133c357fcd7b6e06dc7d7d9e0660abe2c
[AArch64] Add MOVPRFX alternatives for SVE EXT patterns

We use EXT both to implement vec_extract for large indices and as a
permute.  In both cases we can use MOVPRFX to handle the case in which
the first input and output can't be tied.

2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
(*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.

gcc/testsuite/
* gcc.target/aarch64/sve/ext_2.c: Expect a MOVPRFX.
* gcc.target/aarch64/sve/ext_3.c: New test.

From-SVN: r274515
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/ext_2.c
gcc/testsuite/gcc.target/aarch64/sve/ext_3.c [new file with mode: 0644]