On 11/30/24 3:30 AM, Christophe Lyon wrote:
Hi!

On Fri, 29 Nov 2024 at 05:00, Tejas Belagod <tejas.bela...@arm.com> wrote:

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.

Sorry I haven't closely followed the discussions around this patch
series, but the Linaro postcommit CI reports
1036 regressions after patch 2/8, is that expected?
Given that precommit CI detected "only" 22 regressions with all 8
patches, I suppose most of the 1036 are fixed later in the series?

Thanks for raising this.

Patch 2/8 enables SVE vectors to behave like GNU vectors (C/C++ operator semantics start applying to SVE vectors) which has a lot of fallout in FE/ME/BE that the patches 3-8 fix (mostly related to handling VLA vectors).

I'm currently testing a patch to fix the remaining 22 regressions - they are mostly testisms for which I wanted to make sure I was doing the right thing (which I have indicated in my cover letter).

Thanks,
Tejas.


Thanks,

Christophe

---
  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 0fec1cd439e..adbadd303d4 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)
--
2.25.1


Reply via email to