aarch64: Use RTL builtins for integer mls_n intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Fri, 15 Jan 2021 15:48:59 +0000 (15:48 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 15:55:55 +0000 (15:55 +0000)
commit3fd10728cb1aacf593a7a006ad40e874f791d655
tree633b6cd58747b69e58250a47b455af33e3ce6096
parentd2201ac0df461cb97a0187afc230029a6790b70e
aarch64: Use RTL builtins for integer mls_n intrinsics

Rewrite integer mls_n Neon intrinsics to use RTL builtins rather than
inline assembly code, allowing for better scheduling and
optimization.

gcc/ChangeLog:

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

* config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
generator macro.
* config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
Rename to...
(aarch64_mls_n<mode>): This.
* config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
instead of asm.
(vmls_n_s32): Likewise.
(vmls_n_u16): Likewise.
(vmls_n_u32): Likewise.
(vmlsq_n_s16): Likewise.
(vmlsq_n_s32): Likewise.
(vmlsq_n_u16): Likewise.
(vmlsq_n_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h