aarch64: Use RTL builtins for [su]mlsl_lane[q] intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Thu, 28 Jan 2021 12:46:37 +0000 (12:46 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Fri, 29 Jan 2021 13:42:00 +0000 (13:42 +0000)
commite053f96a9f57bb73a47bdd96512ed1c83ff84c04
treeeac8910c4916151be3b00c14220dab5fe0212b62
parent0833e3e1ff14d2e1847373d770887b11e89a623c
aarch64: Use RTL builtins for [su]mlsl_lane[q] intrinsics

Rewrite [su]mlsl_lane[q] Neon intrinsics to use RTL builtins rather
than inline assembly code, allowing for better scheduling and
optimization.

gcc/ChangeLog:

2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>

* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
builtin generator macros.
* config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
Define.
* config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
instead of inline asm.
(vmlsl_lane_s32): Likewise.
(vmlsl_lane_u16): Likewise.
(vmlsl_lane_u32): Likewise.
(vmlsl_laneq_s16): Likewise.
(vmlsl_laneq_s32): Likewise.
(vmlsl_laneq_u16): Likewise.
(vmlsl_laneq_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h