aarch64: Use RTL builtins for integer mla_n intrinsics
authorJonathan Wright <jonathan.wright@arm.com>
Fri, 15 Jan 2021 15:10:53 +0000 (15:10 +0000)
committerJonathan Wright <jonathan.wright@arm.com>
Wed, 27 Jan 2021 12:44:49 +0000 (12:44 +0000)
commit9d66505a5df3c96441dc4f19efd6e1158c5a4640
tree9904bc45307a283da1c0eb8b9f8ed6b3127c2135
parentf004d6d9fab9fe732b94f0e7d254700795a37f30
aarch64: Use RTL builtins for integer mla_n intrinsics

Rewrite integer mla_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 mla_n builtin
generator macro.
* config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
Rename to...
(aarch64_mla_n<mode>): This.
* config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
instead of asm.
(vmla_n_s32): Likewise.
(vmla_n_u16): Likewise.
(vmla_n_u32): Likewise.
(vmlaq_n_s16): Likewise.
(vmlaq_n_s32): Likewise.
(vmlaq_n_u16): Likewise.
(vmlaq_n_u32): Likewise.
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h