From: Karl Meakin <[email protected]>

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-sve-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-sve-builtins.h (DEF_SVE_TYPE_SUFFIX): Rename 
to ...
        (DEF_SVE_NEON_TYPE_SUFFIX): ... here.
---
 gcc/config/aarch64/aarch64-sve-builtins.cc  |  3 ---
 gcc/config/aarch64/aarch64-sve-builtins.def | 18 ++++++++----------
 gcc/config/aarch64/aarch64-sve-builtins.h   |  3 ++-
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 22d75197188..b5daddd3fe1 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -149,9 +149,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-sve-builtins.def b/gcc/config/aarch64/aarch64-sve-builtins.def
index 64f3df71290..906a7c9c9d2 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins.def
@@ -33,10 +33,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
@@ -61,14 +67,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 column. */
-#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) \
diff --git a/gcc/config/aarch64/aarch64-sve-builtins.h b/gcc/config/aarch64/aarch64-sve-builtins.h
index d6a58b450d6..282984e5a53 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.h
+++ b/gcc/config/aarch64/aarch64-sve-builtins.h
@@ -208,7 +208,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,

Reply via email to