aarch64: Use RTL builtins for [su]mlal_high intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 14:55:45 +0000 (14:55 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 3 Feb 2021 13:33:50 +0000 (13:33 +0000)
commit719877b079678f68f8acb3b4202432e93cd2c5a0
tree5b4ec735ba9b6a1183f1f383fdff5073073543b5
parent6dc82826ba61b25855e5a79f4479d009395a7299
aarch64: Use RTL builtins for [su]mlal_high intrinsics

Rewrite [su]mlal_high 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 RTL builtin
generator macros.
* config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
Rename to...
(aarch64_<su>mlal_hi<mode>_insn): This.
(aarch64_<su>mlal_hi<mode>): Define.
* config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
instead of inline asm.
(vmlal_high_s16): Likewise.
(vmlal_high_s32): Likewise.
(vmlal_high_u8): Likewise.
(vmlal_high_u16): Likewise.
(vmlal_high_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h