aarch64: Use RTL builtins for [su]mlal intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Tue, 26 Jan 2021 22:32:08 +0000 (22:32 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 17:44:43 +0000 (17:44 +0000)
commitd53a4f9b6815195db4d697e63b575f9e6223035e
tree20a7e43f2d7ae4ce52da12a9afdab5fcca650068
parentc31a633e13ff5222e9285a2c2b7897094ab061d9
aarch64: Use RTL builtins for [su]mlal intrinsics

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

gcc/ChangeLog:

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

* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
builtin generator macros.
* config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
Rename to...
(aarch64_<su>mlal<mode>): This.
* config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
instead of inline asm.
(vmlal_s16): Likewise.
(vmlal_s32): Likewise.
(vmlal_u8): Likewise.
(vmlal_u16): Likewise.
(vmlal_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h