[AArch64] Used prefer aliases SXTL(2) and UXTL(2)
commita74b9919b267af2ead6c04ca6b0bd63dc320a698
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jun 2018 15:50:18 +0000 (1 15:50 +0000)
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Jun 2018 15:50:18 +0000 (1 15:50 +0000)
tree78d710facd7d9b41c56e3ec05bb671c79726df82
parenta9a67ce3f31834e5c47fa784364e76f51a5a0a2d
[AArch64] Used prefer aliases SXTL(2) and UXTL(2)

The SSHL and USHL instructions are used with a shift operand of zero to
sign and zero-extend integer vectors into wider modes.
GCC makes extensive use of them to "unpack" vectors.

AArch64 defines a shorthand alias for that case. Instead of writing:
SSHLL <Vd>.<Ta>, <Vn>.<Tb>, 0

we can write

SXTL <Vd>.<Ta>, <Vn>.<Tb>

Similar for the unsigned versions and the high-part versions (SSHL2 -> SXTL2).
This makes the assembly of vectorised functions a bit more readable.

* config/aarch64/aarch64-simd.md
(aarch64_simd_vec_unpack<su>_lo_<mode>): Use UXTL and SXTL assembler
mnemonics.
(aarch64_simd_vec_unpack<su>_hi_<mode>): Use UXTL2 and SXTL2 assembler
mnemonics.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261073 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd.md