The 12/18/2025 09:42, Tejas Belagod wrote:
> This patch enables ACLE macro __ARM_FEATURE_SVE_PREDICATE_OPERATORS to
> indicate
> that C/C++ language operations are available natively on SVE ACLE type
> svbool_t.
>
> gcc/
>
> * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
> __ARM_FEATURE_SVE_PREDICATE_OPERATORS.
>
> gcc/testsuite
>
> * gcc.target/aarch64/sve/acle/general/attributes_1.c: Update test for
> __ARM_FEATURE_SVE_PREDICATE_OPERATORS.
> * gcc.target/aarch64/sve/acle/general/attributes_9.c: New.
Ok.
Thanks,
Tamar
> ---
> gcc/config/aarch64/aarch64-c.cc | 3 +++
> .../gcc.target/aarch64/sve/acle/general/attributes_1.c | 4 ++++
> .../gcc.target/aarch64/sve/acle/general/attributes_9.c | 9 +++++++++
> 3 files changed, 16 insertions(+)
> create mode 100644
> gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_9.c
>
> diff --git a/gcc/config/aarch64/aarch64-c.cc b/gcc/config/aarch64/aarch64-c.cc
> index de4444bacb7..04cd7c354e5 100644
> --- a/gcc/config/aarch64/aarch64-c.cc
> +++ b/gcc/config/aarch64/aarch64-c.cc
> @@ -199,6 +199,7 @@ aarch64_update_cpp_builtins (cpp_reader *pfile)
> aarch64_def_or_undef (TARGET_SVE, "__ARM_FEATURE_SVE", pfile);
> cpp_undef (pfile, "__ARM_FEATURE_SVE_BITS");
> cpp_undef (pfile, "__ARM_FEATURE_SVE_VECTOR_OPERATORS");
> + cpp_undef (pfile, "__ARM_FEATURE_SVE_PREDICATE_OPERATORS");
> if (TARGET_SVE)
> {
> int bits;
> @@ -210,6 +211,8 @@ aarch64_update_cpp_builtins (cpp_reader *pfile)
> }
> builtin_define_with_int_value ("__ARM_FEATURE_SVE_BITS", bits);
> builtin_define_with_int_value ("__ARM_FEATURE_SVE_VECTOR_OPERATORS",
> ops);
> + builtin_define_with_int_value ("__ARM_FEATURE_SVE_PREDICATE_OPERATORS",
> + ops);
> }
> aarch64_def_or_undef (TARGET_SVE_I8MM,
> "__ARM_FEATURE_SVE_MATMUL_INT8", pfile);
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
> index 17acfc32e78..e5b71eb77b8 100644
> --- a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_1.c
> @@ -10,6 +10,10 @@
> #error "__ARM_FEATURE_SVE_VECTOR_OPERATORS should be equal to 1"
> #endif
>
> +#if __ARM_FEATURE_SVE_PREDICATE_OPERATORS != 1
> +#error "__ARM_FEATURE_SVE_PREDICATE_OPERATORS should be equal to 1"
> +#endif
> +
> #ifndef __cplusplus
> #define alignof _Alignof
> #endif
> diff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_9.c
> b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_9.c
> new file mode 100644
> index 00000000000..ab7b9eb1bc1
> --- /dev/null
> +++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/general/attributes_9.c
> @@ -0,0 +1,9 @@
> +#include <arm_sve.h>
> +
> +#if __ARM_FEATURE_SVE_VECTOR_OPERATORS != 2
> +#error "__ARM_FEATURE_SVE_VECTOR_OPERATORS should be equal to 2"
> +#endif
> +
> +#if __ARM_FEATURE_SVE_PREDICATE_OPERATORS != 2
> +#error "__ARM_FEATURE_SVE_PREDICATE_OPERATORS should be equal to 2"
> +#endif
> --
> 2.34.1
>
--