Follow up patch porting some more of the NEON intrinsics to the pragma-based
framework.
ChangeLog:
* V1: Initial revision.
* V2: Rebase against master and add build_ifn_call helper to replace the
duplicated logic for handling 1-element-vector arguments to IFNs.
* V3: Respond to reviews
* Use stype for scheduling HF variants, rather than create new scheduling
types
* Insert optimization barriers when necessary
* Convert signed integer inputs to unsigned to avoid UB on overflow
* Add _alt variants of fmls insns to match instances where one input is
negated and the other is duplicated.
Karl Meakin (2):
aarch64: Port NEON multiply-accumulate intrinsics to pragma-based
framework
aarch64: Port NEON fused multiply-accumulate intrinsics to
pragma-based framework
gcc/config/aarch64/aarch64-acle-builtins.h | 15 +
.../aarch64/aarch64-neon-builtins-base.cc | 196 ++-
.../aarch64/aarch64-neon-builtins-base.def | 75 +
gcc/config/aarch64/aarch64-simd-builtins.def | 24 -
gcc/config/aarch64/aarch64-simd.md | 390 ++---
gcc/config/aarch64/arm_neon.h | 1468 ++---------------
gcc/config/aarch64/iterators.md | 7 +
.../gcc.target/aarch64/fmla_intrinsic_1.c | 25 +-
.../gcc.target/aarch64/fmls_intrinsic_1.c | 25 +-
gcc/testsuite/gcc.target/aarch64/neon/vfma.c | 220 +++
gcc/testsuite/gcc.target/aarch64/neon/vfms.c | 220 +++
gcc/testsuite/gcc.target/aarch64/neon/vmla.c | 350 ++++
gcc/testsuite/gcc.target/aarch64/neon/vmls.c | 350 ++++
.../gcc.target/aarch64/simd/pr99195_3.c | 3 +-
14 files changed, 1755 insertions(+), 1613 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vfma.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vfms.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vmla.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vmls.c
--
2.56.0