aarch64: Add support for unpacked SVE shifts
authorRichard Sandiford <richard.sandiford@arm.com>
Mon, 11 Jan 2021 18:03:20 +0000 (18:03 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Mon, 11 Jan 2021 18:03:20 +0000 (18:03 +0000)
commitb81fbfe1eb5759999c69349d6291d27444585fee
treeb5e7ed6af8fe0b341d1af10a82437c166ce19303
parentcbe9758ff494d55d558a2a0c5e8702c50fcebdf0
aarch64: Add support for unpacked SVE shifts

This patch adds support for unpacked SVE LSL, ASR and LSR.
For right shifts, the type suffix needs to be taken from the
element size rather than the container size.

gcc/
* config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
(v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
(*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.

gcc/testsuite/
* gcc.target/aarch64/sve/shift_2.c: New test.
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/gcc.target/aarch64/sve/shift_2.c [new file with mode: 0644]