[AArch64] Use SVE reversed shifts in preference to MOVPRFX
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 15 Aug 2019 08:29:11 +0000 (08:29 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 15 Aug 2019 08:29:11 +0000 (08:29 +0000)
commit7d1f24018b04c13134bc47619fb8aaa390b01754
treea0e66a949a5a307f1fe4f94cb040678a3266d7f1
parent42418c1f7f5cb3b2f466f88053acc818ddc5cd4d
[AArch64] Use SVE reversed shifts in preference to MOVPRFX

This patch makes us use reversed SVE shifts when the first operand
can't be tied to the output but the second can.  This is tested
more thoroughly by the ACLE patches but is really an independent
improvement.

2019-08-15  Richard Sandiford  <richard.sandiford@arm.com>
    Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

gcc/
* config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
Add an alternative that uses reversed shifts.

gcc/testsuite/
* gcc.target/aarch64/sve/shift_1.c: Accept reversed shifts.

Co-Authored-By: Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
From-SVN: r274512
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/shift_1.c