https://gcc.gnu.org/g:761cf60218890af31cfb4a4cebc4509d3262a9bb

commit r15-5777-g761cf60218890af31cfb4a4cebc4509d3262a9bb
Author: Tejas Belagod <tejas.bela...@arm.com>
Date:   Fri Jul 26 14:47:43 2024 +0530

    aarch64: Make C/C++ operations possible on SVE ACLE types.
    
    This patch changes the TYPE_INDIVISBLE flag to 0 to enable SVE ACLE types 
to be
    treated as GNU vectors and have the same semantics with operations that are
    defined on GNU vectors.
    
    gcc/ChangeLog:
    
            * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): 
Flip
            TYPE_INDIVISBLE flag for SVE ACLE vector types.

Diff:
---
 gcc/config/aarch64/aarch64-sve-builtins.cc | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc 
b/gcc/config/aarch64/aarch64-sve-builtins.cc
index 0fec1cd439e7..adbadd303d40 100644
--- a/gcc/config/aarch64/aarch64-sve-builtins.cc
+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc
@@ -4576,6 +4576,9 @@ register_builtin_types ()
              vectype = build_truth_vector_type_for_mode (BYTES_PER_SVE_VECTOR,
                                                          VNx16BImode);
              num_pr = 1;
+             /* Leave svbool_t as indivisible for now.  We don't yet support
+                C/C++ operators on predicates.  */
+             TYPE_INDIVISIBLE_P (vectype) = 1;
            }
          else
            {
@@ -4592,12 +4595,12 @@ register_builtin_types ()
                          && TYPE_ALIGN (vectype) == 128
                          && known_eq (size, BITS_PER_SVE_VECTOR));
              num_zr = 1;
+             TYPE_INDIVISIBLE_P (vectype) = 0;
            }
          vectype = build_distinct_type_copy (vectype);
          gcc_assert (vectype == TYPE_MAIN_VARIANT (vectype));
          SET_TYPE_STRUCTURAL_EQUALITY (vectype);
          TYPE_ARTIFICIAL (vectype) = 1;
-         TYPE_INDIVISIBLE_P (vectype) = 1;
          make_type_sizeless (vectype);
        }
       if (num_pr)

Reply via email to