aarch64: Use memcpy to copy vector tables in vtbl[34] intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Thu, 8 Jul 2021 22:27:54 +0000 (23:27 +0100)
committerJonathan Wright <jonathan.wright@arm.com>
Fri, 23 Jul 2021 11:14:42 +0000 (12:14 +0100)
commitf2f04d8b9d1f5d4fc8c3a17c7fa5ac518574f2df
treebb0665a0de5b6d44b61b3872eeae320c71a156af
parent5f65676eba16f38e5e22122e6885c0bd8e504276
aarch64: Use memcpy to copy vector tables in vtbl[34] intrinsics

Use __builtin_memcpy to copy vector structures instead of building
a new opaque structure one vector at a time in each of the vtbl[34]
Neon intrinsics in arm_neon.h. This simplifies the header file and
also improves code generation - superfluous move instructions were
emitted for every register extraction/set in this additional
structure.

gcc/ChangeLog:

2021-07-08  Jonathan Wright  <jonathan.wright@arm.com>

* config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy
instead of constructing __builtin_aarch64_simd_oi one vector
at a time.
(vtbl3_u8): Likewise.
(vtbl3_p8): Likewise.
(vtbl4_s8): Likewise.
(vtbl4_u8): Likewise.
(vtbl4_p8): Likewise.
gcc/config/aarch64/arm_neon.h