[PATCH] vect: Call vect_convert_output with the right vecitype [PR114108]

2024-03-07 Thread Tejas Belagod
of the new impending conversion statement. This caused a skew in ABD's pattern_stmt having the vectype of the following gimple pattern_stmt. 2024-03-06 Tejas Belagod gcc/ChangeLog: PR middle-end/114108 * tree-vect-patterns.cc (vect_recog_abd_pattern):

Re: [PATCH] vect: Call vect_convert_output with the right vecitype [PR114108]

2024-03-13 Thread Tejas Belagod
Ping! On 3/7/24 4:14 PM, Tejas Belagod wrote: This patch fixes a bug where vect_recog_abd_pattern called vect_convert_output with the incorrect vecitype for the corresponding pattern_stmt. vect_convert_output expects vecitype to be the vector form of the scalar type of the LHS of pattern_stmt

Re: [PATCH] vect: Call vect_convert_output with the right vecitype [PR114108]

2024-03-14 Thread Tejas Belagod
Ping. Thanks, Tejas. On 3/13/24 6:07 PM, Tejas Belagod wrote: Ping! On 3/7/24 4:14 PM, Tejas Belagod wrote: This patch fixes a bug where vect_recog_abd_pattern called vect_convert_output with the incorrect vecitype for the corresponding pattern_stmt. vect_convert_output expects vecitype

Re: [PATCH] AArch64: aarch64_class_max_nregs mishandles 64-bit structure modes [PR112577]

2024-02-05 Thread Tejas Belagod
On 1/24/24 5:09 PM, Richard Sandiford wrote: Tejas Belagod writes: The target hook aarch64_class_max_nregs returns the incorrect result for 64-bit structure modes like V31DImode or V41DFmode etc. The calculation of the nregs is based on the size of AdvSIMD vector register for 64-bit modes

[PATCH] Arm: Fix incorrect tailcall-generation for indirect calls [PR113780]

2024-02-06 Thread Tejas Belagod
This patch fixes a bug that causes indirect calls in PAC-enabled functions to be tailcalled incorrectly when all argument registers R0-R3 are used. Tested on arm-none-eabi for armv8.1-m.main. OK for trunk? 2024-02-07 Tejas Belagod PR target/113780 * gcc/config/arm.cc

Re: [PATCH] Arm: Fix incorrect tailcall-generation for indirect calls [PR113780]

2024-02-14 Thread Tejas Belagod
On 2/7/24 11:41 PM, Richard Earnshaw (lists) wrote: On 07/02/2024 07:59, Tejas Belagod wrote: This patch fixes a bug that causes indirect calls in PAC-enabled functions to be tailcalled incorrectly when all argument registers R0-R3 are used. Tested on arm-none-eabi for armv8.1-m.main. OK for

Re: [PATCH] Arm: Fix incorrect tailcall-generation for indirect calls [PR113780]

2024-02-15 Thread Tejas Belagod
On 2/14/24 3:55 PM, Richard Earnshaw (lists) wrote: On 14/02/2024 09:20, Tejas Belagod wrote: On 2/7/24 11:41 PM, Richard Earnshaw (lists) wrote: On 07/02/2024 07:59, Tejas Belagod wrote: This patch fixes a bug that causes indirect calls in PAC-enabled functions to be tailcalled incorrectly

[PATCH] AArch64: aarch64_class_max_nregs mishandles 64-bit structure modes [PR112577]

2024-01-16 Thread Tejas Belagod
The target hook aarch64_class_max_nregs returns the incorrect result for 64-bit structure modes like V31DImode or V41DFmode etc. The calculation of the nregs is based on the size of AdvSIMD vector register for 64-bit modes which ought to be UNITS_PER_VREG / 2. This patch fixes the register size.

Re: [PATCH v6] aarch64: Add vector popcount besides QImode [PR113859]

2024-06-27 Thread Tejas Belagod
On 6/28/24 6:18 AM, Pengxuan Zheng wrote: This patch improves GCC’s vectorization of __builtin_popcount for aarch64 target by adding popcount patterns for vector modes besides QImode, i.e., HImode, SImode and DImode. With this patch, we now generate the following for V8HI: cnt v1.16b, v0.

[RFC] Proposal to support Packed Boolean Vector masks.

2024-07-08 Thread Tejas Belagod
Hi, Sorry to have dropped the ball on https://gcc.gnu.org/pipermail/gcc-patches/2023-July/625535.html, but here I've tried to pick it up again and write up a strawman proposal for elevating __attribute__((vector_mask)) to the FE from GIMPLE. Thanks, Tejas. Motivation -- The idea o

Re: [PING^2] [PATCH 00/11] AArch64/OpenMP: Test SVE ACLE types with various OpenMP constructs.

