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,