[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) \