2024-07-08 Thread Tejas Belagod
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-November/606741.html and Jakub's suggestion https://gcc.gnu.org/pipermail/gcc-pa

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-09 Thread Tejas Belagod
On 7/8/24 4:45 PM, Richard Biener wrote: On Mon, Jul 8, 2024 at 11:27 AM Tejas Belagod wrote: Hi, Sorry to have dropped the ball on https://gcc.gnu.org/pipermail/gcc-patches/2023-July/625535.html, but here I've tried to pick it up again and write up a strawman proposal for elev

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-10 Thread Tejas Belagod
On 7/9/24 4:22 PM, Richard Biener wrote: On Tue, Jul 9, 2024 at 11:45 AM Tejas Belagod wrote: On 7/8/24 4:45 PM, Richard Biener wrote: On Mon, Jul 8, 2024 at 11:27 AM Tejas Belagod wrote: Hi, Sorry to have dropped the ball on https://gcc.gnu.org/pipermail/gcc-patches/2023-July/625535

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-10 Thread Tejas Belagod
On 7/10/24 2:38 PM, Richard Biener wrote: On Wed, Jul 10, 2024 at 10:49 AM Tejas Belagod wrote: On 7/9/24 4:22 PM, Richard Biener wrote: On Tue, Jul 9, 2024 at 11:45 AM Tejas Belagod wrote: On 7/8/24 4:45 PM, Richard Biener wrote: On Mon, Jul 8, 2024 at 11:27 AM Tejas Belagod wrote

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-11 Thread Tejas Belagod
On 7/10/24 4:37 PM, Richard Biener wrote: On Wed, Jul 10, 2024 at 12:44 PM Richard Sandiford wrote: Tejas Belagod writes: On 7/10/24 2:38 PM, Richard Biener wrote: On Wed, Jul 10, 2024 at 10:49 AM Tejas Belagod wrote: On 7/9/24 4:22 PM, Richard Biener wrote: On Tue, Jul 9, 2024 at 11

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-12 Thread Tejas Belagod
On 7/12/24 11:46 AM, Richard Biener wrote: On Fri, Jul 12, 2024 at 6:17 AM Tejas Belagod wrote: On 7/10/24 4:37 PM, Richard Biener wrote: On Wed, Jul 10, 2024 at 12:44 PM Richard Sandiford wrote: Tejas Belagod writes: On 7/10/24 2:38 PM, Richard Biener wrote: On Wed, Jul 10, 2024 at 10

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-14 Thread Tejas Belagod
On 7/12/24 6:40 PM, Richard Biener wrote: On Fri, Jul 12, 2024 at 3:05 PM Jakub Jelinek wrote: On Fri, Jul 12, 2024 at 02:56:53PM +0200, Richard Biener wrote: Padding is only an issue for very small vectors - the obvious choice is to disallow vector types that would require any padding. I ca

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-15 Thread Tejas Belagod
On 7/15/24 12:16 PM, Tejas Belagod wrote: On 7/12/24 6:40 PM, Richard Biener wrote: On Fri, Jul 12, 2024 at 3:05 PM Jakub Jelinek wrote: On Fri, Jul 12, 2024 at 02:56:53PM +0200, Richard Biener wrote: Padding is only an issue for very small vectors - the obvious choice is to disallow vector

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-17 Thread Tejas Belagod
On 7/15/24 6:05 PM, Richard Biener wrote: On Mon, Jul 15, 2024 at 1:22 PM Tejas Belagod wrote: On 7/15/24 12:16 PM, Tejas Belagod wrote: On 7/12/24 6:40 PM, Richard Biener wrote: On Fri, Jul 12, 2024 at 3:05 PM Jakub Jelinek wrote: On Fri, Jul 12, 2024 at 02:56:53PM +0200, Richard Biener

Re: [RFC] Proposal to support Packed Boolean Vector masks.

2024-07-17 Thread Tejas Belagod
On 7/17/24 4:36 PM, Richard Biener wrote: On Wed, Jul 17, 2024 at 10:17 AM Tejas Belagod wrote: On 7/15/24 6:05 PM, Richard Biener wrote: On Mon, Jul 15, 2024 at 1:22 PM Tejas Belagod wrote: On 7/15/24 12:16 PM, Tejas Belagod wrote: On 7/12/24 6:40 PM, Richard Biener wrote: On Fri, Jul

Re: [PING^3] [PATCH 00/11] AArch64/OpenMP: Test SVE ACLE types with various OpenMP constructs.

2024-07-18 Thread Tejas Belagod
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

Re: [PATCH 03/11] AArch64: Diagnose OpenMP offloading when SVE types involved.

2024-07-18 Thread Tejas Belagod
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

[PATCH 00/11] AArch64/OpenMP: Test SVE ACLE types with various OpenMP constructs.

2024-05-26 Thread Tejas Belagod
ct types. doacross is mainly supported for scalars and loop iteration variables. We diagnose cases where SVE ACLE objects are used in doacross list items. Tejas Belagod (11): OpenMP/PolyInt: Pass poly-int structures by address to OMP libs. AArch64: Add test cases for SVE types in OpenMP shared

