Re: [PATCH] arm/aarch64: Add bti for all functions [PR106671]

2024-01-09 Thread Andrea Corallo
Andrea Corallo writes: > Feng Xue OS via Gcc-patches writes: > >> This patch extends option -mbranch-protection=bti with an optional argument >> as bti[+all] to force compiler to unconditionally insert bti for all >> functions. Because a direct function call at the sta

Re: [PATCH] arm/aarch64: Add bti for all functions [PR106671]

2024-01-09 Thread Andrea Corallo
Feng Xue OS via Gcc-patches writes: > This patch extends option -mbranch-protection=bti with an optional argument > as bti[+all] to force compiler to unconditionally insert bti for all > functions. Because a direct function call at the stage of compiling might be > rewritten to an indirect call w

Re: [committed] contrib: add mdcompact

2023-10-06 Thread Andrea Corallo
Richard Biener writes: > On Thu, Oct 5, 2023 at 5:49 PM Andrea Corallo wrote: >> >> Hello all, >> >> this patch checks in mdcompact, the tool written in elisp that I used >> to mass convert all the multi choice pattern in the aarch64 back-end to >> the n

[committed] contrib: add mdcompact

2023-10-05 Thread Andrea Corallo
back-ends (arm, loongarch). The tool can be used to convert a single pattern, an open buffer or all md files in a directory. The tool might need further adjustment to run on some specific back-end, in case very happy to help. This patch was pre-approved here [1]. Best Regards Andrea Corallo

Re: [PATCH 3/3] aarch64: Convert aarch64 multi choice patterns to new syntax

2023-10-03 Thread Andrea Corallo
Richard Sandiford writes: > Andrea Corallo writes: >> Hi all, >> this patch converts a number of multi multi choice patterns within the >> aarch64 backend to the new syntax. >> >> The list of the converted patterns is in the Changelog. >> >> Fo

[PATCH 3/3] aarch64: Convert aarch64 multi choice patterns to new syntax

