[AArch64] Prefer FPRs over GPRs for INSR
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 7 Aug 2019 19:12:15 +0000 (19:12 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 7 Aug 2019 19:12:15 +0000 (19:12 +0000)
commit61ee25b9e7d84fbb18218887d1fecfb10f72993a
tree80e718d102cb04989f0317a84ffe5e3ebc331b2e
parent801790b37ca817089ecbae214340162e6d94ea6a
[AArch64] Prefer FPRs over GPRs for INSR

INSR of GPRs involves a cross-file move while INSR of FPRs doesn't.
We should therefore disparage the GPR version relative to the FPR
version.

The patch also adds MOVPRFX handling, but this is only tested
properly by the ACLE.

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

gcc/
* config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
MOVPRFX alternatives.  Make the GPR alternatives more expensive
than the FPR ones.

gcc/testsuite/
* gcc.target/aarch64/sve/init_12.c: Expect w1 to be moved into
a temporary FPR.

From-SVN: r274192
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/init_12.c