[PATCH 01/11] OpenMP/PolyInt: Pass poly-int structures by address to OMP libs.

2024-05-26 Thread Tejas Belagod
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

[PATCH 02/11] AArch64: Add test cases for SVE types in OpenMP shared clause.

2024-05-26 Thread Tejas Belagod
This patch tests various shared clauses with SVE types. It also adds a test scaffold to run OpenMP tests in under the gcc.target testsuite. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/omp/aarch64-sve-omp.exp: New scaffold. * gcc/testsuite/gcc.target/aarch64/sve/omp/shared.c

[PATCH 04/11] AArch64: Test OpenMP lastprivate clause for various constructs.

2024-05-26 Thread Tejas Belagod
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. --- .../gcc.target/aarch64/sve/omp/lastprivate.c | 121 ++ 1 file changed, 121 insertion

[PATCH 05/11] AArch64: Test OpenMP threadprivate clause on SVE type.

2024-05-26 Thread Tejas Belagod
This patch adds a test for ensuring threadprivate clause works for SVE type objects. gcc/testsuite/ChangeLog * gcc.target/aarch64/sve/omp/threadprivate.c: New test. --- .../aarch64/sve/omp/threadprivate.c | 44 +++ 1 file changed, 44 insertions(+) create mode 1

[PATCH 09/11] AArch64: Diagnose OpenMP linear clause for SVE type objects.

2024-05-26 Thread Tejas Belagod
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 | 33 +++ 1 file changed, 33 insertions(+) create mode 10

[PATCH 08/11] AArch64: Test OpenMP simd aligned clause with SVE types.

2024-05-26 Thread Tejas Belagod
This patch tests simd aligned clause and their interaction with SVE types. gcc/testsuite/ChangeLog * gcc.target/aarch64/sve/omp/simd-aligned.c: New test. --- .../gcc.target/aarch64/sve/omp/simd-aligned.c | 50 +++ 1 file changed, 50 insertions(+) create mode 100644 gcc/t

[PATCH 03/11] AArch64: Diagnose OpenMP offloading when SVE types involved.

2024-05-26 Thread Tejas Belagod
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

[PATCH 07/11] AArch64: Test OpenMP uniform clause on SVE types.

2024-05-26 Thread Tejas Belagod
This patch tests if simd uniform clause works with SVE types in simd regions. gcc/testsuite/ChangeLog * gcc.target/aarch64/sve/omp/simd-uniform.c: New test. --- .../gcc.target/aarch64/sve/omp/simd-uniform.c | 71 +++ 1 file changed, 71 insertions(+) create mode 100644 gc

[PATCH 10/11] AArch64: Test OpenMP depend clause and its variations on SVE types

