gnu/gcc/940432eaa242f4e050233feafbbf63fd2cf1b940 aarch64: Add new absolute diff accumulate intrinsic
This patch adds support for the following absolute difference accumulation
intrinsics defined by SVE/SME2.3:
- svabal_s16
- svabal_n_s16
- svabal_s32
- svabal_n_s32
- svabal_s64
- svabal_n_s64
- svabal_u16
- svabal_n_u16
- svabal_u32
- svabal_n_u32
- svabal_u64
- svabal_n_u64
gcc/ChangeLog:
* config/aarch64/aarch64-sve-builtins-sve2.cc (svabal): Define.
* config/aarch64/aarch64-sve-builtins-sve2.def (svabal): New
function.
* config/aarch64/aarch64-sve-builtins-sve2.h (svabal): Declare.
* config/aarch64/iterators.md (UNSPEC_SABAL, UNSPEC_UABAL): New
unspecs.
(SVE2_INT_BINARY_LONG, SVE2_INT_ADD_BINARY_LONG): Add
UNSPEC_SABAL and UNSPEC_UABAL.
(sve_int_op, sve_int_add_op, sve_type_unspec): Handle them.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve2/acle/asm/abal_s16.c: New test.
* gcc.target/aarch64/sve2/acle/asm/abal_s32.c: Likewise.
* gcc.target/aarch64/sve2/acle/asm/abal_s64.c: Likewise.
* gcc.target/aarch64/sve2/acle/asm/abal_u16.c: Likewise.
* gcc.target/aarch64/sve2/acle/asm/abal_u32.c: Likewise.
* gcc.target/aarch64/sve2/acle/asm/abal_u64.c: Likewise.
10 files changed