On 18/12/2025 10:06, Tamar Christina wrote:
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, now pushed to master.

Thanks,
Tejas.

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



Reply via email to