Re: [PATCH 06/16] arm: add smax/smin expanders for v*hf

2023-05-09 Thread Christophe Lyon via Gcc-patches
On 5/9/23 19:31, Kyrylo Tkachov wrote: -Original Message- From: Christophe Lyon Sent: Tuesday, May 9, 2023 6:18 PM To: Kyrylo Tkachov ; gcc-patches@gcc.gnu.org; Richard Earnshaw ; Richard Sandiford Subject: Re: [PATCH 06/16] arm: add smax/smin expanders for v*hf On 5/9/23 15

Re: [PATCH 06/16] arm: add smax/smin expanders for v*hf

2023-05-09 Thread Christophe Lyon via Gcc-patches
On 5/9/23 15:48, Kyrylo Tkachov wrote: -Original Message- From: Christophe Lyon Sent: Tuesday, May 9, 2023 1:19 PM To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; Richard Earnshaw ; Richard Sandiford Cc: Christophe Lyon Subject: [PATCH 06/16] arm: add smax/smin expanders for v*hf

Re: Testsuite: Add missing 'torture-init'/'torture-finish' around 'LTO_TORTURE_OPTIONS' usage (was: Let each 'lto_init' determine the default 'LTO_OPTIONS', and 'torture-init' the 'LTO_TORTURE_OPTIONS

2023-05-09 Thread Christophe Lyon via Gcc-patches
Hi! On Tue, 9 May 2023 at 11:00, Thomas Schwinge wrote: > Hi Christophe! > > On 2023-05-09T09:32:55+0200, Christophe Lyon > wrote: > > On Wed, 3 May 2023 at 13:47, Richard Biener via Gcc-patches < > gcc-patches@gcc.gnu.org> wrote: > >> On Wed, 3 May 2023

[PATCH 05/16] arm: [MVE intrinsics] rework vmaxvq vminvq vmaxavq vminavq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Implement vmaxvq, vminvq, vmaxavq, vminavq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_S_U) (FUNCTION_PRED_P_S): New. (vmaxavq, vminavq, vmaxvq, vminvq): New. * config/arm

[PATCH 15/16] arm: [MVE intrinsics] factorize vmaxaq vminaq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Factorize vmaxaq vminaq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_VMAXAVMINAQ, MVE_VMAXAVMINAQ_M): New. (mve_insn): Add vmaxa, vmina. (supf): Add VMAXAQ_S, VMAXAQ_M_S, VMINAQ_S, VMINAQ_M_S

[PATCH 09/16] arm: [MVE intrinsics] factorize vmaxnmavq vmaxnmvq vminnmavq vminnmvq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Factorize vmaxnmavq vmaxnmvq vminnmavq vminnmvq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_VMAXNMxV_MINNMxVQ) (MVE_VMAXNMxV_MINNMxVQ_P): New. (mve_insn): Add vmaxnmav, vmaxnmv, vminnmav, vminnmv

[PATCH 07/16] arm: [MVE intrinsics] factorize vmaxnmq vminnmq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Factorize vmaxnmq and vminnmq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MAX_MIN_F): New. (MVE_FP_M_BINARY): Add VMAXNMQ_M_F, VMINNMQ_M_F. (mve_insn): Add vmaxnm, vminnm. (max_min_f_str): New

[PATCH 14/16] arm: [MVE intrinsics] add binary_maxamina shape

2023-05-09 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_maxamina shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_maxamina): New. * config/arm/arm-mve-builtins-shapes.h (binary_maxamina): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 40

[PATCH 13/16] arm: [MVE intrinsics] rework vmaxnmaq vminnmaq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Implement vmaxnmaq and vminnmaq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vmaxnmaq, vminnmaq): New. * config/arm/arm-mve-builtins-base.def (vmaxnmaq, vminnmaq): New. * config/arm/arm-mve-builtins

[PATCH 02/16] arm: [MVE intrinsics] add binary_maxavminav shape

2023-05-09 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_maxavminav shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_maxavminav): New. * config/arm/arm-mve-builtins-shapes.h (binary_maxavminav): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc

[PATCH 11/16] arm: [MVE intrinsics] rework vmaxnmavq vmaxnmvq vminnmavq vminnmvq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Implement vmaxnmavq vmaxnmvq vminnmavq vminnmvq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_PRED_P_F): New. (vmaxnmavq, vmaxnmvq, vminnmavq, vminnmvq): New. * config/arm/arm-mve-builtins

[PATCH 16/16] arm: [MVE intrinsics] rework vmaxaq vminaq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Implement vmaxaq and vminaq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vmaxaq, vminaq): New. * config/arm/arm-mve-builtins-base.def (vmaxaq, vminaq): New. * config/arm/arm-mve-builtins-base.h

[PATCH 08/16] arm: [MVE intrinsics] rework vmaxnmq vminnmq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Implement vmaxnmq and vminnmq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vmaxnmq, vminnmq): New. * config/arm/arm-mve-builtins-base.def (vmaxnmq, vminnmq): New. * config/arm/arm-mve-builtins

