On 12/2/24 3:20 PM, Andrew Pinski wrote:
On Mon, Dec 2, 2024 at 1:47 AM Tejas Belagod <tejas.bela...@arm.com> wrote:
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).
I think I fixed all of the testcases over the weekend.
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670492.html
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670493.html
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670494.html
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670495.html
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670496.html
https://gcc.gnu.org/pipermail/gcc-patches/2024-December/670497.html
Ah, sorry, missed that - was still catching up with stuff. Thanks for
the fixes - much appreciated.
Thanks,
Tejas.
Thanks,
Andrew
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