[gcc r17-2938] aarch64: Define `DEF_SVE_TYPE_SUFFIX` in terms of `DEF_SVE_NEON_TYPE_SUFFIX`
Karl Meakin via Gcc-cvs <[email protected]> Tue, 4 Aug 2026 14:24:12 +0000 (GMT)
| Newsgroups | gmane.comp.gcc.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://gcc.gnu.org/g:c4726f9bd471fbf6e1147ce045eafb9c08f1f2e5 commit r17-2938-gc4726f9bd471fbf6e1147ce045eafb9c08f1f2e5 Author: Karl Meakin <[email protected]> Date: Tue Sep 16 17:27:54 2025 +0000 aarch64: Define `DEF_SVE_TYPE_SUFFIX` in terms of `DEF_SVE_NEON_TYPE_SUFFIX` Define `DEF_SVE_TYPE_SUFFIX` in terms of `DEF_SVE_NEON_TYPE_SUFFIX` so callers only need to define `DEF_SVE_NEON_TYPE_SUFFIX` when including `aarch64-sve-builtins.def`. gcc/ChangeLog: * config/aarch64/aarch64-sve-builtins.def (DEF_SVE_TYPE_SUFFIX): Define in terms of `DEF_SVE_NEON_TYPE_SUFFIX`. * config/aarch64/aarch64-acle-builtins.cc (DEF_SVE_TYPE_SUFFIX): Delete since it is now defined in terms of `DEF_SVE_NEON_TYPE_SUFFIX`. (DEF_SVE_NEON_TYPE_SUFFIX): Move to be next to `DEF_SVE_TYPE_SUFFIX`. * config/aarch64/aarch64-acle-builtins.h (DEF_SVE_TYPE_SUFFIX): Rename to ... (DEF_SVE_NEON_TYPE_SUFFIX): ... here. Diff: --- gcc/config/aarch64/aarch64-acle-builtins.cc | 3 --- gcc/config/aarch64/aarch64-acle-builtins.h | 3 ++- gcc/config/aarch64/aarch64-sve-builtins.def | 19 ++++++++----------- 3 files changed, 10 insertions(+), 15 deletions(-) diff --git a/gcc/config/aarch64/aarch64-acle-builtins.cc b/gcc/config/aarch64/aarch64-acle-builtins.cc index 5dc736d30767..9ebd2a96f147 100644 --- a/gcc/config/aarch64/aarch64-acle-builtins.cc +++ b/gcc/config/aarch64/aarch64-acle-builtins.cc @@ -150,9 +150,6 @@ constexpr const type_suffix_info type_suffixes[NUM_TYPE_SUFFIXES + 1] = { MODE, \ NEON64, \ NEON128 }, -#define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \ - DEF_SVE_NEON_TYPE_SUFFIX (NAME, ACLE_TYPE, CLASS, BITS, MODE, \ - ARM_NEON_H_TYPES_LAST, ARM_NEON_H_TYPES_LAST) #define DEF_SME_ZA_SUFFIX(NAME, BITS, MODE) \ { "_" #NAME, \ NUM_VECTOR_TYPES, \ diff --git a/gcc/config/aarch64/aarch64-acle-builtins.h b/gcc/config/aarch64/aarch64-acle-builtins.h index bc1a02fe0757..415cdaaf757f 100644 --- a/gcc/config/aarch64/aarch64-acle-builtins.h +++ b/gcc/config/aarch64/aarch64-acle-builtins.h @@ -209,7 +209,8 @@ enum mode_suffix_index element size. */ enum type_suffix_index { -#define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \ +#define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE, \ + NEON64, NEON128) \ TYPE_SUFFIX_ ## NAME, #define DEF_SME_ZA_SUFFIX(NAME, BITS, MODE) \ TYPE_SUFFIX_ ## NAME, diff --git a/gcc/config/aarch64/aarch64-sve-builtins.def b/gcc/config/aarch64/aarch64-sve-builtins.def index 85afa6888e45..0036a2e46dda 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins.def +++ b/gcc/config/aarch64/aarch64-sve-builtins.def @@ -52,10 +52,16 @@ /* Define an SVE type suffix. See the fields in `type_suffix_info` for the meaning of each argument. */ -#ifndef DEF_SVE_TYPE_SUFFIX -#define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) +#ifndef DEF_SVE_NEON_TYPE_SUFFIX +#define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE, \ + NEON64, NEON128) #endif +/* Same as `DEF_SVE_NEON_TYPE_SUFFIX`, but with NEON64 and NEON128 = LAST. */ +#define DEF_SVE_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE) \ + DEF_SVE_NEON_TYPE_SUFFIX (NAME, ACLE_TYPE, CLASS, BITS, MODE, \ + ARM_NEON_H_TYPES_LAST, ARM_NEON_H_TYPES_LAST) + /* Define an SME ZA type suffix. See the fields in `type_suffix_info` for the meaning of each argument. */ #ifndef DEF_SME_ZA_SUFFIX @@ -80,15 +86,6 @@ DEF_SVE_FUNCTION_GS_FPM (NAME, SHAPE, TYPES, GROUPS, PREDS, unused) #endif -/* Define an SVE type suffix, with associated 64-bit and 128-bit types for - compatability with Neon. - See the fields in `type_suffix_info` for the meaning of each argument. */ -#ifndef DEF_SVE_NEON_TYPE_SUFFIX -#define DEF_SVE_NEON_TYPE_SUFFIX(NAME, ACLE_TYPE, CLASS, BITS, MODE, NEON64, \ - NEON128) \ - DEF_SVE_TYPE_SUFFIX (NAME, ACLE_TYPE, CLASS, BITS, MODE) -#endif - /* Same as `DEF_SVE_FUNCTION_GS` above, but with GROUPS = none. */ #ifndef DEF_SVE_FUNCTION #define DEF_SVE_FUNCTION(NAME, SHAPE, TYPES, PREDS) \