[PATCH 04/16] arm: [MVE intrinsics] factorize vmaxvq vminvq vmaxavq vminavq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Factorize vmaxvq vminvq vmaxavq vminavq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_VMAXVQ_VMINVQ, MVE_VMAXVQ_VMINVQ_P): New. (mve_insn): Add vmaxav, vmaxv, vminav, vminv. (supf): Add VMAXAVQ_S, VMAXAVQ_P_S

[PATCH 10/16] arm: [MVE intrinsics] add support for mve_q_p_f

2023-05-09 Thread Christophe Lyon via Gcc-patches
We can call code_for_mve_q_p_f only once this function exists, which is the case after we factorized vmaxnmavq, vmaxnmvq, vminnmavq and vminnmvq in a previous patch. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-functions.h

[PATCH 12/16] arm: [MVE intrinsics] factorize vmaxnmaq vminnmaq

2023-05-09 Thread Christophe Lyon via Gcc-patches
Factorize vmaxnmaq and vminnmaq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_VMAXNMA_VMINNMAQ) (MVE_VMAXNMA_VMINNMAQ_M): New. (mve_insn): Add vmaxnma, vminnma. * config/arm/mve.md (mve_vmaxnmaq_f

[PATCH 06/16] arm: add smax/smin expanders for v*hf

2023-05-09 Thread Christophe Lyon via Gcc-patches
This patch adds the missing expanders for smax/smin for v*hf modes. 2022-09-08 Christophe Lyon gcc/ * config/arm/vec-common.md (smin3): New. (smax3): New. --- gcc/config/arm/vec-common.md | 14 ++ 1 file changed, 14 insertions(+) diff --git a/gcc/config

[PATCH 01/16] arm: [MVE intrinsics] add binary_maxvminv shape

2023-05-09 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_maxvminv shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_maxvminv): New. * config/arm/arm-mve-builtins-shapes.h (binary_maxvminv): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 30

[PATCH 03/16] arm: [MVE intrinsics add unspec_mve_function_exact_insn_pred_p

2023-05-09 Thread Christophe Lyon via Gcc-patches
Introduce a function that will be used to build intrinsics that use p predication. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-functions.h (class unspec_mve_function_exact_insn_pred_p): New. --- gcc/config/arm/arm-mve-builtins-functions.h | 64

Re: Let each 'lto_init' determine the default 'LTO_OPTIONS', and 'torture-init' the 'LTO_TORTURE_OPTIONS' (was: Update testsuite to run with slim LTO)

2023-05-09 Thread Christophe Lyon via Gcc-patches
Hi! On Wed, 3 May 2023 at 13:47, Richard Biener via Gcc-patches < gcc-patches@gcc.gnu.org> wrote: > On Wed, 3 May 2023, Thomas Schwinge wrote: > > > Hi! > > > > This very likely isn't the only instance of such a kind of problem in the > > GCC testsuite ;-) -- but it's one that I've run into,

[PATCH 07/10] arm: [MVE intrinsics] rework vmovnbq vmovntq vqmovnbq vqmovntq vqmovunbq vqmovuntq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vmovnbq, vmovntq, vqmovnbq, vqmovntq, vqmovunbq, vqmovuntq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vmovnbq, vmovntq, vqmovnbq) (vqmovntq, vqmovunbq, vqmovuntq): New. * config/arm/arm

[PATCH 04/10] arm: [MVE intrinsics] rework vrndq vrndaq vrndmq vrndnq vrndpq vrndxq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vrndq, vrndaq, vrndmq, vrndnq, vrndpq, vrndxq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_F): New. (vrndaq, vrndmq, vrndnq, vrndpq, vrndq, vrndxq): New. * config/arm/arm

[PATCH 06/10] arm: [MVE intrinsics] factorize vmovnbq vmovntq vqmovnbq vqmovntq vqmovunbq vqmovuntq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vmovnbq vmovntq vqmovnbq vqmovntq vqmovunbq vqmovuntq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_MOVN, MVE_MOVN_M): New. (mve_insn): Add vmovnb, vmovnt, vqmovnb, vqmovnt, vqmovunb, vqmovunt

[PATCH 08/10] arm: [MVE intrinsics] add binary_widen_n shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_widen_n shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_widen_n): New. * config/arm/arm-mve-builtins-shapes.h (binary_widen_n): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 53

[PATCH 10/10] arm: [MVE intrinsics] rework vshllbq vshlltq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vshllbq and vshlltq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vshllbq, vshlltq): New. * config/arm/arm-mve-builtins-base.def (vshllbq, vshlltq): New. * config/arm/arm-mve-builtins

[PATCH 03/10] arm: [MVE intrinsics] rework vabsq vnegq vclsq vclzq, vqabsq, vqnegq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N_NO_U_F): New. (vabsq, vnegq, vclsq, vclzq, vqabsq, vqnegq): New. * config/arm

