[PATCH v4 1/2] aarch64: Add SVE2 faminmax intrinsics
saurabh.jha@arm.com
saurabh.jha@arm.com
Thu Oct 3 09:51:56 GMT 2024
The AArch64 FEAT_FAMINMAX extension introduces instructions for
computing the floating point absolute maximum and minimum of the
two vectors element-wise.
This patch introduces SVE2 faminmax intrinsics. The intrinsics of this
extension are implemented as the following builtin functions:
* sva[max|min]_[m|x|z]
* sva[max|min]_[f16|f32|f64]_[m|x|z]
* sva[max|min]_n_[f16|f32|f64]_[m|x|z]
gcc/ChangeLog:
* config/aarch64/aarch64-sve-builtins-base.cc
(svamax): Absolute maximum declaration.
(svamin): Absolute minimum declaration.
* config/aarch64/aarch64-sve-builtins-base.def
(REQUIRED_EXTENSIONS): Add faminmax intrinsics behind a flag.
(svamax): Absolute maximum declaration.
(svamin): Absolute minimum declaration.
* config/aarch64/aarch64-sve-builtins-base.h: Declaring function
bases for the new intrinsics.
* config/aarch64/aarch64.h
(TARGET_SVE_FAMINMAX): New flag for SVE2 faminmax.
* config/aarch64/iterators.md: New unspecs, iterators, and attrs
for the new intrinsics.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve2/acle/asm/amax_f16.c: New test.
* gcc.target/aarch64/sve2/acle/asm/amax_f32.c: New test.
* gcc.target/aarch64/sve2/acle/asm/amax_f64.c: New test.
* gcc.target/aarch64/sve2/acle/asm/amin_f16.c: New test.
* gcc.target/aarch64/sve2/acle/asm/amin_f32.c: New test.
* gcc.target/aarch64/sve2/acle/asm/amin_f64.c: New test.
---
.../aarch64/aarch64-sve-builtins-base.cc | 4 +
.../aarch64/aarch64-sve-builtins-base.def | 5 +
.../aarch64/aarch64-sve-builtins-base.h | 2 +
gcc/config/aarch64/aarch64.h | 1 +
gcc/config/aarch64/iterators.md | 18 +-
.../aarch64/sve2/acle/asm/amax_f16.c | 312 ++++++++++++++++++
.../aarch64/sve2/acle/asm/amax_f32.c | 312 ++++++++++++++++++
.../aarch64/sve2/acle/asm/amax_f64.c | 312 ++++++++++++++++++
.../aarch64/sve2/acle/asm/amin_f16.c | 311 +++++++++++++++++
.../aarch64/sve2/acle/asm/amin_f32.c | 312 ++++++++++++++++++
.../aarch64/sve2/acle/asm/amin_f64.c | 312 ++++++++++++++++++
11 files changed, 1900 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f16.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f32.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amax_f64.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f16.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f32.c
create mode 100644 gcc/testsuite/gcc.target/aarch64/sve2/acle/asm/amin_f64.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: v4-0001-aarch64-Add-SVE2-faminmax-intrinsics.patch
Type: text/x-patch
Size: 48096 bytes
Desc: not available
URL: <https://gcc.gnu.org/pipermail/gcc-patches/attachments/20241003/c724c756/attachment-0001.bin>
More information about the Gcc-patches
mailing list