aarch64: Use RTL builtins for [su]mlsl_high_n intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 22:50:56 +0000 (22:50 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 3 Feb 2021 14:00:14 +0000 (14:00 +0000)
commitb2c4cf7b19d2441307132727dde0fb63f27d1530
tree5ef8c855c306944beae18c23c2d5e4f7a147fdd4
parent2dac6586004a5b9d0baa07dd3c7f69d3e0fc4109
aarch64: Use RTL builtins for [su]mlsl_high_n intrinsics

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

gcc/ChangeLog:

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

* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
builtin generator macros.
* config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
Define.
(aarch64_<su>mlsl_hi_n<mode>): Define.
* config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
instead of inline asm.
(vmlsl_high_n_s32): Likewise.
(vmlsl_high_n_u16): Likewise.
(vmlsl_high_n_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h