summaryrefslogtreecommitdiff
path: root/gcc/config/aarch64/aarch64-simd-builtins.def
diff options
context:
space:
mode:
authorktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2014-04-24 08:05:07 +0000
committerktkachov <ktkachov@138bc75d-0d04-0410-961f-82ee72b054a4>2014-04-24 08:05:07 +0000
commite98e78fa5116387ebc5399a04cb9aab6b721445e (patch)
treed75eb1689e288d18f6af7502ba97ab07a3ee2e05 /gcc/config/aarch64/aarch64-simd-builtins.def
parent85aec1741682905841d9cbbae1d9a9fac5ec93dc (diff)
downloadgcc-e98e78fa5116387ebc5399a04cb9aab6b721445e.tar.gz
[AArch64] Vectorise bswap[16,32,64]
* config/aarch64/aarch64-builtins.c (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16, BUILT_IN_BSWAP32, BUILT_IN_BSWAP64. * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern. * config/aarch64/aarch64-simd-builtins.def: Define vector bswap builtins. * config/aarch64/iterator.md (VDQHSD): New mode iterator. (Vrevsuff): New mode attribute. * lib/target-supports.exp (check_effective_target_vect_bswap): New. * gcc.dg/vect/vect-bswap16: New test. * gcc.dg/vect/vect-bswap32: Likewise. * gcc.dg/vect/vect-bswap64: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209736 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/aarch64/aarch64-simd-builtins.def')
-rw-r--r--gcc/config/aarch64/aarch64-simd-builtins.def2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def
index bfd2b750ba0..fa332ae5948 100644
--- a/gcc/config/aarch64/aarch64-simd-builtins.def
+++ b/gcc/config/aarch64/aarch64-simd-builtins.def
@@ -341,6 +341,8 @@
VAR1 (UNOP, floatunsv4si, 2, v4sf)
VAR1 (UNOP, floatunsv2di, 2, v2df)
+ VAR5 (UNOPU, bswap, 10, v4hi, v8hi, v2si, v4si, v2di)
+
/* Implemented by
aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>. */
BUILTIN_VALL (BINOP, zip1, 0)