From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62b.google.com (mail-pl1-x62b.google.com [IPv6:2607:f8b0:4864:20::62b]) by sourceware.org (Postfix) with ESMTPS id 5CBB83858D1E for ; Mon, 19 Jun 2023 23:48:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5CBB83858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-pl1-x62b.google.com with SMTP id d9443c01a7336-1b55fc3a71cso9353605ad.2 for ; Mon, 19 Jun 2023 16:48:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687218514; x=1689810514; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Mlr7Mjpz4nVT85OXVLAX1zAo7nmiY3yErcN5GjpplWU=; b=DFebfQ/+odb8Y8u3p2dJVo0QmIRv7n8YuSs93Ry17rTsD6VpmnuOPjnk02wvsgBIxp YDcsYtnGEVYq3hc63mSxFOPCrPNK15uSGYt/TqXJDcN66aXRAjJk/d5o8mKAwWCys1Sn MoFHvN2z8EeOHReuCNZgyR8nl9+wRw2rJ3bETKp4DV+fgBTiXHF6D4+TbfSlX4YQ8g3Q ALMNTF0fsdiP1Yr+hWkQ3QwyuVo/wlQYKIwh/LqpyTVLypZP7Gw+CkOrJTKmfkqVnICI JCxAYWCmLYLk+x1wRvwL+bMYxf0Pv87Ym387bJJhmgHVhbp5vMoKUWP2bMwZkMCMXq2O QNPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687218514; x=1689810514; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Mlr7Mjpz4nVT85OXVLAX1zAo7nmiY3yErcN5GjpplWU=; b=M4HmZYO1H54r4bJOP7dib4ur7xZHqApxywMq10DSDUjY+A75i2CS3tW1pjZJPJJgdI pIHQWPJhbwZbjEkCb05h64DlgOj06ZFkjSyjb3dGrF0dnKHSJhGNic/TLgANmWWQydzt AbLG3TbL2xYyutQdJm/hyoKrM1mnieMJNqXWZa14BTvxfuEsLXe2n+E+YewlD/+/jUNt NK7c74oSokchT60jDzgzf5cJTRROCFB+LNJIComKHrGfTc7wEf6l6UhtiEZ5L8xNXXVQ 1JA8AW+b8k28eG/U9WhdB44lbwVektXQuZ7REoN/8p38wCRmiAJdY2gFpejdu+bc+feQ KHEw== X-Gm-Message-State: AC+VfDxqosIDCyWvLIjoRQuC4oVoH8c++hkQXzJPoHoJT6F6dRmbG5T+ 5kPp/9dRbF+QXpmOrYSy8li1phC0BqCHfqgM/20= X-Google-Smtp-Source: ACHHUZ50mT0IIg32KFmu3R6Tn6VvKJ5d5IAPlft1ZcZvRhTJAbiwDtgyVsC5SYIx4JfEbp1S+yven+DOTuxkMIMlXb8= X-Received: by 2002:a17:902:e5cb:b0:1a6:b23c:3bf2 with SMTP id u11-20020a170902e5cb00b001a6b23c3bf2mr10092608plf.10.1687218513932; Mon, 19 Jun 2023 16:48:33 -0700 (PDT) MIME-Version: 1.0 References: <20230525123550.1072506-1-manolis.tsamis@vrull.eu> <20230525123550.1072506-3-manolis.tsamis@vrull.eu> <5836d561-2986-484c-8d9a-744c948e8602@gmail.com> <87ttv3xud1.fsf@linaro.org> In-Reply-To: From: Andrew Pinski Date: Mon, 19 Jun 2023 16:48:21 -0700 Message-ID: Subject: Re: [PATCH 2/2] cprop_hardreg: Enable propagation of the stack pointer if possible. To: Thiago Jung Bauermann Cc: Manolis Tsamis , Jeff Law , Philipp Tomsich , Richard Biener , Palmer Dabbelt , Kito Cheng , gcc-patches@gcc.gnu.org, Tamar Christina Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On Mon, Jun 19, 2023 at 4:40=E2=80=AFPM Andrew Pinski w= rote: > > On Mon, Jun 19, 2023 at 9:58=E2=80=AFAM Thiago Jung Bauermann via Gcc-pat= ches > wrote: > > > > > > Hello Manolis, > > > > Philipp Tomsich writes: > > > > > On Thu, 8 Jun 2023 at 00:18, Jeff Law wrote: > > >> > > >> On 5/25/23 06:35, Manolis Tsamis wrote: > > >> > Propagation of the stack pointer in cprop_hardreg is currenty forb= idden > > >> > in all cases, due to maybe_mode_change returning NULL. Relax this > > >> > restriction and allow propagation when no mode change is requested= . > > >> > > > >> > gcc/ChangeLog: > > >> > > > >> > * regcprop.cc (maybe_mode_change): Enable stack pointer p= ropagation. > > >> Thanks for the clarification. This is OK for the trunk. It looks > > >> generic enough to have value going forward now rather than waiting. > > > > > > Rebased, retested, and applied to trunk. Thanks! > > > > Our CI found a couple of tests that started failing on aarch64-linux > > after this commit. I was able to confirm manually that they don't happe= n > > in the commit immediately before this one, and also that these failures > > are still present in today's trunk. > > > > I have testsuite logs for last good commit, first bad commit and curren= t > > trunk here: > > > > https://people.linaro.org/~thiago.bauermann/gcc-regression-6a2e8dcbbd4b= / > > > > Could you please check? > > > > These are the new failures: > > > > Running gcc:gcc.target/aarch64/aarch64.exp ... > > FAIL: gcc.target/aarch64/stack-check-cfa-3.c scan-assembler-times mov\\= tx11, sp 1 > > So for the above before this change we had: > ``` > (insn:TI 597 596 598 2 (set (reg:DI 11 x11) > (reg/f:DI 31 sp)) "stack-check-prologue-16.c":16:1 65 {*movdi_aar= ch64} > (nil)) > (insn 598 597 599 2 (set (mem:BLK (scratch) [0 A8]) > (unspec:BLK [ > (reg:DI 11 x11) > (reg/f:DI 31 sp) > ] UNSPEC_PRLG_STK)) "stack-check-prologue-16.c":16:1 1169 > {stack_tie} > (expr_list:REG_DEAD (reg:DI 11 x11) > (nil))) > ``` > > After we get: > ``` > (insn 598 596 599 2 (set (mem:BLK (scratch) [0 A8]) > (unspec:BLK [ > (reg:DI 31 sp [11]) repeated x2 > ] UNSPEC_PRLG_STK)) "stack-check-prologue-16.c":16:1 1169 > {stack_tie} > (nil)) > ``` > Which seems to be ok, except we still have: > .cfi_def_cfa_register 11 > > That is because on: > (insn/f 596 595 598 2 (set (reg:DI 12 x12) > (plus:DI (reg:DI 12 x12) > (const_int 272 [0x110]))) "stack-check-prologue-16.c":16:1 > 153 {*adddi3_aarch64} > (expr_list:REG_CFA_DEF_CFA (reg:DI 11 x11) > (nil))) > > We record x11 but never update it though that came before the mov for > x11 ... So it seems like cprop_hardreg had no idea it needed to update > it. > > I suspect the other testcases are just propagation of sp into the > stores and such and just needed update. But the above testcase seems > getting broken cfi though I don't know how to fix it. The code from aarch64.cc: ``` /* This is done to provide unwinding information for the stack adjustments we're about to do, however to prevent the optimize= rs from removing the R11 move and leaving the CFA note (which wou= ld be very wrong) we tie the old and new stack pointer together. The tie will expand to nothing but the optimizers will not tou= ch the instruction. */ rtx stack_ptr_copy =3D gen_rtx_REG (Pmode, STACK_CLASH_SVE_CFA_RE= GNUM); emit_move_insn (stack_ptr_copy, stack_pointer_rtx); emit_insn (gen_stack_tie (stack_ptr_copy, stack_pointer_rtx)); /* We want the CFA independent of the stack pointer for the duration of the loop. */ add_reg_note (insn, REG_CFA_DEF_CFA, stack_ptr_copy); RTX_FRAME_RELATED_P (insn) =3D 1; ``` Well except now with this change, the optimizers touch this instruction. Maybe the move instruction should not be a move but an unspec so optimizers don't know what the move was. Adding Tamar to the CC who added this code to aarch64 originally for comments on the above understanding here. Thanks, Andrew > > Thanks, > Andrew Pinski > > > > > > Running gcc:gcc.target/aarch64/sve/pcs/aarch64-sve-pcs.exp ... > > FAIL: gcc.target/aarch64/sve/pcs/args_1.c -march=3Darmv8.2-a+sve -fno-s= tack-protector check-function-bodies caller_pred > > FAIL: gcc.target/aarch64/sve/pcs/args_2.c -march=3Darmv8.2-a+sve -fno-s= tack-protector scan-assembler \\tmov\\t(z[0-9]+\\.b), #8\\n.*\\tst1b\\t\\1= , p[0-7], \\[x4\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_3.c -march=3Darmv8.2-a+sve -fno-s= tack-protector scan-assembler \\tmov\\t(z[0-9]+\\.b), #8\\n.*\\tst1b\\t\\1= , p[0-7], \\[x4\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_4.c -march=3Darmv8.2-a+sve -fno-s= tack-protector scan-assembler \\tfmov\\t(z[0-9]+\\.h), #8\\.0.*\\tst1h\\t\= \1, p[0-7], \\[x4\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\= .h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b= }.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_be_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b= }.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\= .h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+)\\.b - z[0-9]+\\.b= }.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld2d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_5_le_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld2b\\t{(z[0-9]+)\\.b - z[0-9]+\\.b= }.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \= \[x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+\\.h) - z[0-9]+\\= .h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld1b\\t(z[0-9]+\\.b), p[0-7]/z, \\[= x0, #5, mul vl\\]\\n.*\\tst1b\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld4b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b= }.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+\\.h) - z[0-9]+\\.= h}.*\\tst1h\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+\\.s) - z[0-9]+\\.= s}.*\\tst1w\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+\\.d) - z[0-9]+\\.= d}.*\\tst1d\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld1b\\t(z[0-9]+\\.b), p[0-7]/z, \\[= x0, #5, mul vl\\]\\n.*\\tst1b\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_be_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld4b\\t{(z[0-9]+\\.b) - z[0-9]+\\.b= }.*\\tst1b\\t\\1, p[0-7], \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \= \[x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_bf16.c -march=3Darmv8.2-a+sv= e -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+)\\.h - z[0-9]+\\= .h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld1b\\t(z[0-9]+\\.b), p[0-7]/z, \\[= x0, #5, mul vl\\]\\n.*\\tst1b\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld4b\\t{(z[0-9]+)\\.b - z[0-9]+\\.b= }.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1h\\t(z[0-9]+\\.h), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1h\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4h\\t{(z[0-9]+)\\.h - z[0-9]+\\.= h}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1w\\t(z[0-9]+\\.s), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1w\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4w\\t{(z[0-9]+)\\.s - z[0-9]+\\.= s}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld1d\\t(z[0-9]+\\.d), p[0-7]/z, \\= [x0, #5, mul vl\\]\\n.*\\tst1d\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector scan-assembler \\tld4d\\t{(z[0-9]+)\\.d - z[0-9]+\\.= d}.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld1b\\t(z[0-9]+\\.b), p[0-7]/z, \\[= x0, #5, mul vl\\]\\n.*\\tst1b\\t\\1, p[0-7], \\[x2\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_6_le_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector scan-assembler \\tld4b\\t{(z[0-9]+)\\.b - z[0-9]+\\.b= }.*\\tstr\\t\\1, \\[x1\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/args_8.c -march=3Darmv8.2-a+sve -fno-s= tack-protector scan-assembler \\tmov\\t(z[0-9]+\\.b), #42\\n.*\\tst1b\\t\\= 1, p[0-7], \\[x4\\]\\n > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_1 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_3 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_4 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_5 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_6 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_1.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_7 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_1 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_10 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_11 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_2 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_3 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_4 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_5 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_6 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_7 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_8 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_2.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_9 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_3.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_1 > > FAIL: gcc.target/aarch64/sve/pcs/stack_clash_3.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies test_2 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_1.c -march=3Darmv8.2-a+sve -fn= o-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_1.c -march=3Darmv8.2-a+sve -fn= o-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_1.c -march=3Darmv8.2-a+sve -fn= o-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_f64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_s8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u16.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u32.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u64.c -march=3Darmv8.2-a+sve= -fno-stack-protector check-function-bodies caller_7 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_0 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_1 > > FAIL: gcc.target/aarch64/sve/pcs/varargs_2_u8.c -march=3Darmv8.2-a+sve = -fno-stack-protector check-function-bodies caller_7 > > > > -- > > Thiago