[PATCH 09/10] arm: [MVE intrinsics] factorize vshllbq vshlltq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vshllbq vshlltq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (mve_insn): Add vshllb, vshllt. (VSHLLBQ_N, VSHLLTQ_N): Remove. (VSHLLxQ_N): New. (VSHLLBQ_M_N, VSHLLTQ_M_N): Remove

[PATCH 05/10] arm: [MVE intrinsics] add binary_move_narrow and binary_move_narrow_unsigned shapes

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_move_narrow and binary_move_narrow_unsigned shapes descriptions. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_move_narrow): New. (binary_move_narrow_unsigned): New. * config/arm/arm-mve-builtins

[PATCH 02/10] arm: [MVE intrinsics] factorize several unary operations

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vabs vcls vclz vneg vqabs vqneg vrnda vrndm vrndn vrndp vrnd vrndx so that they use the same pattern. This patch introduces the mve_mnemo iterator because some of the involved intrinsics have a different name from their mnenonic: for instance vrndq vs vrintz. 2022-09-08 Christophe

[PATCH 01/10] arm: [MVE intrinsics] add unary shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the unary shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (unary): New. * config/arm/arm-mve-builtins-shapes.h (unary): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 27 +++ gcc

Re: [PATCH] Add emulated scatter capability to the vectorizer

2023-05-05 Thread Christophe Lyon via Gcc-patches
On Wed, 3 May 2023 at 08:44, Richard Biener wrote: > On Tue, 2 May 2023, Christophe Lyon wrote: > > > Hi Richard, > > > > On Fri, 28 Apr 2023 at 14:41, Richard Biener via Gcc-patches < > > gcc-patches@gcc.gnu.org> wrote: > > > > > This adds a

[PATCH 23/23] arm: [MVE intrinsics] rework vshrq vrshrq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vshrq and vrshrq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vrshrq, vshrq): New. * config/arm/arm-mve-builtins-base.def (vrshrq, vshrq): New. * config/arm/arm-mve-builtins-base.h

[PATCH 12/23] arm: [MVE intrinsics] rework vqshlq vshlq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vqshlq, vshlq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_M_N_R): New. (vqshlq, vshlq): New. * config/arm/arm-mve-builtins-base.def (vqshlq, vshlq): New. * config

[PATCH 17/23] arm: [MVE intrinsics] rework vshrnbq vshrntq vrshrnbq vrshrntq vqshrnbq vqshrntq vqrshrnbq vqrshrntq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vshrnbq, vshrntq, vrshrnbq, vrshrntq, vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_F): New. (vshrnbq, vshrntq, vrshrnbq, vrshrntq

[PATCH 16/23] arm: [MVE intrinsics] factorize vshrntq vshrnbq vrshrnbq vrshrntq vqshrnbq vqshrntq vqrshrnbq vqrshrntq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vqshrnbq, vqshrntq, vqrshrnbq, vqrshrntq, vshrntq, vshrnbq, vrshrnbq and vrshrntq so that they use the same pattern. Introduce iterator for *shrn* so that we can use the same pattern despite the different "s", "u" and "i" suffixes. 2022-09-08

[PATCH 20/23] arm: [MVE intrinsics] rework vqrshrunbq vqrshruntq vqshrunbq vqshruntq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vqrshrunbq, vqrshruntq, vqshrunbq, vqshruntq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_ONLY_N_NO_U_F): New. (vqshrunbq, vqshruntq, vqrshrunbq, vqrshruntq): New. * config/arm

[PATCH 14/23] arm: [MVE intrinsics] rework vmaxq vminq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vmaxq and vminq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_NO_F): New. (vmaxq, vminq): New. * config/arm/arm-mve-builtins-base.def (vmaxq, vminq): New

[PATCH 15/23] arm: [MVE intrinsics] add binary_rshift_narrow shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_rshift_narrow shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow): New. * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow): New. --- gcc/config/arm/arm-mve

[PATCH 19/23] arm: [MVE intrinsics] factorize vqrshrunb vqrshrunt vqshrunb vqshrunt

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vqrshrunb, vqrshrunt, vqshrunb, vqshrunt so that they use existing patterns. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_SHRN_N): Add VQRSHRUNBQ, VQRSHRUNTQ, VQSHRUNBQ, VQSHRUNTQ. (MVE_SHRN_M_N): Likewise. (mve_insn): Add

[PATCH 13/23] arm: [MVE intrinsics] factorize vmaxq vminq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vmaxq and vminq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MAX_MIN_SU): New. (max_min_su_str): New. (max_min_supf): New. * config/arm/mve.md (mve_vmaxq_s, mve_vmaxq_u) (mve_vminq_s

[PATCH 22/23] arm: [MVE intrinsics] factorize vsrhrq vrshrq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vsrhrq vrshrq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_VSHRQ_M_N, MVE_VSHRQ_N): New. (mve_insn): Add vrshr, vshr. * config/arm/mve.md (mve_vshrq_n_) (mve_vrshrq_n_): Merge

