On 4/15/25 1:56 PM, Richard Sandiford wrote:
Tejas Belagod writes:
The operand order to gen_vcond_mask call in the vec_extract pattern is wrong.
Fix the order where predicate is operand 3.
Tested and bootstrapped on aarch64-linux-gnu. OK for trunk?
gcc/ChangeLog
* config/aarch64
On 4/14/25 7:44 PM, Kyrylo Tkachov wrote:
Hi Tejas,
On 14 Apr 2025, at 16:04, Tejas Belagod wrote:
The operand order to gen_vcond_mask call in the vec_extract pattern is wrong.
Fix the order where predicate is operand 3.
Tested and bootstrapped on aarch64-linux-gnu. OK for trunk?
gcc
The operand order to gen_vcond_mask call in the vec_extract pattern is wrong.
Fix the order where predicate is operand 3.
Tested and bootstrapped on aarch64-linux-gnu. OK for trunk?
gcc/ChangeLog
* config/aarch64/aarch64-sve.md (vec_extract): Fix operand
order to gen_vcond_mask_*
On 4/10/25 5:29 PM, Jakub Jelinek wrote:
On Thu, Apr 10, 2025 at 05:13:12PM +0530, Tejas Belagod wrote:
Thanks for the explanation. I looked into why some of the tests may have
failed - my flawed understanding of the reduction clause was why I didn't
have the += in the loops - it might
Fix udr-sve.c target test that to check for the correct results based on the
OpenMP clauses used. The test was first written with a misunderstood
functionality of the reduction clause.
Tested with aarch64-linux-gnu. OK for trunk?
libgomp/ChangeLog:
* testsuite/libgomp.c-target/aarch64/u
On 4/9/25 4:13 PM, Jakub Jelinek wrote:
On Wed, Apr 09, 2025 at 04:01:49PM +0530, Tejas Belagod wrote:
It also looks like there might be a missing "+" in simd_reduction:
#pragma omp simd reduction (+:va, i)
for (j = 0; j < 16; j++)
va = svld1_s32 (svptrue_b32 (),
On 4/10/25 5:56 PM, Richard Sandiford wrote:
Tejas Belagod writes:
On 4/10/25 5:13 PM, Tejas Belagod wrote:
On 4/9/25 4:13 PM, Jakub Jelinek wrote:
On Wed, Apr 09, 2025 at 04:01:49PM +0530, Tejas Belagod wrote:
It also looks like there might be a missing "+" in simd_reduction:
On 4/10/25 5:13 PM, Tejas Belagod wrote:
On 4/9/25 4:13 PM, Jakub Jelinek wrote:
On Wed, Apr 09, 2025 at 04:01:49PM +0530, Tejas Belagod wrote:
It also looks like there might be a missing "+" in simd_reduction:
#pragma omp simd reduction (+:va, i)
for (j = 0; j < 16;
On 4/9/25 2:32 AM, Richard Sandiford wrote:
The new SVE tests didn't explicitly force SVE to be enabled,
which meant that they wouldn't work on targets that aren't
configured for SVE by default. The least invasive way of
fixing that is to add a pragma, which works for most tests.
However, for ud
On 4/7/25 3:33 PM, Jakub Jelinek wrote:
On Mon, Apr 07, 2025 at 03:28:29PM +0530, Tejas Belagod wrote:
Add AArch64 SVE target exectute tests to test various workshare constructs and
clauses with SVE types.
libgomp/ChangeLog:
* testsuite/libgomp.c-target/aarch64/aarch64.exp: Test
Add compile-only OpenMP error tests for target clause used with SVE types.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/gomp/gomp.exp: Test driver.
* gcc.target/aarch64/sve/gomp/target-device.c: New test.
* gcc.target/aarch64/sve/gomp/target-link.c: Likewise.
Add a function to traverse down the pointer layers to the pointee type.
gcc/ChangeLog:
* tree.h (strip_pointer_types): New.
---
gcc/tree.h | 11 +++
1 file changed, 11 insertions(+)
diff --git a/gcc/tree.h b/gcc/tree.h
index 55f97f9f999..99f26177628 100644
--- a/gcc/tree.h
+++ b/
r the reviews.
Patches 1-4 have been OKed with the suggested changes. Patch 5 is yet to
get an OK - so will wait until it is Oked before applying.
Thanks,
Tejas.
Richard Sandiford (1):
gomp: Various fixes for SVE types [PR101018]
Tejas Belagod (4):
Add function to strip pointer type and get
Add AArch64 SVE target exectute tests to test various workshare constructs and
clauses with SVE types.
libgomp/ChangeLog:
* testsuite/libgomp.c-target/aarch64/aarch64.exp: Test driver.
* testsuite/libgomp.c-target/aarch64/firstprivate.c: New test.
* testsuite/libgomp.c-tar
be hard to test.
Co-authored-by: Tejas Belagod
gcc/
PR middle-end/101018
* poly-int.h (can_and_p): New function.
* fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs
involving POLY_INT_CSTs.
* gimplify.cc (omp_notice_variable): Use poly_int_tree
The target clause in OpenMP is used to offload loop kernels to accelarator
peripeherals. target's 'map' clause is used to move data from and to the
accelarator. When the data is SVE type, it may not be suitable because of
various reasons i.e. the two SVE targets may not agree on vector size or
so
Add AArch64 SVE target exectute tests to test various workshare constructs and
clauses with SVE types.
libgomp/ChangeLog:
* testsuite/libgomp.c-target/aarch64/aarch64.exp: Test driver.
* testsuite/libgomp.c-target/aarch64/firstprivate.c: New test.
* testsuite/libgomp.c-tar
Add compile-only OpenMP error tests for target clause used with SVE types.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/gomp/gomp.exp: Test driver.
* gcc.target/aarch64/sve/gomp/target-device.c: New test.
* gcc.target/aarch64/sve/gomp/target-link.c: Likewise.
.
It incorporates review comments from an earlier version of the series
https://gcc.gnu.org/pipermail/gcc-patches/2025-January/674283.html
OK for trunk?
Thanks,
Tejas
Tejas Belagod (2):
AArch64: Add OpenMP target compile error tests
libgomp: Add AArch64 SVE target tests to libgomp
Ping.
Thanks,
Tejas.
On 3/18/25 11:27 AM, Tejas Belagod wrote:
This series is based on a previous thread and review comments from RichardS and
Jakub upstream:
https://gcc.gnu.org/pipermail/gcc-patches/2025-March/677072.html
The changes suggested are cosmetic in nature. As suggested in the
7;re going to be part of a
separate patch series.
Patches have been rebased, retested and bootstrapped on aarch64-linux-gcc.
OK for trunk?
Richard Sandiford (1):
gomp: Various fixes for SVE types [PR101018]
Tejas Belagod (2):
Add function to strip pointer type and get down to the actu
be hard to test.
Co-authored-by: Tejas Belagod
gcc/
PR middle-end/101018
* poly-int.h (can_and_p): New function.
* fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs
involving POLY_INT_CSTs.
* gimplify.cc (omp_notice_variable): Use poly_int_tree
On 3/7/25 5:33 PM, Jakub Jelinek wrote:
On Fri, Mar 07, 2025 at 11:49:37AM +, Richard Sandiford wrote:
+case TCTX_OMP_DEVICE_ADDR:
+ if (!silent_p)
+ error_at (loc, "SVE type %qT not allowed in target device clauses",
type);
Is the final error message accurate? This TCTX v
The target clause in OpenMP is used to offload loop kernels to accelarator
peripeherals. target's 'map' clause is used to move data from and to the
accelarator. When the data is SVE type, it may not be suitable because of
various reasons i.e. the two SVE targets may not agree on vector size or
so
Add a function to traverse down the pointer layers to the pointee type.
gcc/ChangeLog:
* tree.h (strip_pointer_types): New.
---
gcc/tree.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/gcc/tree.h b/gcc/tree.h
index 6f45359f103..77eddc4515c 100644
--- a/gcc/tree.h
+++ b/gcc/
On 3/13/25 2:04 PM, Richard Biener wrote:
I think this is done by convert_vector_to_array_for_subscript in
c-common/, note that this handles lvalue conversion as well which
means it will not work in lvalue context where you'd possibly want
sth like a
TARGET_EXPR
but then the caller needs t
On 3/13/25 1:28 PM, Richard Biener wrote:
On Thu, 13 Mar 2025, Tejas Belagod wrote:
On 3/12/25 4:45 PM, Richard Biener wrote:
On Wed, 12 Mar 2025, Tejas Belagod wrote:
On 3/10/25 7:21 PM, Richard Biener wrote:
On Sat, 8 Mar 2025, Tejas Belagod wrote:
On 3/8/25 12:55 AM, Tejas Belagod
On 3/12/25 4:45 PM, Richard Biener wrote:
On Wed, 12 Mar 2025, Tejas Belagod wrote:
On 3/10/25 7:21 PM, Richard Biener wrote:
On Sat, 8 Mar 2025, Tejas Belagod wrote:
On 3/8/25 12:55 AM, Tejas Belagod wrote:
On 3/7/25 5:34 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote
On 3/10/25 7:21 PM, Richard Biener wrote:
On Sat, 8 Mar 2025, Tejas Belagod wrote:
On 3/8/25 12:55 AM, Tejas Belagod wrote:
On 3/7/25 5:34 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
On 3/7/25 4:38 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote
On 3/8/25 12:55 AM, Tejas Belagod wrote:
On 3/7/25 5:34 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
On 3/7/25 4:38 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
Given a vector mode and its corresponding element mode, this new new
language
hook
On 3/7/25 5:34 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
On 3/7/25 4:38 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
Given a vector mode and its corresponding element mode, this new new
language
hook returns a vector type that has properties of
l_t != 0
Address-of: & on svbool_t[i] is not allowed.
sizeof(): sizeof (svbool_t[i]) is precision / 8 + 1
[] operator:
svbool_t[i] indexes bit i from the LSBit of svbool_t. For eg. svbool[4] indexes
the 5th bit from LSBit of svbool_t. The type of svbool_t[i] is boolean.
Tejas Belagod (6):
On 3/7/25 4:38 PM, Richard Biener wrote:
On Fri, 7 Mar 2025, Tejas Belagod wrote:
Given a vector mode and its corresponding element mode, this new new language
hook returns a vector type that has properties of the vector mode and element
type of that of the element mode. For eg. on AArch64
Support a subset of C/C++ operations (bitwise, conditional etc.) on svbool_t.
gcc/ChangeLog:
* c-family/c-common.cc (c_build_vec_convert): Support vector boolean
types for __builtin_convertvector ().
(c_common_bool_type): New. Given precision and signedness, return the
Update existing compile test with tests to cover C/C++ operations on svbool_t
type objects.
gcc/testsuite/ChangeLog:
* g++.dg/ext/sve-sizeless-1.C: Add new tests.
* g++.dg/ext/sve-sizeless-2.C: Add new tests.
* g++.target/aarch64/sve/acle/general-c++/gnu_vectors_1.C: Add n
Support TARGET_MEM_REFs when walking subtress searching for ADDR_EXPR. This
scenario presents itself when walking MEM_REF subtrees looking for addr-taken
entities during the execute_update_addresses_taken () pass where address-taken
bitmaps are updated.
gcc/ChangeLog:
* gimple-walk.cc (w
Update test error message as svbool_t is not treated as a GNU vector.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/acle/general-c/svcount_1.c: Update message.
---
gcc/testsuite/gcc.target/aarch64/sve/acle/general-c/svcount_1.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
d
Given a vector mode and its corresponding element mode, this new new language
hook returns a vector type that has properties of the vector mode and element
type of that of the element mode. For eg. on AArch64, given VNx16BI and QImode
it returns VNx16QI i.e. the wider mode to BImode that is an SVE
Support subscript operation on svbool_t. This considers svbool_t as a packed
bit-vector of 1-bit boolean data.
gcc/ChangeLog:
* c-family/c-common.cc (convert_vector_to_array_for_subscript): Prepare
the first stage of the subscript subtree for a later gimplification
step.
be hard to test.
Co-authored-by: Tejas Belagod
gcc/
PR middle-end/101018
* poly-int.h (can_and_p): New function.
* fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs
involving POLY_INT_CSTs.
* gimplify.cc (gimplify_bind_expr): Use poly_int_tree
The target clause in OpenMP is used to offload loop kernels to accelarator
peripeherals. target's 'map' clause is used to move data from and to the
accelarator. When the data is SVE type, it may not be suitable because of
various reasons i.e. the two SVE targets may not agree on vector size or
so
Add a function to traverse down the pointer layers to the pointee type.
gcc/ChangeLog:
* tree.h (strip_pointer_types): New.
---
gcc/tree.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/gcc/tree.h b/gcc/tree.h
index 21f3cd5525c..580997b4e5d 100644
--- a/gcc/tree.h
+++ b/gcc/
patch also includes Richard's patch that the rest of the series is based on
https://gcc.gnu.org/pipermail/gcc-patches/2022-November/606741.html
Patches have been rebased, retested and bootstrapped on trunk. OK for trunk?
Richard Sandiford (1):
gomp: Various fixes for SVE types [PR101018]
Tej
On 1/23/25 4:06 PM, Tejas Belagod wrote:
On 1/22/25 4:37 PM, Jakub Jelinek wrote:
On Wed, Jan 22, 2025 at 04:19:37PM +0530, Tejas Belagod wrote:
On 1/21/25 10:16 PM, Jakub Jelinek wrote:
On Fri, Oct 18, 2024 at 11:52:22AM +0530, Tejas Belagod wrote:
Currently poly-int type structures are
On 1/22/25 4:37 PM, Jakub Jelinek wrote:
On Wed, Jan 22, 2025 at 04:19:37PM +0530, Tejas Belagod wrote:
On 1/21/25 10:16 PM, Jakub Jelinek wrote:
On Fri, Oct 18, 2024 at 11:52:22AM +0530, Tejas Belagod wrote:
Currently poly-int type structures are passed by value to OpenMP runtime
functions
On 1/21/25 10:16 PM, Jakub Jelinek wrote:
On Fri, Oct 18, 2024 at 11:52:22AM +0530, Tejas Belagod wrote:
Currently poly-int type structures are passed by value to OpenMP runtime
functions for shared clauses etc. This patch improves on this by passing
around poly-int structures by address to
Ping^2
Thanks,
Tejas.
On 11/4/24 10:06 AM, Tejas Belagod wrote:
Ping.
Thanks,
Tejas.
On 10/18/24 11:59 AM, Tejas Belagod wrote:
Hi Jakub,
Just wanted to add that I'm sorry for the delay in respinning the
patchset - I was caught up with another piece of work. Thanks for the
reviews s
On 12/2/24 3:20 PM, Andrew Pinski wrote:
On Mon, Dec 2, 2024 at 1:47 AM Tejas Belagod wrote:
On 11/30/24 3:30 AM, Christophe Lyon wrote:
Hi!
On Fri, 29 Nov 2024 at 05:00, Tejas Belagod wrote:
This patch changes the TYPE_INDIVISBLE flag to 0 to enable SVE ACLE types to be
treated as GNU
On 11/30/24 3:30 AM, Christophe Lyon wrote:
Hi!
On Fri, 29 Nov 2024 at 05:00, Tejas Belagod 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
On 11/18/24 7:09 PM, Richard Sandiford wrote:
Tejas Belagod writes:
Hi,
This is v2 of the series
https://gcc.gnu.org/pipermail/gcc-patches/2024-November/667743.html
based on review comments. Changes in this version include:
1. Canonicalised all index ranges for VLAs to BIT_FIELD_REF.
2
This patch adds support for checking bounds of SVE ACLE vector initialization
constructors. It also adds support to construct vector constant from init
constructors.
gcc/ChangeLog:
* c-typeck.cc (process_init_element): Add check to restrict
constructor length to the minimum vecto
Handle variable-sized vectors for BIT_FIELD_REF canonicalization.
gcc/ChangeLog:
* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
sized vector types in BIT_FIELD_REF canonicalization.
* tree-cfg.cc (verify_types_in_gimple_reference): Change object-size-
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_INDIVISBL
This patch adds a test case to cover C/C++ operators on SVE ACLE types. This
does not cover all types, but covers most representative types.
gcc/testsuite:
* gcc.target/aarch64/sve/acle/general/cops.c: New test.
---
.../aarch64/sve/acle/general/cops.c | 579 ++
This patch adds a change to handle VLA's poly indices.
gcc/ChangeLog:
* cp/decl.cc (reshape_init_array_1): Handle poly indices.
gcc/testsuite/ChangeLog:
* g++.dg/ext/sve-sizeless-1.C: Update test to test initialize error.
* g++.dg/ext/sve-sizeless-2.C: Likewise.
---
gcc
ding fail as is - the test where an address is taken
of an SVE vector element. I'm not
sure what the behaviour should be here.
Otherwise regression tested and bootstrapped on aarch64-linux-gnu. Bootstrapped
on x86-linux-gnu.
OK for trunk?
Thanks,
Tejas.
Tejas Belagod (8):
aarch64: Fix A
This patch adds a check for non-GNU vectors to warn that the index is outside
the range of a fixed vector size. For VLA vectors, we don't diagnose.
gcc/ChangeLog:
* c-family/c-common.cc (convert_vector_to_array_for_subscript): Add
range-check for target vector types.
---
gcc/c-f
This patch enables ACLE macro __ARM_FEATURE_SVE_VECTOR_OPERATORS to indicate
that C/C++ language operations are available natively on SVE ACLE types.
gcc/ChangeLog:
* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_SVE_VECTOR_OPERATORS.
---
gcc/con
On 11/18/24 6:58 PM, Richard Sandiford wrote:
Tejas Belagod writes:
Handle variable-sized vectors for BIT_FIELD_REF canonicalization.
gcc/ChangeLog:
* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
sized vector types in BIT_FIELD_REF canonicalization
This patch adds support for checking bounds of SVE ACLE vector initialization
constructors. It also adds support to construct vector constant from init
constructors.
gcc/ChangeLog:
* c/c-typeck.cc (process_init_element): Add check to restrict
constructor length to the minimum vec
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_INDIVISBL
This patch enables ACLE macro __ARM_FEATURE_SVE_VECTOR_OPERATORS to indicate
that C/C++ language operations are available natively on SVE ACLE types.
gcc/ChangeLog:
* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_SVE_VECTOR_OPERATORS.
---
gcc/con
This patch adds a test case to cover C/C++ operators on SVE ACLE types. This
does not cover all types, but covers most representative types.
gcc/testsuite:
* gcc.target/aarch64/sve/acle/general/cops.c: New test.
---
.../aarch64/sve/acle/general/cops.c | 579 ++
This patch adds a check for non-GNU vectors to warn that the index is outside
the range of a fixed vector size. For VLA vectors, we don't diagnose.
gcc/ChangeLog:
* c-family/c-common.cc (convert_vector_to_array_for_subscript): Add
range-check for target vector types.
---
gcc/c-f
This patch adds a change to handle VLA's poly indices.
gcc/ChangeLog:
* cp/decl.cc (reshape_init_array_1): Handle poly indices.
gcc/testsuite/ChangeLog:
* g++.dg/ext/sve-sizeless-1.C: Update test to test initialize error.
* g++.dg/ext/sve-sizeless-2.C: Likewise.
---
gcc
Handle variable-sized vectors for BIT_FIELD_REF canonicalization.
gcc/ChangeLog:
* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
sized vector types in BIT_FIELD_REF canonicalization.
* tree-cfg.cc (verify_types_in_gimple_reference): Change object-size-
gt;FAIL: g++.dg/ext/sve-sizeless-1.C -std=gnu++11 (test for errors, line
163)
I've left another outstanding fail as is - the test where an address is taken
of an SVE vector element. I'm not
sure what the behaviour should be here.
Otherwise regression tested and boots
On 11/7/24 4:52 PM, Richard Sandiford wrote:
Tejas Belagod writes:
This patch adds a test case to cover C/C++ operators on SVE ACLE types. This
does not cover all types, but covers most representative types.
gcc/testsuite:
* gcc.target/aarch64/sve/acle/general/cops.c: New test
On 11/8/24 1:19 PM, Richard Biener wrote:
On Fri, Nov 8, 2024 at 7:30 AM Tejas Belagod wrote:
On 11/7/24 5:52 PM, Richard Biener wrote:
On Thu, Nov 7, 2024 at 11:13 AM Tejas Belagod wrote:
On 11/7/24 2:36 PM, Richard Biener wrote:
On Thu, Nov 7, 2024 at 8:25 AM Tejas Belagod wrote:
On
On 11/7/24 5:52 PM, Richard Biener wrote:
On Thu, Nov 7, 2024 at 11:13 AM Tejas Belagod wrote:
On 11/7/24 2:36 PM, Richard Biener wrote:
On Thu, Nov 7, 2024 at 8:25 AM Tejas Belagod wrote:
On 11/6/24 6:02 PM, Richard Biener wrote:
On Wed, Nov 6, 2024 at 12:49 PM Tejas Belagod wrote
On 11/7/24 2:36 PM, Richard Biener wrote:
On Thu, Nov 7, 2024 at 8:25 AM Tejas Belagod wrote:
On 11/6/24 6:02 PM, Richard Biener wrote:
On Wed, Nov 6, 2024 at 12:49 PM Tejas Belagod wrote:
Ensure sizeless types don't end up trying to be canonicalised to BIT_FIELD_REFs.
You mean var
On 11/6/24 6:02 PM, Richard Biener wrote:
On Wed, Nov 6, 2024 at 12:49 PM Tejas Belagod wrote:
Ensure sizeless types don't end up trying to be canonicalised to BIT_FIELD_REFs.
You mean variable-sized? But don't we know, when there's a constant
array index,
that the size is a
This patch adds a change to handle VLA's poly indices.
gcc/ChangeLog:
* cp/decl.cc (reshape_init_array_1): Handle poly indices.
gcc/testsuite/ChangeLog:
* g++.dg/ext/sve-sizeless-1.C: Update test to test initialize error.
* g++.dg/ext/sve-sizeless-2.C: Likewise.
---
gcc
This patch enables ACLE macro __ARM_FEATURE_SVE_VECTOR_OPERATORS to indicate
that C/C++ language operations are available natively on SVE ACLE types.
gcc/ChangeLog:
* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
__ARM_FEATURE_SVE_VECTOR_OPERATORS.
---
gcc/con
This patch adds support for checking bounds of SVE ACLE vector initialization
constructors. It also adds support to construct vector constant from init
constructors.
gcc/ChangeLog:
* c/c-typeck.cc (process_init_element): Add check to restrict
constructor length to the minimum vec
outstanding fail as is - the test where an address is taken
of an SVE vector element. I'm not sure what the behaviour should be here.
Otherwise regression tested and bootstrapped on aarch64-linux-gnu.
Bootstrapped on x86-linux-gnu.
OK for trunk?
Thanks,
Tejas.
Tejas Belagod (10):
aarch64: F
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_INDIVISBL
There is an assumption in many places in c-typeck.cc that GNU vectors sizes are
always known at compile time. SVE vectors now piggy-back on GNU vector code
so this patch changes one of the places where there is an assumption of vectors
being fixed-length to being variable width.
gcc/ChangeLog:
When optimizing for NOPs in case of overlapping regs in VEC_SELECT expressions,
validate subreg data before using simplify_subreg_regno. There is no real
SUBREG rtx here, but a pseudo subreg call to check if subregs are possible.
gcc/ChangeLog:
* rtlanal.cc (set_noop_p): Validate subreg
This patch adds a test case to cover C/C++ operators on SVE ACLE types. This
does not cover all types, but covers most representative types.
gcc/testsuite:
* gcc.target/aarch64/sve/acle/general/cops.c: New test.
---
.../aarch64/sve/acle/general/cops.c | 570 ++
This patch adds a check for non-GNU vectors to warn that the index is outside
the range of a fixed vector size. For VLA vectors, we don't diagnose.
gcc/ChangeLog:
* c-family/c-common.cc (convert_vector_to_array_for_subscript): Add
range-check for target vector types.
---
gcc/c-f
This patch updates existing SVE ACLE tests to expect new behaviour wrt SVE ACLE
types, GNU vectors and C/C++ operations.
testsuite/ChangeLog:
* gcc.target/aarch64/sve/acle/general-c/gnu_vectors_1.c: Update test.
* gcc.target/aarch64/sve/acle/general-c/gnu_vectors_2.c: Likewise.
Ensure sizeless types don't end up trying to be canonicalised to BIT_FIELD_REFs.
gcc/ChangeLog:
* gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Disallow sizeless
types in BIT_FIELD_REFs.
---
gcc/gimple-fold.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --gi
Ping.
Thanks,
Tejas.
On 10/18/24 11:59 AM, Tejas Belagod wrote:
Hi Jakub,
Just wanted to add that I'm sorry for the delay in respinning the
patchset - I was caught up with another piece of work. Thanks for the
reviews so far and thank you for your patience.
Thanks,
Tejas.
On 10/18/
Hi Jakub,
Just wanted to add that I'm sorry for the delay in respinning the
patchset - I was caught up with another piece of work. Thanks for the
reviews so far and thank you for your patience.
Thanks,
Tejas.
On 10/18/24 11:52 AM, Tejas Belagod wrote:
The following patch series is rew
This patch tests if simd uniform clause works with SVE types in simd regions.
libgomp/ChangeLog:
* testsuite/libgomp.target/aarch64/simd-uniform.c: New.
---
.../libgomp.target/aarch64/simd-uniform.c | 83 +++
1 file changed, 83 insertions(+)
create mode 100644 libgomp
The target clause in OpenMP is used to offload loop kernels to accelarator
peripeherals. target's 'map' clause is used to move data from and to the
accelarator. When the data is SVE type, it may not be suitable because of
various reasons i.e. the two SVE targets may not agree on vector size or
so
This patch adds a test scaffold for OpenMP compile tests in under the gcc.target
testsuite. It also adds a target tests directory libgomp.target along with an
SVE execution test
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/omp/gomp.exp: New scaffold.
libgomp/ChangeLog:
* t
This patch tests various OpenMP lastprivate clause with SVE object types in
various construct contexts.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/omp/lastprivate.c: New test.
libgomp/ChangeLog:
* testsuite/libgomp.target/aarch64/lastprivate.c: New test.
---
.../gcc.targ
This patch tests if SVE type objects when applied to doacross clause are
correctly diagnosed.
gcc/testsuite/ChangeLog
* gcc.target/aarch64/sve/omp/doacross.c: New test.
---
.../gcc.target/aarch64/sve/omp/doacross.c | 22 +++
1 file changed, 22 insertions(+)
create mo
This patch adds a test to test depend clause and its various dependency
variations with SVE type objects.
libgomp/ChangeLog:
* testsuite/libgomp.target/aarch64/depend-1.c: New.
---
.../libgomp.target/aarch64/depend-1.c | 223 ++
1 file changed, 223 insertions(+)
ross is mainly supported for scalars and loop iteration variables. We
diagnose cases where SVE ACLE objects are used in doacross list items.
Tejas Belagod (12):
OpenMP/PolyInt: Pass poly-int structures by address to OMP libs.
libgomp, AArch64: Add test cases for SVE types in OpenMP shared
c
This patch tests user-defined reductions on various constructs with objects
of SVE type.
libgomp/ChangeLog:
* testsuite/libgomp.target/aarch64/udr-sve.c: New.
---
.../libgomp.target/aarch64/udr-sve.c | 108 ++
1 file changed, 108 insertions(+)
create mode 100644
This patch tests if SVE object types if applied to linear clause is diagnosed
as expected.
gcc/testsuite/ChangeLog
* gcc.target/aarch64/sve/omp/linear.c: New test.
---
.../gcc.target/aarch64/sve/omp/linear.c | 85 +++
1 file changed, 85 insertions(+)
create mode 10
This patch adds a test for ensuring threadprivate clause works for SVE type
objects.
libgomp/ChangeLog:
* testsuite/libgomp.target/aarch64/threadprivate.c: New test.
---
.../libgomp.target/aarch64/threadprivate.c| 48 +++
1 file changed, 48 insertions(+)
create mode
Add a function to traverse down the pointer layers to the pointee type.
gcc/ChangeLog:
* tree.h (strip_pointer_types): New.
---
gcc/tree.h | 9 +
1 file changed, 9 insertions(+)
diff --git a/gcc/tree.h b/gcc/tree.h
index 75efc760a16..e2b4dd36444 100644
--- a/gcc/tree.h
+++ b/gcc/
Currently poly-int type structures are passed by value to OpenMP runtime
functions for shared clauses etc. This patch improves on this by passing
around poly-int structures by address to avoid copy-overhead.
gcc/ChangeLog
* omp-low.c (use_pointer_for_field): Use pointer if the OMP data
On 8/6/24 4:59 PM, Jakub Jelinek wrote:
On Mon, May 27, 2024 at 10:36:19AM +0530, Tejas Belagod wrote:
This patch tests various OpenMP lastprivate clause with SVE object types in
various construct contexts.
gcc/testsuite/ChangeLog:
* gcc.target/aarch64/sve/omp/lastprivate.c: New test
On 5/30/24 6:20 PM, Richard Sandiford wrote:
Tejas Belagod writes:
The target clause in OpenMP is used to offload loop kernels to accelarator
peripeherals. target's 'map' clause is used to move data from and to the
accelarator. When the data is SVE type, it may not be suit
PING^3 on the series please.
Thanks,
Tejas.
On 7/8/24 4:25 PM, Tejas Belagod wrote:
Ping^2 on the series please.
Thanks,
Tejas.
On 5/27/24 10:36 AM, Tejas Belagod wrote:
Note: This patch series is based on Richard's initial patch
https://gcc.gnu.org/pipermail/gcc-patches/2022-Nov
1 - 100 of 363 matches
Mail list logo