[v10,3/9] aarch64: Define `DEF_SVE_TYPE_SUFFIX` in terms of `DEF_SVE_NEON_TYPE_SUFFIX`

Message ID bmm.hens2qxzai.gcc.gcc-TEST.karmea01.90.10.3@forge-stage.sourceware.org
State New
Headers
Series aarch64: intrinsics refactors |

Commit Message

Karl Meakin via Sourceware Forge Jan. 8, 2026, 1:18 p.m. UTC
  From: Karl Meakin <karl.meakin@arm.com>

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 | 19 ++++++++-----------
 gcc/config/aarch64/aarch64-sve-builtins.h   |  3 ++-
 3 files changed, 10 insertions(+), 15 deletions(-)
  

Patch

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 7d90501073ab..2e473efda44c 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 4c822f67d56c..2f30a97494ea 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins.def
@@ -31,10 +31,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
@@ -59,15 +65,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) \
diff --git a/gcc/config/aarch64/aarch64-sve-builtins.h b/gcc/config/aarch64/aarch64-sve-builtins.h
index f79cc278069f..8e10c6ee30c1 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,