[PATCH 03/23] arm: [MVE intrinsics] rework vrshlq vqrshlq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vrshlq, vqrshlq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vqrshlq, vrshlq): New. * config/arm/arm-mve-builtins-base.def (vqrshlq, vrshlq): New. * config/arm/arm-mve-builtins-base.h

[PATCH 21/23] arm: [MVE intrinsics] add binary_rshift shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_rshift shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_rshift): New. * config/arm/arm-mve-builtins-shapes.h (binary_rshift): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 36

[PATCH 18/23] arm: [MVE intrinsics] add binary_rshift_narrow_unsigned shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_rshift_narrow_unsigned shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_rshift_narrow_unsigned): New. * config/arm/arm-mve-builtins-shapes.h (binary_rshift_narrow_unsigned

[PATCH 05/23] arm: [MVE intrinsics] rework vqrdmulhq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vqrdmulhq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vqrdmulhq): New. * config/arm/arm-mve-builtins-base.def (vqrdmulhq): New. * config/arm/arm-mve-builtins-base.h (vqrdmulhq): New

[PATCH 07/23] arm: [MVE intrinsics] rework vabdq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Implement vabdq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_N): New. (vabdq): New. * config/arm/arm-mve-builtins-base.def (vabdq): New. * config/arm/arm-mve-builtins-base.h

[PATCH 08/23] arm: [MVE intrinsics] add binary_lshift shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_lshift shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_lshift): New. * config/arm/arm-mve-builtins-shapes.h (binary_lshift): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 57

[PATCH 09/23] arm: [MVE intrinsics] add support for MODE_r

2023-05-05 Thread Christophe Lyon via Gcc-patches
2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins.cc (has_inactive_argument) (finish_opt_n_resolution): Handle MODE_r. * config/arm/arm-mve-builtins.def (r): New mode. --- gcc/config/arm/arm-mve-builtins.cc | 8 ++-- gcc/config/arm/arm-mve

[PATCH 11/23] arm: [MVE intrinsics] add unspec_mve_function_exact_insn_vshl

2023-05-05 Thread Christophe Lyon via Gcc-patches
Introduce a function that will be used to build vshl intrinsics. They are special because they have to handle MODE_r. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-functions.h (class unspec_mve_function_exact_insn_vshl): New. --- gcc/config/arm/arm-mve

[PATCH 04/23] arm: [MVE intrinsics] factorize vqshlq vshlq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vqshlq and vshlq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_SHIFT_M_R, MVE_SHIFT_M_N) (MVE_SHIFT_N, MVE_SHIFT_R): New. (mve_insn): Add vqshl, vshl. * config/arm/mve.md (mve_vqshlq_n_

[PATCH 01/23] arm: [MVE intrinsics] add binary_round_lshift shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_round_lshift shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_round_lshift): New. * config/arm/arm-mve-builtins-shapes.h (binary_round_lshift): New. --- gcc/config/arm/arm-mve-builtins

[PATCH 10/23] arm: [MVE intrinsics] add binary_lshift_r shape

2023-05-05 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_lshift_r shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_lshift_r): New. * config/arm/arm-mve-builtins-shapes.h (binary_lshift_r): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 41

[PATCH 02/23] arm: [MVE intrinsics] factorize vqrshlq vrshlq

2023-05-05 Thread Christophe Lyon via Gcc-patches
Factorize vqrshlq, vrshlq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_RSHIFT_M_N, MVE_RSHIFT_N): New. (mve_insn): Add vqrshl, vrshl. * config/arm/mve.md (mve_vqrshlq_n_) (mve_vrshlq_n_): Merge

[PATCH 06/23] arm: [MVE intrinsics] factorize vabdq

2023-05-05 Thread Christophe Lyon via Gcc-patches
2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_FP_M_BINARY): Add vabdq. (MVE_FP_VABDQ_ONLY): New. (mve_insn): Add vabd. * config/arm/mve.md (mve_vabdq_f): Move into ... (@mve_q_f): ... this. (mve_vabdq_m_f): Remove

Re: [PATCH 00/22] arm: New framework for MVE intrinsics

2023-05-03 Thread Christophe Lyon via Gcc-patches
On 5/2/23 17:04, Christophe Lyon via Gcc-patches wrote: On 5/2/23 11:18, Kyrylo Tkachov wrote: Hi Christophe, -Original Message- From: Christophe Lyon Sent: Tuesday, April 18, 2023 2:46 PM To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; Richard Earnshaw ; Richard Sandiford Cc

[PATCH v2 03/22] arm: [MVE intrinsics] Rework vreinterpretq

2023-05-03 Thread Christophe Lyon via Gcc-patches
This patch implements vreinterpretq using the new MVE intrinsics framework. The old definitions for vreinterpretq are removed as a consequence. 2022-09-08 Murray Steele Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class

