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