2024-05-26 Thread Tejas Belagod
This patch adds a test to test depend clause and its various dependency variations with SVE type objects. gcc/testsuite/ChangeLog * gcc.target/aarch64/sve/omp/depend-1.c: New test. --- .../gcc.target/aarch64/sve/omp/depend-1.c | 223 ++ 1 file changed, 223 insertions(

[PATCH 06/11] AArch64: Test OpenMP user-defined reductions with SVE types.

2024-05-26 Thread Tejas Belagod
This patch tests user-defined reductions on various constructs with objects of SVE type. gcc/testsuite/ChangeLog * gcc.target/aarch64/sve/omp/udr-sve.c: New test. --- .../gcc.target/aarch64/sve/omp/udr-sve.c | 166 ++ 1 file changed, 166 insertions(+) create mode 10

[PATCH 11/11] AArch64: Diagnose SVE type objects when applied to OpenMP doacross clause.

2024-05-26 Thread Tejas Belagod
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

Re: [PATCH 01/11] OpenMP/PolyInt: Pass poly-int structures by address to OMP libs.

2024-05-30 Thread Tejas Belagod
On 5/30/24 6:28 PM, Richard Sandiford wrote: Tejas Belagod writes: 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

Re: [PATCH 02/11] AArch64: Add test cases for SVE types in OpenMP shared clause.

2024-05-31 Thread Tejas Belagod
On 5/30/24 6:08 PM, Richard Sandiford wrote: Tejas Belagod writes: This patch tests various shared clauses with SVE types. It also adds a test scaffold to run OpenMP tests in under the gcc.target testsuite. gcc/testsuite/ChangeLog: * gcc.target/aarch64/sve/omp/aarch64-sve-omp.exp

Re: [PATCH 00/11] AArch64/OpenMP: Test SVE ACLE types with various OpenMP constructs.

2024-06-19 Thread Tejas Belagod
PING for the series. 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-November/606741.html and Jakub's suggestion https://gcc.gnu.org/pipermail/gcc-patches/202

Re: [PATCH 04/11] AArch64: Test OpenMP lastprivate clause for various constructs.

2024-09-13 Thread Tejas Belagod
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

[Patch, AArch64] Optimized implementation of vget_low_* in arm_neon.h.

2013-08-20 Thread Tejas Belagod
Hi, This patch replaces all inline asm implementations of vget_low_* in arm_neon.h with optimized implementations using other neon intrinsics. Tested with aarch64-none-elf. OK? Thanks, Tejas Belagod ARM. 2013-08-20 Tejas Belagod gcc/ * config/aarch64/arm_neon.h: Replace all

[Patch, AArch64] Fix vdup_lane_* intrinsics' lane parameter.

2013-09-05 Thread Tejas Belagod
Hi, This patch fixes vdup_lane_* intrinsics in arm_neon.h to have the correct lane parameter as opposed to the present '0'. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-09-05 Tejas Belagod gcc/ * config/aarch64/arm_neon.h: Fi

[AARCH64-4.7][PATCH] Reload fix backported to aarch64-4.7-branch.

2012-10-02 Thread Tejas Belagod
Hi, I've backported Ulrich's reload fix(attached) http://gcc.gnu.org/ml/gcc-patches/2012-07/msg01421.html to aarch64-4.7-branch and committed it. SendingChangeLog.aarch64 Sendingreload.c Transmitting file data .. Committed revision 191987. Thanks, Tejas. diff --git a/gcc/rel

Re: [commit] Re-work find_reloads_subreg_address

2012-10-16 Thread Tejas Belagod
Ulrich Weigand wrote: Tejas Belagod wrote: Ulrich Weigand wrote: The following patch implements this idea; it passes a basic regression test on arm-linux-gnueabi. (Obviously this would need a lot more testing on various platforms before getting into mainline ...) Can you have a look whether

[RFC] Bug handling SUBREG (MEM) - MEM having side-effects?

2012-10-16 Thread Tejas Belagod
MEM having side-effects. I would like to hear some thoughts on this. Thanks, Tejas Belagod ARM. diff --git a/gcc/recog.c b/gcc/recog.c index 39a9dda..fa323df 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -984,6 +984,11 @@ general_operand (rtx op, enum machine_mode mode) && MEM_P (s

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-11-27 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: The problem is that one reg rtx can span several hard registers. E.g. (reg:V4SI 32) might represent one 64-bit register (no. 32), but it might instead represent two 32-bit registers (nos. 32 and 33). Obviously the latter's not very likel

[Patch, AArch64] Relax CANNOT_CHANGE_MODE_CLASS.

2013-11-28 Thread Tejas Belagod
this to (reg:SF v0) The attached patch helps parts of rtlanal.c make such decisions(eg. simplify_subreg_regno). Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-11-28 Tejas Belagod gcc/ * config/aarch64/aarch64

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-04 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: The problem is that one reg rtx can span several hard registers. E.g. (reg:V4SI 32) might represent one 64-bit register (no. 32), but it might instead represent two 32-bit registers (nos. 32 and 33

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-05 Thread Tejas Belagod
H.J. Lu wrote: On Wed, Dec 4, 2013 at 9:29 AM, Jeff Law wrote: On 12/04/13 09:14, H.J. Lu wrote: + +/* { dg-final { scan-rtl-dump "deleting noop move" "combine" { target aarch64*-*-* } } } */ Any particular reason why it doesn't work for x86? I don't think so. I'm pretty sure Tejas is foc

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-05 Thread Tejas Belagod
Jeff Law wrote: On 12/04/13 09:06, Tejas Belagod wrote: Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: The problem is that one reg rtx can span several hard registers. E.g. (reg:V4SI 32) might represent one 64-bit register (no. 32), but it

Re: [Patch, AArch64] Relax CANNOT_CHANGE_MODE_CLASS.

2013-12-05 Thread Tejas Belagod
Tejas Belagod wrote: Hi, Currently, CANNOT_CHANGE_MODE_CLASS is too restrictive wrt the mode-changes it allows on FPREGs - it allows none at the moment. In fact, there are many mode changes that are safe and can be allowed. For example, in a pattern like: (subreg:SF (reg:V4SF v0) 0

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-06 Thread Tejas Belagod
Jakub Jelinek wrote: On Wed, Dec 04, 2013 at 08:14:43AM -0800, H.J. Lu wrote: --- /dev/null +++ b/gcc/testsuite/gcc.dg/vect/vect-nop-move.c @@ -0,0 +1,64 @@ +/* { dg-do run } */ +/* { dg-require-effective-target vect_float } */ +/* { dg-options "-O3 -fdump-rtl-combine-details" } */ Please chan

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-06 Thread Tejas Belagod
27;t work for x86? +/* { dg-final { cleanup-rtl-dump "combine" } } */ You also need to add /* { dg-final { cleanup-tree-dump "vect" } } */ because all vectorizer tests dump *.vect dumps. Here is a patch, OK to commit? Thanks, Tejas. 2013-12-06 Tejas Belagod tes

[Patch, AArch64] [1/6] Implement support for Crypto -- Define TARGET_CRYPTO.

2013-12-06 Thread Tejas Belagod
Hi, The attached patch defines TARGET_CRYPTO macro and defines builtin preprocessor macro __ARM_FEATURE_CRYPTO. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. Changelog 2013-12-06 Tejas Belagod * config/aarch64/aarch64.h (TARGET_CRYPTO): New

[Patch, AArch64] [2/6] Implement support for Crypto -- Instruction types.

2013-12-06 Thread Tejas Belagod
Hi, The attached patch adds crypto types for instruction classificiation. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas 2013-12-06 Tejas Belagod * config/arm/types.md (neon_mul_d_long, crypto_aes, crypto_sha1_xor, crypto_sha1_fast, crypto_sha1_slow

[Patch, AArch64] [6/6] Implement support for Crypto -- PMULL.64.

2013-12-06 Thread Tejas Belagod
Hi, This patch implements support for crypto pmull.64. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. 2013-12-06 Tejas Belagod gcc/ * config/aarch64/aarch64-builtins.c: Define builtin types for poly64_t poly128_t. * aarch64/aarch64-simd-builtins.def

[Patch, AArch64] [5/6] Implement support for Crypto -- SHA256.

2013-12-06 Thread Tejas Belagod
Hi, The attached patch implements support for crypto sha256. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. 2013-12-06 Tejas Belagod gcc/ * config/aarch64/aarch64-simd-builtins.def: Update builtins table. * config/aarch64/aarch64-simd.md

[Patch, AArch64] [3/6] Implement support for Crypto -- AES.

2013-12-06 Thread Tejas Belagod
Hi, The attached patch implements support for AES crypto instructions. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. 2013-12-06 Tejas Belagod gcc/ * config/aarch64/aarch64-simd-builtins.def: Update builtins table. * config/aarch64/aarch64-simd.md

[Patch, AArch64] [4/6] Implement support for Crypto -- SHA1.

2013-12-06 Thread Tejas Belagod
Hi, The attached patch implements support for SHA1 crypto insn. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. 2013-12-06 Tejas Belagod gcc/ * config/aarch64/aarch64-simd-builtins.def: Update builtins table. * config/aarch64/aarch64-simd.md

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-09 Thread Tejas Belagod
Kirill Yukhin wrote: Hello, On 05 Dec 16:40, Kirill Yukhin wrote: On 05 Dec 05:30, H.J. Lu wrote: Kirill, can you take a look why it doesn't work for x86? Okay, I'll look at this. I've looked at this. It seems that `CANNOT_CHANGE_MODE_CLASS' is too conservative for x86. In rtlanal.c we hav

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-10 Thread Tejas Belagod
H.J. Lu wrote: On Tue, Dec 10, 2013 at 9:04 AM, Kirill Yukhin wrote: On 10 Dec 08:23, H.J. Lu wrote: What is wrong to pass the correct offset to CANNOT_CHANGE_MODE_CLASS? Backends are free to ignore it. Yes, but as fas as understand this hook as a predicate saying if it not-safe to change mo

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-10 Thread Tejas Belagod
H.J. Lu wrote: On Tue, Dec 10, 2013 at 9:26 AM, Tejas Belagod wrote: H.J. Lu wrote: On Tue, Dec 10, 2013 at 9:04 AM, Kirill Yukhin wrote: On 10 Dec 08:23, H.J. Lu wrote: What is wrong to pass the correct offset to CANNOT_CHANGE_MODE_CLASS? Backends are free to ignore it. Yes, but as fas

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-10 Thread Tejas Belagod
On 10 December 2013 21:51, H.J. Lu wrote: > On Tue, Dec 10, 2013 at 1:09 PM, H.J. Lu wrote: >> On Tue, Dec 10, 2013 at 12:39 PM, Richard Henderson wrote: >>> On 12/10/2013 10:44 AM, Richard Sandiford wrote: Sorry, I don't understand. I never said it was invalid. I said (subreg:SF (re

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-11 Thread Tejas Belagod
H.J. Lu wrote: On Wed, Dec 11, 2013 at 7:49 AM, Richard Sandiford wrote: "H.J. Lu" writes: On Wed, Dec 11, 2013 at 1:13 AM, Richard Sandiford wrote: Richard Henderson writes: On 12/10/2013 10:44 AM, Richard Sandiford wrote: Sorry, I don't understand. I never said it was invalid. I said

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-12-11 Thread Tejas Belagod
H.J. Lu wrote: On Wed, Dec 11, 2013 at 8:26 AM, Tejas Belagod wrote: H.J. Lu wrote: On Wed, Dec 11, 2013 at 7:49 AM, Richard Sandiford wrote: "H.J. Lu" writes: On Wed, Dec 11, 2013 at 1:13 AM, Richard Sandiford wrote: Richard Henderson writes: On 12/10/2013 10:44 AM, Richard

Re: [Patch, AArch64] [3/6] Implement support for Crypto -- AES.

2013-12-18 Thread Tejas Belagod
Marcus Shawcroft wrote: On 6 December 2013 17:36, Tejas Belagod wrote: * gcc.target/aarch64/aes.c: New. Add _1 on the test case file name (see http://gcc.gnu.org/wiki/TestCaseWriting) diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index dc56170

Re: [Patch, AArch64] [4/6] Implement support for Crypto -- SHA1.

2013-12-18 Thread Tejas Belagod
Marcus Shawcroft wrote: Same comments as previous patch: On 6 December 2013 17:36, Tejas Belagod wrote: testsuite/ * gcc.target/aarch64/sha1.c: New. Add _1 on the test case file name (see http://gcc.gnu.org/wiki/TestCaseWriting) +static __inline uint32x4_t +vsha1cq_u32

Re: [Patch, AArch64] [6/6] Implement support for Crypto -- PMULL.64.

2013-12-18 Thread Tejas Belagod
Tejas Belagod wrote: Hi, This patch implements support for crypto pmull.64. Tested on aarch64-none-elf. OK for trunk? Thanks, Tejas. 2013-12-06 Tejas Belagod gcc/ * config/aarch64/aarch64-builtins.c: Define builtin types for poly64_t poly128_t. * aarch64/aarch64

Re: [Patch, AArch64] [5/6] Implement support for Crypto -- SHA256.

2013-12-18 Thread Tejas Belagod
Marcus Shawcroft wrote: On 6 December 2013 17:36, Tejas Belagod wrote: Hi, The attached patch implements support for crypto sha256. Same comments as previous crypto patch. Thanks for the review. Here is an improved patch. Tested on aarch64-none-elf. OK for trunk? Thanks Tejas. 2013-12

Re: [PATCH] Vectorization for store with negative step

2013-12-31 Thread Tejas Belagod
Bingfeng Mei wrote: Hi, I created PR59544 and here is the patch. OK to commit? Thanks, Bingfeng 2013-12-18 Bingfeng Mei PR tree-optimization/59544 * tree-vect-stmts.c (perm_mask_for_reverse): Move before vectorizable_store. (vectorizable_store): Handle negative step.

Re: [Patch, AArch64] Restructure arm_neon.h vector types' implementation.

2014-08-22 Thread Tejas Belagod
On 28/06/14 11:25, Marc Glisse wrote: On Mon, 23 Jun 2014, Tejas Belagod wrote: Here is a patch that restructures neon builtins to use vector types based on standard base types. We previously defined arm_neon.h's neon vector types(int8x8_t) using gcc's front-end vector extensions. W

Re: [Patch, AArch64] Restructure arm_neon.h vector types' implementation.

2014-08-22 Thread Tejas Belagod
On 27/06/14 17:01, Yufeng Zhang wrote: On 27 June 2014 16:32, Tejas Belagod wrote: 2014-06-23 Tejas Belagod diff --git a/gcc/config/aarch64/aarch64-simd-builtin-types.def b/gcc/config/aarch64/aarch64-simd-builtin-types.def new file mode 100644 index 000..aa6a84e --- /dev/null +++ b

Re: [Patch, AArch64] Restructure arm_neon.h vector types' implementation.

2014-08-22 Thread Tejas Belagod
On 04/07/14 15:27, James Greenhalgh wrote: On Fri, Jun 27, 2014 at 04:32:19PM +0100, Tejas Belagod wrote: +/* Internal scalar builtin types. These types are used to support + neon intrinsic builtins. They are _not_ user-visible types. Therefore + the mangling for these types are

[Patch, AArch64] Define vec_extract.

2013-11-05 Thread Tejas Belagod
Hi, The attached patch defines standard pattern name vec_extract for aarch64. Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-11-05 Tejas Belagod gcc/ * config/aarch64/aarch64-simd.md (vec_extract): New.diff --git a/gcc

[Patch, AArch64] Add w -> w constraint to vec_set.

2013-11-05 Thread Tejas Belagod
Hi, The attached patch adds a w -> w constraint to vec_set. Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-11-05 Tejas Belagod gcc/ * config/aarch64/aarch64-simd.md (vec_set): Add w -> w option to

[Patch, RTL] Eliminate redundant vec_select moves.

2013-11-06 Thread Tejas Belagod
required mode. Also, if my understanding of Big-Endian is correct, this should be safe for big-endian targets as well. I've bootstrapped this on x64_64, regressed on aarch64-none-elf, aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. 2013-11-06 Tejas Belagod

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-11-06 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: + /* This is big-endian-safe because the elements are kept in target + memory order. So, for eg. PARALLEL element value of 2 is the same in + either endian-ness. */ + if (GET_CODE (src) == VEC_SELECT + && REG_P (XEXP

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-11-06 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: + /* This is big-endian-safe because the elements are kept in target + memory order. So, for eg. PARALLEL element value of 2 is the same in + either endian-ness. */ + if (GET_CODE (src

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-11-07 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: + /* This is big-endian-safe because the elements are kept in target + memory order. So, for eg. PARALLEL element value of 2 is the same in

Re: [Patch, RTL] Eliminate redundant vec_select moves.

2013-11-07 Thread Tejas Belagod
Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: Richard Sandiford wrote: Tejas Belagod writes: + /* This is big-endian-safe because the elements are kept in target + memory order. So, for eg

[Patch, AArch64] Make reduc_* operations bigendian-safe.

2013-11-15 Thread Tejas Belagod
.2D, Vn.2D, Vn.2D. based on what it thinks is profitable. Most of the time, the DUP is optimized away and the scalar result is used directly. Nevertheless, the choice is given. Tested on aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-11-15

[Patch 0/4, AArch64] Conform vector implementation to ABI.

2013-11-21 Thread Tejas Belagod
ciated lane accesses - this is coming soon. Thanks, Tejas Belagod. ARM.

[Patch 4/4] Conform vector implementation to ABI -- narrowing operations.

2013-11-21 Thread Tejas Belagod
Hi, The attached patch swaps around high and low bits of the source operands of narrow patterns for big-endian so that they end up in the correct order in the destination. Tested for aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. 2013-11-21 Tejas

[Patch 2/4] Conform vector implementation to ABI -- lane set and get.

2013-11-21 Thread Tejas Belagod
Hi, This patch fixes up the lane access patterns to be symmetric to the order in which vectors are stored in registers. Tested for aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. 2013-11-21 Tejas Belagod gcc/ * config/aarch64/aarch64-simd.md

[Patch 1/4] Conform vector implementation to ABI - Loads and Stores.

2013-11-21 Thread Tejas Belagod
Hi, The attached patch fixes the mov standard pattern name for ABI conformance for vector modes. Tested for aarch64-none-elf, aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. Changelog: 2013-11-21 Tejas Belagod gcc/ * config/aarch64/aarch64-simd.md

[Patch 3/4] Conform vector implementation to ABI -- reorganize reduc_operations.

2013-11-21 Thread Tejas Belagod
Hi, The attached patch reorganizes reduc_* operations in aarch64-simd.md and fixes up lane accesses in arm_neon.h to conform to ABI changes. Tested for aarch64-none-elf and aarch64_be-none-elf. OK for trunk? Thanks, Tejas Belagod ARM. 2013-11-21 Tejas Belagod gcc/ * config

Re: [ARM] Fix CLZ_DEFINED_VALUE_AT_ZERO for vector modes

2014-10-09 Thread Tejas Belagod
On 09/10/14 08:05, Michael Collison wrote: The CLZ_DEFINED_VALUE_AT_ZERO macro is harded to return 32. For the vector intrinsic vclz this is incorrect and should return the value eight. The CTZ_DEFINED_VALUE_AT_ZERO has the same issue. Tested on arm-linux-gnueabihf, arm-linux-gnueabi. 2014-10-

Re: [PATCH 1/2] [AARCH64,NEON] Add patterns + builtins for vld[234](q?)_lane_* intrinsics

2014-10-09 Thread Tejas Belagod
+(define_insn "vec_load_lanesoi_lane" Best to prepend "aarch64_" the pattern name, IMHO, else it looks like a standard pattern name(eg. vec_load_lanes) at first glance. Otherwise, LGTM(but I can't approve it). Thanks for this patch. Thanks, Tejas. + [(set (match_operand:OI 0 "register_op

Re: [PATCH 2/2] [AARCH64,NEON] Convert arm_neon.h to use new builtins for vld[234](q?)_lane_*

2014-10-09 Thread Tejas Belagod
On 08/10/14 18:27, charles.bay...@linaro.org wrote: From: Charles Baylis This patch replaces the inline assembler implementations of the vld[234](q?)_lane_* intrinsics with new versions which exploit the new builtin functions added in patch 1. Tested (with the rest of the patch series) with ma

Re: [PATCH PR63173] [AARCH64, NEON] Improve vld[234](q?)_dup intrinsics

2014-10-23 Thread Tejas Belagod
Index: gcc/config/aarch64/arm_neon.h === --- gcc/config/aarch64/arm_neon.h (revision 216558) +++ gcc/config/aarch64/arm_neon.h (working copy) @@ -11765,46 +11765,271 @@ __STRUCTN (poly, 8, 4) __STRUCTN (float, 64, 4) #

[Patch, AArch64] Restructure arm_neon.h vector types' implementation.

2014-06-23 Thread Tejas Belagod
builtin_types; t; t = TREE_CHAIN (t)) +emit_support_tinfo_1 (TREE_VALUE (t)); Regressed on aarch64-none-elf. OK for trunk? Thanks, Tejas. gcc/Changelog 2014-06-23 Tejas Belagod * config/aarch64/aarch64-builtins.c (aarch64_build_scalar_type): Remove. (aarch64_scalar_builtin_types, aa

Re: [Patch, AArch64] Restructure arm_neon.h vector types' implementation.

2014-06-27 Thread Tejas Belagod
2014-06-23 Tejas Belagod * config/aarch64/aarch64-builtins.c (aarch64_build_scalar_type): Remove. (aarch64_scalar_builtin_types, aarch64_simd_type, aarch64_simd_types, aarch64_mangle_builtin_scalar_type, aarch64_mangle_builtin_vector_type

[AArch64, Patch] Add range-check for Symbol + offset addressing.

2014-11-14 Thread Tejas Belagod
The cap value for the offset in each code model is open to debate. All testing done with Alan's workaround patch(https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html) reversed. bootstrapped aarch64-linux. OK for trunk? Thanks, Tejas. 2014-11-14 Tejas Belagod gcc/ * conf

Re: [AArch64, Patch] Add range-check for Symbol + offset addressing.

2014-11-14 Thread Tejas Belagod
On 14/11/14 08:19, Andrew Pinski wrote: On Fri, Nov 14, 2014 at 12:12 AM, Tejas Belagod wrote: Hi, Following the discussion here https://gcc.gnu.org/ml/gcc-patches/2014-09/msg02237.html, this has been tracked down to a range-checking bug with symbol + offset style addressing with adrp where

Re: [AArch64, Patch] Add range-check for Symbol + offset addressing.

2014-11-20 Thread Tejas Belagod
On 14/11/14 17:33, Marcus Shawcroft wrote: On 14 November 2014 08:12, Tejas Belagod wrote: 2014-11-14 Tejas Belagod gcc/ * config/aarch64/aarch64-protos.h (aarch64_classify_symbol): Fixup prototype. * config/aarch64/aarch64.c (aarch64_expand_mov_immediate

Re: RE: [Ping^3] [PATCH, ARM, libgcc] New aeabi_idiv function for armv6-m

2015-07-07 Thread Tejas Belagod
Ping! On 30/04/15 10:40, Hale Wang wrote: -Original Message- From: Hale Wang [mailto:hale.w...@arm.com] Sent: Monday, February 09, 2015 9:54 AM To: Richard Earnshaw Cc: Hale Wang; gcc-patches; Matthew Gretton-Dann Subject: RE: [Ping^2] [PATCH, ARM, libgcc] New aeabi_idiv function for arm

Re: [PATCH] [AArch64, NEON] Improve vpmaxX & vpminX intrinsics

2015-01-16 Thread Tejas Belagod
On 14/01/15 07:09, Yangfei (Felix) wrote: On 09/12/14 08:17, Yangfei (Felix) wrote: On 28 November 2014 at 09:23, Yangfei (Felix) wrote: Hi, This patch converts vpmaxX & vpminX intrinsics to use builtin functions instead of the previous inline assembly syntax. Regtested with aarch64

Re: [[ARM/AArch64][testsuite] 01/36] Add explicit dependency on Neon Cumulative Saturation flag (QC).

2015-01-16 Thread Tejas Belagod
On 13/01/15 15:17, Christophe Lyon wrote: __set_neon_cumulative_sat() modifies the contents on the QC flag, and some intrinsics do so too: this patch adds the explicit dependency on the asm statement, to avoid code reordering or removal. When writing QC, the asm statement now has a fake input de

Re: [[ARM/AArch64][testsuite] 02/36] Be more verbose, and actually confirm that a test was checked.

2015-01-16 Thread Tejas Belagod
On 13/01/15 15:18, Christophe Lyon wrote: * gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (CHECK): Add trace. (CHECK_FP): Likewise. (CHECK_CUMULATIVE_SAT): Likewise. diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h b/gcc/test

Re: [[ARM/AArch64][testsuite] 03/36] Add vmax, vmin, vhadd, vhsub and vrhadd tests.

2015-01-16 Thread Tejas Belagod
+#ifndef NO_FLOAT_VARIANT + VLOAD(vector, buffer, , float, f, 32, 2); + VLOAD(vector, buffer, q, float, f, 32, 4); +#endif +#ifndef NO_FLOAT_VARIANT + VDUP(vector2, , float, f, 32, 2, -15.5f); + VDUP(vector2, q, float, f, 32, 4, -14.5f); +#endif + +#ifndef NO_FLOAT_VARIANT +#define FLO

Re: [[ARM/AArch64][testsuite] 04/36] Add vld1_lane tests.

2015-01-16 Thread Tejas Belagod
On 13/01/15 15:18, Christophe Lyon wrote: * gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c: New file. diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vld1_lane.c new file mode 100644 index 000..168

Re: [[ARM/AArch64][testsuite] 05/36] Add vldX_dup test.

2015-01-16 Thread Tejas Belagod
On 13/01/15 15:18, Christophe Lyon wrote: * gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c: New file. diff --git a/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c b/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/vldX_dup.c new file mode 100644 index 000..53cd

  1   2   3   4   >