Re: [PATCH 08/22] arm: [MVE intrinsics] rework vaddq vmulq vsubq

2023-05-03 Thread Christophe Lyon via Gcc-patches
On 5/2/23 18:31, Kyrylo Tkachov wrote: -Original Message- From: Christophe Lyon Sent: Tuesday, April 18, 2023 2:46 PM To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; Richard Earnshaw ; Richard Sandiford Cc: Christophe Lyon Subject: [PATCH 08/22] arm: [MVE intrinsics] rework vaddq

Re: [PATCH 07/22] arm: [MVE intrinsics] factorize vadd vsubq vmulq

2023-05-02 Thread Christophe Lyon via Gcc-patches
On 5/2/23 18:19, Kyrylo Tkachov wrote: -Original Message- From: Christophe Lyon Sent: Tuesday, April 18, 2023 2:46 PM To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; Richard Earnshaw ; Richard Sandiford Cc: Christophe Lyon Subject: [PATCH 07/22] arm: [MVE intrinsics] factorize

Re: [PATCH 03/22] arm: [MVE intrinsics] Rework vreinterpretq

2023-05-02 Thread Christophe Lyon via Gcc-patches
On 5/2/23 17:28, Kyrylo Tkachov wrote: -Original Message- From: Christophe Lyon Sent: Tuesday, May 2, 2023 3:05 PM To: Kyrylo Tkachov ; gcc-patches@gcc.gnu.org; Richard Earnshaw ; Richard Sandiford Subject: Re: [PATCH 03/22] arm: [MVE intrinsics] Rework vreinterpretq On 5/2

Re: [PATCH 00/22] arm: New framework for MVE intrinsics

2023-05-02 Thread Christophe Lyon via Gcc-patches
On 5/2/23 11:18, Kyrylo Tkachov wrote: Hi Christophe, -Original Message- From: Christophe Lyon Sent: Tuesday, April 18, 2023 2:46 PM To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; Richard Earnshaw ; Richard Sandiford Cc: Christophe Lyon Subject: [PATCH 00/22] arm: New framework

Re: [PATCH] Add emulated scatter capability to the vectorizer

2023-05-02 Thread Christophe Lyon via Gcc-patches
Hi Richard, On Fri, 28 Apr 2023 at 14:41, Richard Biener via Gcc-patches < gcc-patches@gcc.gnu.org> wrote: > This adds a scatter vectorization capability to the vectorizer > without target support by decomposing the offset and data vectors > and then performing scalar stores in the order of

Re: [PATCH 03/22] arm: [MVE intrinsics] Rework vreinterpretq

2023-05-02 Thread Christophe Lyon via Gcc-patches
On 5/2/23 12:26, Kyrylo Tkachov wrote: Hi Christophe, -Original Message- From: Christophe Lyon Sent: Tuesday, April 18, 2023 2:46 PM To:gcc-patches@gcc.gnu.org; Kyrylo Tkachov; Richard Earnshaw; Richard Sandiford Cc: Christophe Lyon Subject: [PATCH 03/22] arm: [MVE intrinsics

Re: [PATCH 09/10] arm testsuite: XFAIL or relax registers in some tests

2023-05-02 Thread Christophe Lyon via Gcc-patches
Hi Stam! On 4/28/23 13:30, Andrea Corallo via Gcc-patches wrote: From: Stam Markianos-Wright Hi all, This is a simple testsuite tidy-up patch, addressing to types of errors: * The vcmp vector-scalar tests failing due to the compiler's preference of vector-vector comparisons, over

Re: [PATCH 02/10] arm: Fix vstrwq* backend + testsuite

2023-05-02 Thread Christophe Lyon via Gcc-patches
Hi Andrea, Minor comments below: On 4/28/23 13:29, Andrea Corallo via Gcc-patches wrote: Hi all, this patch fixes the vstrwq* MVE instrinsics failing to emit the correct sequence of instruction due to a missing predicates. Also the nit: you have a typo, should be "predicate" immediate

[PATCH 18/22] arm: [MVE intrinsics] factorize several binary_m operations

2023-04-18 Thread Christophe Lyon via Gcc-patches
. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_INT_SU_M_BINARY): New. (mve_insn): Add vabdq, vhaddq, vhsubq, vmaxq, vminq, vmulhq, vqaddq, vqdmladhq, vqdmladhxq, vqdmlsdhq, vqdmlsdhxq, vqdmulhq, vqrdmladhq, vqrdmladhxq, vqrdmlsdhq

[PATCH 12/22] arm: [MVE intrinsics] add binary_orrq shape

2023-04-18 Thread Christophe Lyon via Gcc-patches
patch adds the binary_orrq shape description. MODE_n intrinsics use a set of predicates (preds_m_or_none) different the MODE_none ones, so we explicitly reference preds_m_or_none from the shape, thus we need to make it a global array. 2022-09-08 Christophe Lyon gcc/ * config

