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

Reply via email to