aarch64: Use RTL builtins for [su]mlal_high_n intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 17:25:18 +0000 (17:25 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 3 Feb 2021 13:35:24 +0000 (13:35 +0000)
commit2dac6586004a5b9d0baa07dd3c7f69d3e0fc4109
treeb82e6ef975d9deb87d6293e589ac1cb0418f4d1d
parent719877b079678f68f8acb3b4202432e93cd2c5a0
aarch64: Use RTL builtins for [su]mlal_high_n intrinsics

Rewrite [su]mlal_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]mlal_hi_n
builtin generator macros.
* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
Define.
(aarch64_<su>mlal_hi_n<mode>): Define.
* config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
instead of inline asm.
(vmlal_high_n_s32): Likewise.
(vmlal_high_n_u16): Likewise.
(vmlal_high_n_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h