[PATCH 11/22] arm: [MVE intrinsics] rework vandq veorq

2023-04-18 Thread Christophe Lyon via Gcc-patches
Implement vamdq, veorq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M): New. (vandq,veorq): New. * config/arm/arm-mve-builtins-base.def (vandq, veorq): New. * config/arm

[PATCH 13/22] arm: [MVE intrinsics] rework vorrq

2023-04-18 Thread Christophe Lyon via Gcc-patches
Implement vorrq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITH_RTX_M_N_NO_N_F): New. (vorrq): New. * config/arm/arm-mve-builtins-base.def (vorrq): New. * config/arm/arm-mve

[PATCH 21/22] arm: [MVE intrinsics] factorize several binary operations

2023-04-18 Thread Christophe Lyon via Gcc-patches
Factorize vabdq, vhaddq, vhsubq, vmulhq, vqaddq_u, vqdmulhq, vqrdmulhq, vqrshlq, vqshlq, vqsubq_u, vrhaddq, vrmulhq, vrshlq so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_INT_SU_BINARY): New. (mve_insn): Add vabdq

[PATCH 17/22] arm: [MVE intrinsics] rework vcreateq

2023-04-18 Thread Christophe Lyon via Gcc-patches
Implement vcreateq using the new MVE builtins framework. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (FUNCTION_WITHOUT_M_N): New. (vcreateq): New. * config/arm/arm-mve-builtins-base.def (vcreateq): New. * config/arm/arm-mve-builtins

[PATCH 06/22] arm: [MVE intrinsics] add unspec_based_mve_function_exact_insn

2023-04-18 Thread Christophe Lyon via Gcc-patches
Introduce a function that will be used to build intrinsics which use RTX codes for the non-predicated, no-mode version, and UNSPECS otherwise. 2022-09-08 Christophe Lyon gcc/ChangeLog: * config/arm/arm-mve-builtins-functions.h (class unspec_based_mve_function_base): New

[PATCH 20/22] arm: [MVE intrinsics] factorize several binary _m_n operations

2023-04-18 Thread Christophe Lyon via Gcc-patches
Factorize vhaddq_m_n, vhsubq_m_n, vmlaq_m_n, vmlasq_m_n, vqaddq_m_n, vqdmlahq_m_n, vqdmlashq_m_n, vqdmulhq_m_n, vqrdmlahq_m_n, vqrdmlashq_m_n, vqrdmulhq_m_n, vqsubq_m_n so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md

[PATCH 19/22] arm: [MVE intrinsics] factorize several binary _n operations

2023-04-18 Thread Christophe Lyon via Gcc-patches
Factorize vhaddq_n, vhsubq_n, vqaddq_n, vqdmulhq_n, vqrdmulhq_n, vqsubq_n so that they use the same pattern. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_INT_SU_N_BINARY): New. (mve_insn): Add vhaddq, vhsubq, vqaddq, vqdmulhq, vqrdmulhq, vqsubq

[PATCH 16/22] arm: [MVE intrinsics] factorize vcreateq

2023-04-18 Thread Christophe Lyon via Gcc-patches
We need a 'fake' iterator to be able to use mve_insn for vcreateq_f. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_FP_CREATE): New. (mve_insn): Add VCREATEQ_S, VCREATEQ_U, VCREATEQ_F. * config/arm/mve.md (mve_vcreateq_f): Rename

[PATCH 09/22] arm: [MVE intrinsics] add binary shape

2023-04-18 Thread Christophe Lyon via Gcc-patches
This patch adds the binary shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary): New. * config/arm/arm-mve-builtins-shapes.h (binary): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 27 +++ gcc

[PATCH 10/22] arm: [MVE intrinsics] factorize vandq veorq vorrq vbicq

