Follow up patch porting some more of the NEON intrinsics to the pragma-based
framework.

There is a slight regression in the assembly generated by `vabs_s64`: I couldn't
figure out how to generate optimal assembly for it without also regressing the
assembly generated for `vabsd_s64`. I would be grateful if reviewers have any
suggestions for how to fix it.

ChangeLog:
* V1: Initial revision.

Karl Meakin (7):
  aarch64: Fix vadd behaviour on overflow
  aarch64: Port vsub intrinsics to pragma-based framework
  aarch64: port vmul intrinsics to pragma-based framework
  aarch64: Port vdiv intrinsics to pragma-based framework
  aarch64: Port vneg intrinsics to pragma-based framework
  aarch64: Port vabs intrinsics to pragma-based framework
  aarch64: Port vabd and vaba intrinscs to pragma-based framework

 gcc/config/aarch64/aarch64-acle-builtins.h    |   5 +
 gcc/config/aarch64/aarch64-builtins.cc        |   2 -
 .../aarch64/aarch64-neon-builtins-base.cc     | 159 +++-
 .../aarch64/aarch64-neon-builtins-base.def    |  71 +-
 gcc/config/aarch64/aarch64-simd-builtins.def  |  17 -
 gcc/config/aarch64/aarch64-simd.md            |  18 +-
 gcc/config/aarch64/arm_fp16.h                 |   4 +-
 gcc/config/aarch64/arm_neon.h                 | 826 +-----------------
 gcc/config/aarch64/iterators.md               |   1 -
 gcc/testsuite/gcc.target/aarch64/neon/vaba.c  |  88 ++
 gcc/testsuite/gcc.target/aarch64/neon/vabd.c  | 144 +++
 gcc/testsuite/gcc.target/aarch64/neon/vabs.c  | 116 +++
 gcc/testsuite/gcc.target/aarch64/neon/vadd.c  |  23 +-
 gcc/testsuite/gcc.target/aarch64/neon/vdiv.c  |  46 +
 gcc/testsuite/gcc.target/aarch64/neon/vmul.c  | 130 +++
 gcc/testsuite/gcc.target/aarch64/neon/vneg.c  | 109 +++
 gcc/testsuite/gcc.target/aarch64/neon/vsub.c  | 172 ++++
 gcc/testsuite/gcc.target/aarch64/signbit-2.c  |   2 +-
 .../aarch64/singleton_intrinsics_1.c          |   2 +-
 .../gcc.target/aarch64/vabs_intrinsic_1.c     |   9 +-
 20 files changed, 1090 insertions(+), 854 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vaba.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vabd.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vabs.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vdiv.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vmul.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vneg.c
 create mode 100644 gcc/testsuite/gcc.target/aarch64/neon/vsub.c

--
2.51.0

Reply via email to