2023-09-22 Thread Andrea Corallo
[Resending this with the patch compressed as it's more than 400 KB...] Hi all, this patch converts a number of multi multi choice patterns within the aarch64 backend to the new syntax. The list of the converted patterns is in the Changelog. For completeness here follows the list of multi choice

[PATCH 1/3] recog: Improve parser for pattern new compact syntax

2023-09-22 Thread Andrea Corallo
From: Richard Sandiford Hi all, this is to add support to the new compact pattern syntax for the case where the constraints do appear unsorted like: (define_insn "*si3_insn_uxtw" [(set (match_operand:DI 0 "register_operand") (zero_extend:DI (SHIFT_no_rotate:SI (match_operand:

[PATCH 2/3] recog: Support space in "[ cons"

2023-09-22 Thread Andrea Corallo
egister_operand")))] "TARGET_SIMD" {@ [ cons: =0 , 1 ; attrs: type ] [ w, w ; neon_dup ] dup\t%0., %1.[0] [ w, ?r ; neon_from_gp ] dup\t%0., %1 } ) gcc/Changelog 2023-09-20 Andrea Corallo * gensupport.cc (convert_syntax): Skip sp

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

2023-05-02 Thread Andrea Corallo via Gcc-patches
Christophe Lyon writes: > 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 predi

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

2023-05-02 Thread Andrea Corallo via Gcc-patches
Christophe Lyon writes: > 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 predi

[PATCH 10/10] arm testsuite: Shifts and get_FPSCR ACLE optimisation fixes

2023-04-28 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright These newly updated tests were rewritten by Andrea. Some of them needed further manual fixing as follows: * The #shift immediate value not in the check-function-bodies as expected * Some shifts getting optimised to mov immediates, e.g. `uqshll (1, 1);` -> movsr0

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

2023-04-28 Thread Andrea Corallo via Gcc-patches
Hi all, this patch fixes the vstrwq* MVE instrinsics failing to emit the correct sequence of instruction due to a missing predicates. Also the immediate range is fixed to be multiples of 2 up between [-252, 252]. Best Regards Andrea gcc/ChangeLog: * config/arm/constraints.md (mve_vld

[PATCH 04/10] arm: Stop vadcq, vsbcq intrinsics from overwriting the FPSCR NZ flags

2023-04-28 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright Hi all, We noticed that calls to the vadcq and vsbcq intrinsics, both of which use __builtin_arm_set_fpscr_nzcvqc to set the Carry flag in the FPSCR, would produce the following code: ``` < r2 is the *carry input > vmrsr3, FPSCR_nzcvqc bic r3, r3, #536870912

[PATCH 08/10] arm testsuite: Remove reduntant tests

2023-04-28 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright Following Andrea's overhaul of the MVE testsuite, these tests are now reduntant, as equivalent checks have been added to the each intrinsic's .c test. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/mve_fp_vaddq_n.c: Removed. * gcc.target/arm

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

2023-04-28 Thread Andrea Corallo via Gcc-patches
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 vector-scalar comparisons. This is due to the lack of cost model for MVE and th

[PATCH 05/10] arm: Add vorrq_n overloading into vorrq _Generic

2023-04-28 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright We found this as part of the wider testsuite updates. The applicable tests are authored by Andrea earlier in this patch series Ok for trunk? gcc/ChangeLog: * config/arm/arm_mve.h (__arm_vorrq): Add _n variant. --- gcc/config/arm/arm_mve.h | 10 +-

[PATCH 06/10] arm: Fix overloading of MVE scalar constant parameters on vbicq, vmvnq_m

2023-04-28 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright We found this as part of the wider testsuite updates. The applicable tests are authored by Andrea earlier in this patch series Ok for trunk? gcc/ChangeLog: * config/arm/arm_mve.h (__arm_vbicq): Change coerce on scalar constant. (__arm_vmvnq_

Re: [PATCH] [PR104882] [arm] require mve hw for mve run test

2023-02-20 Thread Andrea Corallo via Gcc-patches
Alexandre Oliva via Gcc-patches writes: > The pr104882.c test is an execution test, but arm_v8_1m_mve_ok only > tests for compile-time support. Add a requirement for mve hardware. > > Regstrapped on x86_64-linux-gnu. > Tested on arm-vxworks7 (gcc-12) and arm-eabi (trunk). Ok to install? > > for

Re: [PATCH] [arm] complete vmsr/vmrs blank and case adjustments

2023-02-20 Thread Andrea Corallo via Gcc-patches
Alexandre Oliva writes: > Back in September last year, some of the vmsr and vmrs patterns had an > extraneous blank removed, and the case of register names lowered, but > another instance remained, and so did a few testcases. [...] Hi Alexandre, I'm not approver but LGTM, thanks for fixing thi

Re: [PATCH] arm: Implement arm Function target attribute 'branch-protection'

2023-02-08 Thread Andrea Corallo via Gcc-patches
Andrea Corallo writes: > gcc/ > > * config/arm/arm.cc (arm_valid_target_attribute_rec): Add ARM function > attribute 'branch-protection' and parse its options. > * doc/extend.texi: Document ARM Function attribute 'branch-protection'. > &

Re: [PATCH] aarch64: Fix return_address_sign_ab_exception.C regression

2023-02-08 Thread Andrea Corallo via Gcc-patches
Richard Sandiford writes: > Andrea Corallo via Gcc-patches writes: >> Hi all, >> >> this is to fix the regression of >> g++.target/aarch64/return_address_sign_ab_exception.C that I >> introduced with d8dadbc9a5199bf7bac1ab7376b0f84f45e94350. >> >> &

[PATCH] aarch64: Fix return_address_sign_ab_exception.C regression

2023-02-06 Thread Andrea Corallo via Gcc-patches
Hi all, this is to fix the regression of g++.target/aarch64/return_address_sign_ab_exception.C that I introduced with d8dadbc9a5199bf7bac1ab7376b0f84f45e94350. 'aarch_ra_sign_key' for aarch64 ended up being non defined in the opt file and the function attribute "branch-protection=pac-ret+leaf+b-k

[PATCH] arm: Implement arm Function target attribute 'branch-protection'

2023-01-27 Thread Andrea Corallo via Gcc-patches
gcc/ * config/arm/arm.cc (arm_valid_target_attribute_rec): Add ARM function attribute 'branch-protection' and parse its options. * doc/extend.texi: Document ARM Function attribute 'branch-protection'. gcc/testsuite/ * gcc.target/arm/acle/pacbti-m-predef-13.c: New

Re: [PATCH 23/23] arm: fix missing extern "C" in MVE tests

2023-01-25 Thread Andrea Corallo via Gcc-patches
Kyrylo Tkachov writes: [...] > > Ok. > Thanks, > Kyrill Hi Kyrill, thanks for reviewing. These and all the previous ones are in with the requested ChangeLogs changes. Regards Andrea

[PATCH 0/15] arm: Enables return address verification and branch target identification on Cortex-M

2023-01-23 Thread Andrea Corallo via Gcc-patches
Hi Richard, thanks for reviewing and approving this series, this is now in. BR Andrea

[PATCH 23/23] arm: fix missing extern "C" in MVE tests

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c: Add missing extern "C". * gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c

[PATCH 00/23] arm: rework MVE testsuite and rework backend where necessary (3rd chunck)

2023-01-20 Thread Andrea Corallo via Gcc-patches
st Regards Andrea Andrea Corallo (23): arm: improve tests and fix vclsq* arm: improve tests and fix vclzq* arm: improve tests and fix vnegq* arm: improve tests for vmulhq* arm: improve tests for vmullbq* arm: improve tests for vmulltq* arm: improve tests for vcaddq* arm: improve

[PATCH 09/23] arm: improve tests for vcmulq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vcmulq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vcmulq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vcmulq_m_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vcmulq_m_f32.c: Likewise. *

[PATCH 14/23] arm: improve tests for vqrdmladhxq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmladhxq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmladhxq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmladhxq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmladhxq_s16.c

[PATCH 20/23] arm: improve tests for vqrdmulhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmulhq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmulhq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmulhq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmulhq_m_s16.c

[PATCH 07/23] arm: improve tests for vcaddq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vcaddq_rot270_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vcaddq_rot270_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vcaddq_rot270_m_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vcaddq_rot270_

[PATCH 10/23] arm: improve tests and fix vqabsq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vqabsq_s): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqabsq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqabsq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqabsq_m_s8.c: Likewise

[PATCH 22/23] arm: improve tests for vld2q*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vld2q_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vld2q_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vld2q_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vld2q_s32.c: Likewise. * gcc.tar

[PATCH 19/23] arm: improve tests for vqrdmlsdhxq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmlsdhxq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmlsdhxq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlsdhxq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlsdhxq_s16.c

[PATCH 11/23] arm: improve tests for vqdmladhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmladhq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmladhq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmladhq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmladhq_s16.c: Likewi

[PATCH 08/23] arm: improve tests for vcmlaq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vcmlaq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vcmlaq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vcmlaq_m_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vcmlaq_m_f32.c: Likewise. *

[PATCH 02/23] arm: improve tests and fix vclzq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (@mve_vclzq_s): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vclzq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vclzq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vclzq_m_s8.c: Likewise.

[PATCH 13/23] arm: improve tests for vqrdmladhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmladhq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmladhq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmladhq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmladhq_s16.c: Li

[PATCH 12/23] arm: improve tests for vqdmladhxq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmladhxq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmladhxq_m_s32.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmladhxq_m_s8.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmladhxq_s

[PATCH 21/23] arm: improve tests and fix vqnegq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vqnegq_s): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqnegq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqnegq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqnegq_m_s8.c: Likewise

[PATCH 03/23] arm: improve tests and fix vnegq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vnegq_f, mve_vnegq_s): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vnegq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vnegq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vnegq_m_f

[PATCH 05/23] arm: improve tests for vmullbq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmullbq_int_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmullbq_int_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmullbq_int_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmullbq_int_m_u16

[PATCH 18/23] arm: improve tests for vqrdmlsdhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmlsdhq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmlsdhq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlsdhq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlsdhq_s16.c: Li

[PATCH 04/23] arm: improve tests for vmulhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmulhq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmulhq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulhq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulhq_m_u16.c: Likewise.

[PATCH 06/23] arm: improve tests for vmulltq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulltq_int_m_u16

[PATCH 16/23] arm: improve tests for vqdmlsdhq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmlsdhq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmlsdhq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlsdhq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlsdhq_s16.c: Likewi

[PATCH 01/23] arm: improve tests and fix vclsq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vclsq_s): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vclsq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vclsq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vclsq_m_s8.c: Likewise.

[PATCH 17/23] arm: improve tests for vqdmlsdhxq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmlsdhxq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmlsdhxq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlsdhxq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlsdhxq_s16.c: Li

[PATCH 15/23] arm: improve tests for vqrdmlashq*

2023-01-20 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlashq_n_s8.c: Likewise. --- .../arm/mve/intrinsics/vqrdmlashq_n_s16.c | 32

[PATCH 10/15 V7] arm: Implement cortex-M return signing address codegen

2023-01-11 Thread Andrea Corallo via Gcc-patches
Richard Earnshaw writes: [...] > > Otherwise ok with that change. > > R. Minor respin of this patch addressing the suggestion to have 'use_return_insn' return zero when PAC is enabled. BR Andrea >From 0a894f73fc09be865b7a7cb205e871bf82f8abba Mon Sep 17 00:00:00

Re: [PATCH 9/15] arm: Set again stack pointer as CFA reg when popping if necessary

2023-01-11 Thread Andrea Corallo via Gcc-patches
Richard Earnshaw writes: > On 09/01/2023 16:48, Richard Earnshaw via Gcc-patches wrote: >> On 09/01/2023 14:58, Andrea Corallo via Gcc-patches wrote: >>> Andrea Corallo via Gcc-patches writes: >>> >>>> Richard Earnshaw writes: >>>> >&g

Re: [PATCH 9/15] arm: Set again stack pointer as CFA reg when popping if necessary

2023-01-09 Thread Andrea Corallo via Gcc-patches
Andrea Corallo via Gcc-patches writes: > Richard Earnshaw writes: > >> On 27/09/2022 16:24, Kyrylo Tkachov via Gcc-patches wrote: >>> >>>> -Original Message- >>>> From: Andrea Corallo >>>> Sent: Tuesday, September 27, 2022 11:0

[PATCH 12/15 V5] arm: implement bti injection

2022-12-22 Thread Andrea Corallo via Gcc-patches
Richard Earnshaw writes: > On 14/12/2022 17:00, Richard Earnshaw via Gcc-patches wrote: >> On 14/12/2022 16:40, Andrea Corallo via Gcc-patches wrote: >>> Hi Richard, >>> >>> thanks for reviewing. >>> >>> Richard Earnshaw writes: >>>

[PATCH 1/15 V2] arm: Make mbranch-protection opts parsing common to AArch32/64

2022-12-22 Thread Andrea Corallo via Gcc-patches
Hi all, respinning this as a rebase was necessary, also now is setting 'aarch_enable_bti' to zero as default for arm as suggested during the review of 12/15. Best Regards Andrea >From 6c765818542cc7b40701e8adae2cbe077d5982cc Mon Sep 17 00:00:00 2001 From: Andrea Corallo Dat

[PATCH 12/15 V4] arm: implement bti injection

2022-12-14 Thread Andrea Corallo via Gcc-patches
Hi Richard, thanks for reviewing. Richard Earnshaw writes: > On 28/10/2022 17:40, Andrea Corallo via Gcc-patches wrote: >> Hi all, >> please find attached the third iteration of this patch addresing >> review >> comments. >> Thanks >>

[PATCH 10/15 V6] arm: Implement cortex-M return signing address codegen

2022-12-14 Thread Andrea Corallo via Gcc-patches
_REGNUM) (reg:SI SP_REGNUM) (reg:SI LR_REGNUM)] > + VUNSPEC_AUT_NOP)] > > Similarly. > > R. Hi Richard & all, please find attached the updated patch implementing suggestions. BR Andrea >From adabef75c4af91865b0639243d6d9aa03bf8ad68 Mon Sep 17 00:00:00 200

Re: [PATCH 9/12 V2] arm: Make libgcc bti compatible

2022-12-12 Thread Andrea Corallo via Gcc-patches
Richard Earnshaw writes: > On 22/07/2022 16:09, Andrea Corallo via Gcc-patches wrote: >> Richard Earnshaw writes: >> >>> On 21/07/2022 10:17, Andrea Corallo via Gcc-patches wrote: >>>> Richard Earnshaw writes: >>>> >>>>> On 28/0

[PATCH 10/15 V5] arm: Implement cortex-M return signing address codegen

2022-12-09 Thread Andrea Corallo via Gcc-patches
Hi Richard, thanks for reviewing. Richard Earnshaw writes: > On 07/11/2022 08:57, Andrea Corallo via Gcc-patches wrote: >> Hi all, >> please find attached the lastest version of this patch incorporating >> some >> more improvents. Feel free to ignore V3. &

Re: [PATCH] arm: fix mve intrinsics scan body tests for C++

2022-12-08 Thread Andrea Corallo via Gcc-patches
Kyrylo Tkachov writes: > Hi Andrea, > >> -Original Message----- >> From: Andrea Corallo >> Sent: Wednesday, December 7, 2022 3:03 PM >> To: gcc-patches@gcc.gnu.org >> Cc: Kyrylo Tkachov ; Richard Earnshaw >> ; Andrea Corallo >> Subject: [PATC

Re: [PATCH] arm: fix mve intrinsics scan body tests for C++

2022-12-08 Thread Andrea Corallo via Gcc-patches
Kyrylo Tkachov writes: > Hi Andrea, > >> -Original Message----- >> From: Andrea Corallo >> Sent: Wednesday, December 7, 2022 3:03 PM >> To: gcc-patches@gcc.gnu.org >> Cc: Kyrylo Tkachov ; Richard Earnshaw >> ; Andrea Corallo >> Subject: [PATC

Re: [PATCH 10/15 V4] arm: Implement cortex-M return signing address codegen

2022-12-06 Thread Andrea Corallo via Gcc-patches
Richard Earnshaw writes: > On 06/12/2022 15:46, Andrea Corallo wrote: >> Hi Richard, >> thanks for reviewing. >> Just one clarification before I complete the respin of this patch. >> Richard Earnshaw writes: >> [...] >> >>> Also, I think (

Re: [PATCH 10/15 V4] arm: Implement cortex-M return signing address codegen

2022-12-06 Thread Andrea Corallo via Gcc-patches
Hi Richard, thanks for reviewing. Just one clarification before I complete the respin of this patch. Richard Earnshaw writes: [...] > Also, I think (out of an abundance of caution) we really need a > scheduling barrier placed before calls to gen_aut_nop() pattern is > emitted, to ensure that

Re: [PING][PATCH 0/15] arm: Enables return address verification and branch target identification on Cortex-M

2022-12-05 Thread Andrea Corallo via Gcc-patches
Andrea Corallo via Gcc-patches writes: > Hi all, > > ping^2 for patches 9/15 7/15 11/15 12/15 and 10/15 V2 of this series. > > Andrea Hello all, PING^3 for: [PATCH 6/12 V2] arm: Add pointer authentication for stack-unwinding runtime [PATCH 9/15] arm: Set again stack pointer

Re: [PATCH 00/35] arm: rework MVE testsuite and rework backend where necessary (1st chunk)

2022-11-28 Thread Andrea Corallo via Gcc-patches
Andrea Corallo writes: > Hi all, > > this is the first patch series about improving the current MVE > implementation and testsuite for: > > - Complete intrinsic implementation and coverage (the list of intrinsics is > specified by [1]) > - Verifying all instructions su

[PATCH 35/35 V2] arm: improve tests for vsetq_lane*

2022-11-24 Thread Andrea Corallo via Gcc-patches
; } >> > > Hmm, for these tests we should be able to scan for more specific codegen as > we're setting individual lanes, so we should be able to scan for lane 1 in > the vmov instruction, though it may need to be flipped for big-endian. > Thanks, > Kyrill Hi Kyrill, pl

Re: [PATCH 16/35] arm: Add integer vector overloading of vsubq_x instrinsic

2022-11-22 Thread Andrea Corallo via Gcc-patches
Christophe Lyon writes: > On 11/17/22 17:37, Andrea Corallo via Gcc-patches wrote: >> From: Stam Markianos-Wright >> In the past we had only defined the vsubq_x generic overload of the >> vsubq_x_* intrinsics for float vector types. This would cause them >> to fa

Re: [PATCH 10/35] arm: improve tests for vabavq*

2022-11-21 Thread Andrea Corallo via Gcc-patches
Kyrylo Tkachov writes: >> -Original Message- >> From: Andrea Corallo >> Sent: Thursday, November 17, 2022 4:38 PM >> To: gcc-patches@gcc.gnu.org >> Cc: Kyrylo Tkachov ; Richard Earnshaw >> ; Andrea Corallo >> Subject: [PATCH 10/35] arm: impr

[PATCH 13/35] arm: further fix overloading of MVE vaddq[_m]_n intrinsic

2022-11-17 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright It was observed that in tests `vaddq_m_n_[s/u][8/16/32].c`, the _Generic resolution would fall back to the `__ARM_undef` failure state. This is a regression since `dc39db873670bea8d8e655444387ceaa53a01a79` and `6bd4ce64eb48a72eca300cb52773e6101d646004`, but it previou

[PATCH 15/35] arm: Explicitly specify other float types for _Generic overloading [PR107515]

2022-11-17 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright This patch adds explicit references to other float types to __ARM_mve_typeid in arm_mve.h. Resolves PR 107515: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107515 gcc/ChangeLog: PR 107515 * config/arm/arm_mve.h (__ARM_mve_typeid): Add float types. ---

[PATCH 01/35] arm: improve vcreateq* tests

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vcreateq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vcreateq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vcreateq_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vcreateq_s32.c: Likewise.

[PATCH 17/35] arm: improve tests and fix vadd*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vaddlvq_p_v4si) (mve_vaddq_n_, mve_vaddvaq_) (mve_vaddlvaq_v4si, mve_vaddq_n_f) (mve_vaddlvaq_p_v4si, mve_vaddq, mve_vaddq_f): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vaddlvaq_p_

[PATCH 09/35] arm: improve tests for vmax*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmaxaq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmaxaq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmaxaq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmaxaq_s16.c: Likewise.

[PATCH 29/35] arm: improve tests for vqdmul*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmulhq_m_n_s16.c: Improve tests. * gcc.target/arm/mve/intrinsics/vqdmulhq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmulhq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmulhq_m_s16.c: L

[PATCH 32/35] arm: improve tests for vqsubq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqsubq_m_n_s16.c: * gcc.target/arm/mve/intrinsics/vqsubq_m_n_s32.c: * gcc.target/arm/mve/intrinsics/vqsubq_m_n_s8.c: * gcc.target/arm/mve/intrinsics/vqsubq_m_n_u16.c: * gcc.target/arm/mve/intrinsics/vq

[PATCH 21/35] arm: improve tests for vhaddq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c: Likewise

[PATCH 26/35] arm: improve tests for vmlasq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmlasq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmlasq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmlasq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmlasq_m_n_u16.c: Likewise

[PATCH 34/35] arm: improve tests for vrshlq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vrshlq_m_n_s16.c: Improve tests. * gcc.target/arm/mve/intrinsics/vrshlq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vrshlq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vrshlq_m_n_u16.c: Likewis

[PATCH 18/35] arm: improve tests for vmulq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmulq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vmulq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulq_m_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vmulq_m_f32.c: Likewise. * gcc

[PATCH 25/35] arm: improve tests and fix vmlaldavaxq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vmlaldavaq_) (mve_vmlaldavaxq_s, mve_vmlaldavaxq_p_): Fix spacing vs tabs. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_s16.c: Improve tests. * gcc.target/arm/mve/intrinsics/vmlaldavaxq_p_s3

[PATCH 28/35] arm: improve tests for vqdmlahq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqdmlahq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqdmlahq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlahq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqdmlahq_n_s16.c: Li

[PATCH 22/35] arm: improve tests for vhsubq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vhsubq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vhsubq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vhsubq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vhsubq_m_n_u16.c: Likewise

[PATCH 08/35] arm: improve tests for vmin*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vminaq_m_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vminaq_m_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vminaq_m_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vminaq_s16.c: Likewise.

[PATCH 30/35] arm: improve tests for vqrdmlahq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmlahq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqrdmlahq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlahq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqrdmlahq_n_s16.c

[PATCH 19/35] arm: improve tests and fix vsubq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vsubq_n_f): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vsubq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vsubq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vsubq_m_f16.c: Likewise.

[PATCH 23/35] arm: improve tests for viwdupq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/viwdupq_m_n_u16.c: Improve tests. * gcc.target/arm/mve/intrinsics/viwdupq_m_n_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/viwdupq_m_n_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/viwdupq_m_wb_u16.c: Li

[PATCH 24/35] arm: improve tests for vmladavaq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vmladavaq_p_s16.c: Improve tests. * gcc.target/arm/mve/intrinsics/vmladavaq_p_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vmladavaq_p_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vmladavaq_p_u16.c: Lik

[PATCH 33/35] arm: improve tests and fix vrmlaldavhaq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vrmlaldavhq_v4si, mve_vrmlaldavhaq_v4si): Fix spacing vs tabs. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vrmlaldavhaq_p_s32.c: Improve test. * gcc.target/arm/mve/intrinsics/vrmlaldavhaq_p_u32.c: Likewise. ---

[PATCH 27/35] arm: improve tests for vqaddq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqaddq_m_n_s16.c: Improve test. * gcc.target/arm/mve/intrinsics/vqaddq_m_n_s32.c: Likewise. * gcc.target/arm/mve/intrinsics/vqaddq_m_n_s8.c: Likewise. * gcc.target/arm/mve/intrinsics/vqaddq_m_n_u16.c: Likewise

[PATCH 16/35] arm: Add integer vector overloading of vsubq_x instrinsic

2022-11-17 Thread Andrea Corallo via Gcc-patches
From: Stam Markianos-Wright In the past we had only defined the vsubq_x generic overload of the vsubq_x_* intrinsics for float vector types. This would cause them to fall back to the `__ARM_undef` failure state if they was called through the generic version. This patch simply adds these overload

[PATCH 11/35] arm: improve tests for vabdq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vabdq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vabdq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vabdq_m_f16.c: Likewise. * gcc.target/arm/mve/intrinsics/vabdq_m_f32.c: Likewise. * gcc

[PATCH 12/35] arm: improve tests and fix vabsq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vabsq_f): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vabsq_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vabsq_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vabsq_m_f16.c: Likewise.

[PATCH 20/35] arm: improve tests for vfmasq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vfmasq_m_n_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vfmasq_m_n_f32.c: Likewise. --- .../arm/mve/intrinsics/vfmasq_m_n_f16.c | 50 --- .../arm/mve/intrinsics/vfmasq_m_n_f32.c | 50 +

[PATCH 31/35] arm: improve tests for vqrdmlashq_m*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vqrdmlashq_m_n_s16.c: * gcc.target/arm/mve/intrinsics/vqrdmlashq_m_n_s32.c: * gcc.target/arm/mve/intrinsics/vqrdmlashq_m_n_s8.c: --- .../arm/mve/intrinsics/vqrdmlashq_m_n_s16.c | 34 ++- .../arm/mve

[PATCH 00/35] arm: rework MVE testsuite and rework backend where necessary (1st chunk)

2022-11-17 Thread Andrea Corallo via Gcc-patches
- Fixing the current scan assemblers to really match the wanted mnemonics - Verifying no external calls are emitted This series fixes the backend where necessary. Best Regards Andrea Andrea Corallo (31): arm: improve vcreateq* tests arm: fix 'vmsr' spacing and register capitaliza

[PATCH 35/35] arm: improve tests for vsetq_lane*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vsetq_lane_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vsetq_lane_f32.c: Likewise. * gcc.target/arm/mve/intrinsics/vsetq_lane_s16.c: Likewise. * gcc.target/arm/mve/intrinsics/vsetq_lane_s32.c: Likewis

[PATCH 06/35] arm: improve tests and fix vdupq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vdupq_n_f) (mve_vdupq_n_, mve_vdupq_m_n_) (mve_vdupq_m_n_f): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vdupq_m_n_f16.c: Improve test. * gcc.target/arm/mve/intrinsics/vdupq_m_n_f32.c: Likew

[PATCH 10/35] arm: improve tests for vabavq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vabavq_p_s16.c: * gcc.target/arm/mve/intrinsics/vabavq_p_s32.c: * gcc.target/arm/mve/intrinsics/vabavq_p_s8.c: * gcc.target/arm/mve/intrinsics/vabavq_p_u16.c: * gcc.target/arm/mve/intrinsics/vabavq_p_u

[PATCH 05/35] arm: improve vidupq* tests

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vidupq_m_n_u16.c: Improve tests. * gcc.target/arm/mve/intrinsics/vidupq_m_n_u32.c: Likewise. * gcc.target/arm/mve/intrinsics/vidupq_m_n_u8.c: Likewise. * gcc.target/arm/mve/intrinsics/vidupq_m_wb_u16.c: Likewi

[PATCH 04/35] arm: improve tests and fix vdwdupq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vdwdupq_m_wb_u_insn): Fix spacing. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u16.c : Improve test. * gcc.target/arm/mve/intrinsics/vdwdupq_m_n_u32.c : Likewise. * gcc.target/arm/mve/intrinsics/vdwd

[PATCH 03/35] arm: improve tests and fix vddupq*

2022-11-17 Thread Andrea Corallo via Gcc-patches
gcc/ChangeLog: * config/arm/mve.md (mve_vddupq_u_insn): Fix 'vddup.u' spacing. (mve_vddupq_m_wb_u_insn): Likewise. gcc/testsuite/ChangeLog: * gcc.target/arm/mve/intrinsics/vddupq_m_n_u16.c: Improve test. * gcc.target/arm/mve/intrinsics/vddupq_m_n_u32.c : L

  1   2   3   4   5   >