On 11/11/2024 16:12, Richard Sandiford wrote:
Claudio Bantaloukas <claudio.bantalou...@arm.com> writes:
diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
index e4021559f36..8d25bb33dad 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def
@@ -227,61 +227,73 @@ DEF_SVE_FUNCTION (svrevd, unary, all_data, mxz)
#undef REQUIRED_EXTENSIONS
#define REQUIRED_EXTENSIONS streaming_only (AARCH64_FL_SME2)
-DEF_SVE_FUNCTION_GS (svadd, binary_single, all_integer, x24, none)
+DEF_SVE_FUNCTION_GS (svadd, binary_single, all_integer, x24, none, unused)
I know this isn't going to be to everyone's test, but could we instead
keep the DEF_SVE_FUNCTION_GS interface the same and add a new macro:
DEF_SVE_FUNCTION_GS_FPM
Done
The default definition of DEF_SVE_FUNCTION_GS would then forward
to DEF_SVE_FUNCTION_GS_FPM, and the .cc file would define
DEF_SVE_FUNCTION_GS_FPM instead of DEF_SVE_FUNCTION_GS. This is
similar to what happened when DEF_SVE_FUNCTION_GS itself was
introduced.
Same idea for SME.
[...]
@@ -878,10 +893,11 @@ function_instance (const char *base_name_in,
mode_suffix_index mode_suffix_id_in,
const type_suffix_pair &type_suffix_ids_in,
group_suffix_index group_suffix_id_in,
- predication_index pred_in)
+ predication_index pred_in,
+ fpm_mode_index fpm_mode_in)
: base_name (base_name_in), base (base_in), shape (shape_in),
mode_suffix_id (mode_suffix_id_in), group_suffix_id (group_suffix_id_in),
- pred (pred_in)
+ pred (pred_in), fpm_mode(fpm_mode_in)
Formatting nit (sorry that it's not automated), but: space before "(".
Thanks for catching, formatted all changes with contrib/clang-format.
I can dream: can we apply that on all gcc/config/aarch64 c syntax files? :)
Looks good otherwise, thanks.
Richard
{
memcpy (type_suffix_ids, type_suffix_ids_in, sizeof (type_suffix_ids));
}
@@ -895,7 +911,8 @@ function_instance::operator== (const function_instance
&other) const
&& type_suffix_ids[0] == other.type_suffix_ids[0]
&& type_suffix_ids[1] == other.type_suffix_ids[1]
&& group_suffix_id == other.group_suffix_id
- && pred == other.pred);
+ && pred == other.pred
+ && fpm_mode == other.fpm_mode);
}
inline bool