2023-04-18 Thread Christophe Lyon via Gcc-patches
Factorize vandq, veorq, vorrq, vbicq so that they use the same parameterized names. 2022-09-08 Christophe Lyon gcc/ * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC) (MVE_FP_M_BINARY_LOGIC): New. (MVE_INT_M_N_BINARY_LOGIC): New. (MVE_INT_N_BINARY_LOGIC

[PATCH 15/22] arm: [MVE intrinsics] add create shape

2023-04-18 Thread Christophe Lyon via Gcc-patches
This patch adds the create shape description. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-shapes.cc (create): New. * config/arm/arm-mve-builtins-shapes.h: (create): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 22 ++ gcc

[PATCH 07/22] arm: [MVE intrinsics] factorize vadd vsubq vmulq

2023-04-18 Thread Christophe Lyon via Gcc-patches
to share similar patterns, to avoid useless/error-prone code duplication. 2022-09-08 Christophe Lyon gcc/ChangeLog: * config/arm/iterators.md (MVE_INT_BINARY_RTX, MVE_INT_M_BINARY) (MVE_INT_M_N_BINARY, MVE_INT_N_BINARY, MVE_FP_M_BINARY) (MVE_FP_M_N_BINARY

[PATCH 05/22] arm: [MVE intrinsics] add binary_opt_n shape

2023-04-18 Thread Christophe Lyon via Gcc-patches
This patch adds the binary_opt_n shape description. gcc/ * config/arm/arm-mve-builtins-shapes.cc (binary_opt_n): New. * config/arm/arm-mve-builtins-shapes.h (binary_opt_n): New. --- gcc/config/arm/arm-mve-builtins-shapes.cc | 32 +++

[PATCH 04/22] arm: [MVE intrinsics] Rework vuninitialized

2023-04-18 Thread Christophe Lyon via Gcc-patches
Implement vuninitialized using the new MVE builtins framework. We need to keep the overloaded __arm_vuninitializedq definitions because their resolution depends on the result type only, which is not currently supported by the resolver. 2022-09-08 Murray Steele Christophe Lyon

[PATCH 03/22] arm: [MVE intrinsics] Rework vreinterpretq

2023-04-18 Thread Christophe Lyon via Gcc-patches
This patch implements vreinterpretq using the new MVE intrinsics framework. The old definitions for vreinterpretq are removed as a consequence. 2022-09-08 Murray Steele Christophe Lyon gcc/ * config/arm/arm-mve-builtins-base.cc (vreinterpretq_impl): New class

[PATCH 14/22] arm: [MVE intrinsics] add unspec_mve_function_exact_insn

2023-04-18 Thread Christophe Lyon via Gcc-patches
Introduce a function that will be used to build intrinsics which use UNSPECS for the versions. 2022-09-08 Christophe Lyon gcc/ * config/arm/arm-mve-builtins-functions.h (class unspec_mve_function_exact_insn): New. --- gcc/config/arm/arm-mve-builtins-functions.h | 151

[PATCH 02/22] arm: [MVE intrinsics] Add new framework

2023-04-18 Thread Christophe Lyon via Gcc-patches
using explicit_mode_suffix_p and skip_overload_p in addition to explicit_type_suffix_p At this implemtation stage, there are some limitations compared to aarch64/SVE, which are removed later in the series: - "offset" mode is not supported yet - gimple folding is not implemented 20

[PATCH 01/22] arm: move builtin function codes into general numberspace

2023-04-18 Thread Christophe Lyon via Gcc-patches
. 2022-09-08 Murray Steele Christophe Lyon gcc/ChangeLog: * config/arm/arm-builtins.cc (arm_general_add_builtin_function): New function. (arm_init_builtin): Use arm_general_add_builtin_function instead of arm_add_builtin_function

[PATCH 00/22] arm: New framework for MVE intrinsics

2023-04-18 Thread Christophe Lyon via Gcc-patches
To help reviewers, I suggest to compare arm-mve-builtins.cc with aarch64-sve-builtins.cc. Christophe Lyon (22): arm: move builtin function codes into general numberspace arm: [MVE intrinsics] Add new framework arm: [MVE intrinsics] Rework vreinterpretq arm: [MVE intrinsics] Rework vuninitialize

[PATCH] install.texi: Document --enable-decimal-float for AArch64

2023-04-18 Thread Christophe Lyon via Gcc-patches
When I committed the patches to enable support for DFP on AArch64, I forgot to update the installation documentation. This patch adds AArch64 as needed (same as i386/x86_64). OK for trunk and gcc-13? 2023-04-17 Christophe Lyon gcc/ * doc/install.texi (enable-decimal-float

Re: [PATCH] [arm] adjust tests for quotes around +cdecp

2023-03-03 Thread Christophe Lyon via Gcc-patches
On 3/3/23 09:24, Alexandre Oliva wrote: Hello, Christophe, On Feb 22, 2023, Christophe Lyon wrote: OK thanks for the clarification. (and for the other cleanup patches!) Was this meant as approval? I hadn't taken it as such. Unfortunately, no, I don't have such powers

Re: [PATCH] [arm] adjust tests for quotes around +cdecp

2023-02-22 Thread Christophe Lyon via Gcc-patches
On 2/22/23 13:38, Alexandre Oliva wrote: Hello, Christophe, On Feb 20, 2023, Christophe Lyon wrote: On 2/17/23 08:17, Alexandre Oliva via Gcc-patches wrote: Back when quotes were added around "+cdecp" in the "coproc must be a constant immediate" error in ar

Re: [PATCH] [arm] adjust tests for quotes around +cdecp

2023-02-20 Thread Christophe Lyon via Gcc-patches
Hi Alexandre, On 2/17/23 08:17, Alexandre Oliva via Gcc-patches wrote: Back when quotes were added around "+cdecp" in the "coproc must be a constant immediate" error in arm-builtins.cc, tests for that message lagged behind. Fixed thusly. Regstrapped on x86_64-linux-gnu. Tested on

[PATCH] arm: Fix warning in libgcc/config/arm/pr-support.c

2023-02-01 Thread Christophe Lyon via Gcc-patches
I have noticed some warnings when building GCC for arm-eabi: pr-support.c:110:7: warning: variable ‘set_pac_sp’ set but not used [-Wunused-but-set-variable] pr-support.c:109:7: warning: variable ‘set_pac’ set but not used [-Wunused-but-set-variable] This small patch avoids them by defining

[PATCH] arm: [MVE] Add missing length=8 attribute

2023-02-01 Thread Christophe Lyon via Gcc-patches
I have noticed that the "length" "8" attribute is missing in a few patterns in mve.md. gcc/ * config/arm/mve.md (mve_vabavq_p_): Add length attribute. (mve_vqshluq_m_n_s): Likewise. (mve_vshlq_m_): Likewise. (mve_vsriq_m_n_): Likewise.

Re: [PATCH v3 1/2] aarch64: fix warning emission for ABI break since GCC 9.1

2023-01-25 Thread Christophe Lyon via Gcc-patches
On 1/12/23 14:03, Richard Sandiford wrote: Christophe Lyon writes: While looking at PR 105549, which is about fixing the ABI break introduced in GCC 9.1 in parameter alignment with bit-fields, we noticed that the GCC 9.1 warning is not emitted in all the cases where it should

Re: [PATCH 1/2] aarch64: fix ICE in aarch64_layout_arg [PR108411]

2023-01-19 Thread Christophe Lyon via Gcc-patches
On 1/19/23 10:22, Richard Sandiford wrote: Christophe Lyon writes: The previous patch added an assert which should not be applied to PST types (Pure Scalable Types) because alignment does not matter in this case. This patch moves the assert after the PST case is handled to avoid the ICE

[PATCH 1/2] aarch64: fix ICE in aarch64_layout_arg [PR108411]

2023-01-18 Thread Christophe Lyon via Gcc-patches
The previous patch added an assert which should not be applied to PST types (Pure Scalable Types) because alignment does not matter in this case. This patch moves the assert after the PST case is handled to avoid the ICE. PR target/108411 gcc/ * config/aarch64/aarch64.cc

[PATCH 2/2] aarch64: add -fno-stack-protector to some tests [PR108411]

2023-01-18 Thread Christophe Lyon via Gcc-patches
As discussed in the PR, these recently added tests fail when the testsuite is executed with -fstack-protector-strong. To avoid this, this patch adds -fno-stack-protector to dg-options. PR target/108411 gcc/testsuite *

Re: [PATCH v3 2/2] aarch64: Fix bit-field alignment in param passing [PR105549]

2023-01-17 Thread Christophe Lyon via Gcc-patches
On 1/17/23 13:48, Jakub Jelinek wrote: On Tue, Jan 17, 2023 at 01:43:35PM +0100, Christophe Lyon wrote: As a follow-up to this, I ran the full testsuite with -fstack-protector-all and this results in lots of failures (~65000 in gcc.sum alone). I guess that is way too much. Since you also

Re: [PATCH v3 2/2] aarch64: Fix bit-field alignment in param passing [PR105549]

2023-01-17 Thread Christophe Lyon via Gcc-patches
Hi Jakub, On 1/15/23 17:54, Christophe Lyon via Gcc-patches wrote: Hi! On 1/13/23 16:38, Jakub Jelinek wrote: On Wed, Jan 11, 2023 at 03:18:06PM +0100, Christophe Lyon via Gcc-patches wrote: While working on enabling DFP for AArch64, I noticed new failures in gcc.dg/compat/struct-layout-1

Re: [PATCH v3 2/2] aarch64: Fix bit-field alignment in param passing [PR105549]

2023-01-15 Thread Christophe Lyon via Gcc-patches
Hi! On 1/13/23 16:38, Jakub Jelinek wrote: On Wed, Jan 11, 2023 at 03:18:06PM +0100, Christophe Lyon via Gcc-patches wrote: While working on enabling DFP for AArch64, I noticed new failures in gcc.dg/compat/struct-layout-1.exp (t028) which were not actually caused by DFP types handling

Re: [PATCH v3 1/2] aarch64: fix warning emission for ABI break since GCC 9.1

2023-01-12 Thread Christophe Lyon via Gcc-patches
On 1/12/23 14:03, Richard Sandiford wrote: Christophe Lyon writes: While looking at PR 105549, which is about fixing the ABI break introduced in GCC 9.1 in parameter alignment with bit-fields, we noticed that the GCC 9.1 warning is not emitted in all the cases where it should

Re: [PATCH v3 2/2] aarch64: Fix bit-field alignment in param passing [PR105549]

2023-01-12 Thread Christophe Lyon via Gcc-patches
On 1/12/23 14:19, Richard Sandiford wrote: Christophe Lyon writes: While working on enabling DFP for AArch64, I noticed new failures in gcc.dg/compat/struct-layout-1.exp (t028) which were not actually caused by DFP types handling. These tests are generated during 'make check' and enabling

<    1   2   3   4   5   6   7   8   9   10   >