From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1816) id A55523858410; Fri, 18 Nov 2022 14:57:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A55523858410 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1668783458; bh=6kGulDph+wWYwYRB8DVplEljlYGQQZUqKJ6IjhEQypw=; h=From:To:Subject:Date:From; b=mM+sxlLHd5Drjm3c+0ripg1McuJ9WIshuWEfiUnEj3jtYMsJg3LE7pIjOMUPPnqzE 4nXYA1E8gIO2Os2zgRMp9EkGSiKiLmTzICsprxQGwfhcpPRk3g6Jd4m9BzEqADXnvM DzAGfVfzyEj0WewnlF25Siq8R6QpNTSTsPcJm4Zw= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Kyrylo Tkachov To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-4141] aarch64: Fix LDAPURS assembly output X-Act-Checkin: gcc X-Git-Author: Kyrylo Tkachov X-Git-Refname: refs/heads/master X-Git-Oldrev: 20d2a8c24f3ca487ffd35fefcc9b1562bb10b609 X-Git-Newrev: 92905f614e206a94d4ba72a4d425f78859ead418 Message-Id: <20221118145738.A55523858410@sourceware.org> Date: Fri, 18 Nov 2022 14:57:38 +0000 (GMT) List-Id: https://gcc.gnu.org/g:92905f614e206a94d4ba72a4d425f78859ead418 commit r13-4141-g92905f614e206a94d4ba72a4d425f78859ead418 Author: Kyrylo Tkachov Date: Fri Nov 18 14:29:36 2022 +0000 aarch64: Fix LDAPURS assembly output ... And another follow-up once I realised that the sign-extending load, of course, needs to have strictly an X-reg as a destination for DImode extensions and a W-reg for SImode ones. Tested on aarch64-none-linux. gcc/ChangeLog: * config/aarch64/atomics.md (*aarch64_atomic_load_rcpc_sext): Use for destination format. * config/aarch64/iterators.md (w_sz): Delete. gcc/testsuite/ChangeLog: * gcc.target/aarch64/ldapr-sext.c: Adjust expected output. Diff: --- gcc/config/aarch64/atomics.md | 2 +- gcc/config/aarch64/iterators.md | 4 ---- gcc/testsuite/gcc.target/aarch64/ldapr-sext.c | 4 ++-- 3 files changed, 3 insertions(+), 7 deletions(-) diff --git a/gcc/config/aarch64/atomics.md b/gcc/config/aarch64/atomics.md index b6eac4e31fb..5407cf7be49 100644 --- a/gcc/config/aarch64/atomics.md +++ b/gcc/config/aarch64/atomics.md @@ -723,7 +723,7 @@ (match_operand:SI 2 "const_int_operand")] ;; model UNSPECV_LDAP)))] "TARGET_RCPC2 && ( > )" - "ldapurs\t%0, %1" + "ldapurs\t%0, %1" ) (define_insn "atomic_store" diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index a3e40758e7b..7c7fcbbc24b 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -1012,10 +1012,6 @@ ;; 32-bit version and "%x0" in the 64-bit version. (define_mode_attr w [(QI "w") (HI "w") (SI "w") (DI "x") (SF "s") (DF "d")]) -;; Similar to w above, but used for sign-extending loads where we want to -;; use %x0 for SImode. -(define_mode_attr w_sx [(QI "w") (HI "w") (SI "x")]) - ;; The size of access, in bytes. (define_mode_attr ldst_sz [(SI "4") (DI "8")]) ;; Likewise for load/store pair. diff --git a/gcc/testsuite/gcc.target/aarch64/ldapr-sext.c b/gcc/testsuite/gcc.target/aarch64/ldapr-sext.c index 292c55d9e6a..f57c09d0580 100644 --- a/gcc/testsuite/gcc.target/aarch64/ldapr-sext.c +++ b/gcc/testsuite/gcc.target/aarch64/ldapr-sext.c @@ -24,7 +24,7 @@ test_##name (void) \ /* **test_s8_s64: **... -** ldapursb w0, \[x[0-9]+\] +** ldapursb x0, \[x[0-9]+\] ** ret */ @@ -33,7 +33,7 @@ TEST(s8_s64, s8, long long) /* **test_s16_s64: **... -** ldapursh w0, \[x[0-9]+\] +** ldapursh x0, \[x[0-9]+\] ** ret */