From patchwork Wed Sep 27 00:51:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tamar Christina X-Patchwork-Id: 1839982 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=mVmTvvZC; dkim=pass (1024-bit key) header.d=armh.onmicrosoft.com header.i=@armh.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-armh-onmicrosoft-com header.b=mVmTvvZC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4RwJ2t1ZZQz1ypJ for ; Wed, 27 Sep 2023 10:51:34 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4C2F73861869 for ; Wed, 27 Sep 2023 00:51:32 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2045.outbound.protection.outlook.com [40.107.22.45]) by sourceware.org (Postfix) with ESMTPS id 468EC3861803 for ; Wed, 27 Sep 2023 00:51:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 468EC3861803 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ciCLTlla/sWnWw2iFoGC0B4nFY5e9Ykbe3awIgPq84U=; b=mVmTvvZCueCxhOMIGQjigHbQpGSnguaOf6YZGRxA7KPYuR3QDAIkSdLkkPsoQyZMW4JLjYtci1tmujP8GbUCyFR+8NGuHfBzk+OThMWD/jiktpZrPe9d+NA6lcVORCp6k3LNG0brqhLsX9J0AHHX84uOkUeD2sp08RryE9eLv8Y= Received: from AS4PR09CA0013.eurprd09.prod.outlook.com (2603:10a6:20b:5e0::19) by PAXPR08MB7492.eurprd08.prod.outlook.com (2603:10a6:102:2b5::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Wed, 27 Sep 2023 00:51:15 +0000 Received: from AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:5e0:cafe::5f) by AS4PR09CA0013.outlook.office365.com (2603:10a6:20b:5e0::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.35 via Frontend Transport; Wed, 27 Sep 2023 00:51:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT010.mail.protection.outlook.com (100.127.141.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.21 via Frontend Transport; Wed, 27 Sep 2023 00:51:15 +0000 Received: ("Tessian outbound 169aaa6bf2b7:v175"); Wed, 27 Sep 2023 00:51:15 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: b4f70e48d4e66699 X-CR-MTA-TID: 64aa7808 Received: from 80a5cded34dc.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 4CE89C13-0683-4375-9C6D-323FF403513E.1; Wed, 27 Sep 2023 00:51:07 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 80a5cded34dc.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 27 Sep 2023 00:51:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oKbrxniuwtTkyoqFYwJBIbTWOI12DXV60z4R0bAIdr6X9UJPDelS0rIOJc5oy5KlcwqSppuR7WElMQOuoHeMTQstCQxsAejPUMso9zDdgs4tKRI2nQn8OwT+YAj0MZ6Ap5lq7wbmkbCK7fr1CcQ8YWvbYP/c7rTwc3bi3D6vMHLjPcSiWLleyNtIQ4iuFFH/2OsRy3u2YOkEM6Nk5ybqMAgwT/B1v6s8ETGvqM41C7fcE9iKOMXuJJx6xVMUK19q6kONi0qPLHho6tlV3rUl2Wz6Y/yr1fHdlKlVAV1G0iNJq9wBGbzMIaSK9cyXLnKuFJPRQxOwlhaUIOL44SiYaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ciCLTlla/sWnWw2iFoGC0B4nFY5e9Ykbe3awIgPq84U=; b=Z7JrUuTVExa2ireeky3mrmNfcAUkARCFKbzUyo/TdboITp2CzMhACalvwjP4lE8S6UxwkWFWF4CLG/DznF/cCd1FLwYgMX5dIemGVYXo1ittsl2Xjrg+mH+VGlSWkYdedXRz/HPrGXp3c52sWyFoNsuLhKLlyQe9PdyyxSGmd0vhJAg5MARi0Yu63tv36C0b8JDsbTapj8Ub4y/prYKk90SHRiLd5U8df8VjHwP3lUbW/R+GMK6tgo36fDbbNBUREji5z3bp93Rq1ylVecXdHJmcYabkZtp4/6tmsB27+nK84j7moLySqh7yGkERDxyCfKXJdNXnwnudxUUHzSnUdA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ciCLTlla/sWnWw2iFoGC0B4nFY5e9Ykbe3awIgPq84U=; b=mVmTvvZCueCxhOMIGQjigHbQpGSnguaOf6YZGRxA7KPYuR3QDAIkSdLkkPsoQyZMW4JLjYtci1tmujP8GbUCyFR+8NGuHfBzk+OThMWD/jiktpZrPe9d+NA6lcVORCp6k3LNG0brqhLsX9J0AHHX84uOkUeD2sp08RryE9eLv8Y= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AS8PR08MB9743.eurprd08.prod.outlook.com (2603:10a6:20b:615::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Wed, 27 Sep 2023 00:51:05 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::662f:8e26:1bf8:aaa1]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::662f:8e26:1bf8:aaa1%7]) with mapi id 15.20.6813.027; Wed, 27 Sep 2023 00:51:05 +0000 Date: Wed, 27 Sep 2023 01:51:01 +0100 From: Tamar Christina To: gcc-patches@gcc.gnu.org Cc: nd@arm.com, Richard.Earnshaw@arm.com, Marcus.Shawcroft@arm.com, Kyrylo.Tkachov@arm.com, richard.sandiford@arm.com Subject: [PATCH]AArch64 Add movi for 0 moves for scalar types [PR109154] Message-ID: Content-Disposition: inline X-ClientProxiedBy: LO4P302CA0003.GBRP302.PROD.OUTLOOK.COM (2603:10a6:600:2c2::10) To VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB5325:EE_|AS8PR08MB9743:EE_|AM7EUR03FT010:EE_|PAXPR08MB7492:EE_ X-MS-Office365-Filtering-Correlation-Id: 034a72cb-00a6-4c60-c3ce-08dbbef3da84 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Z0VyQa7od1BnLM0Kv7MH4xk4P/Da5AvdH3wgpQJFmvBXK0wg1iCy75qgRJymkqzoUhIw3qTHa65mTmp1Dl0uh1nlxLLzDCDWNihBKJJkEPxcjXBrY9BWmva/nxhR3heusggoOAC0xE0olyj04MFytqLf6ciwbOvvt0/5o8kqCBgiEyD1XHtiiHqhd9ZLQyVd/pKiyrVQdD1DsM9Rk4N1QxHiUgyEusK3MdooV2t2iQlhnMWjyTdpV7zYt08sY/Hl9vOKmJuS7HW5hIoEhN4CYUnazpn/eMFVYD2Xnq8a/TKJ6f3lPfVHi7HERayvCfB4ZlCi4cvGu1KEVnG3sba4uk+PgoK8fT4WDoW1jHrG5+H8VmaMi7Uv6ugTLvZuJ5hjX/IfcDBAoM7laIEsKeoUEApDQ+zouFPNW7guWaCXLc+1IFbEPf6iTgbKz1WagJiMg4wj3m9WrV0QmgB2iAPq5Lz1XLxIwJBRChvkTUAehrVUoKy1U2bIEoxNri5yZZ4GWurFka8gDQOsWBu8citTe2Aw8ZJuMBTGUtNYKQX8XuJ6G1MH2obvbVfAM7EZe80iSpboLeA/ZfjUbkID7qZkvGoQUEMxXMNK/MS7QliHsll5Jn9Da7niABSi5xb0zd0ETlpNRX2oqHt036B59rn5vBGbK7jQjZYWCi+Dzfv4SfM= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(366004)(136003)(346002)(396003)(376002)(39860400002)(230922051799003)(1800799009)(186009)(451199024)(26005)(6666004)(478600001)(86362001)(2616005)(36756003)(83380400001)(6486002)(6506007)(5660300002)(44144004)(38100700002)(33964004)(6512007)(8676002)(8936002)(2906002)(4326008)(316002)(41300700001)(84970400001)(66946007)(66476007)(66556008)(6916009)(235185007)(44832011)(4216001)(2700100001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9743 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c2b5d71e-e663-46ce-e4df-08dbbef3d44b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Y5bPjusFZSjitpPUh/5gFJAZt9IxBivG0PXJzyoseC2Za6ZkbtWueMJhuABNCPhRnfwyhC7qRg+OSInBDZ1Z7Y24J0NQORtLoV8Ei6oma/j1jE5fWGAD8vowQil9FSL6iedxKLyItGDIdwHn3qLFtrbpMPSg1X/0bi9cv3Z9fEXmbLnHKlJ1XczOkwemo40U14dH1SJ/I+yrwp/NXJD28TLlb6yO+yuMVu56Rsf/ZXD84+FYCkLgR45uJkfjgJDSRk8xlbttyJsm2TrpNyvbInq/THFflmgIPCXQW5dKpKmg5rELhgAvf4TyKYFBjLleBVaoRE5Mzocy1zRbH7Z13D+MkcqoyZNZYO0VQ+FRKRO9s+O21HYvrxr6Ecvvq3UwGGyp+kxtUXlb4otpIzdOyy7lLwEiAAWdYWh0rLVDnDs4ydtYk3/iQoHZvELpUUTXi35qGoTWhsx/lt30vFpHbYeB6T2lDRR6vJQUdXzbo9ddYPMVxYS58qWXkoqYXsZ1hU07z6ZF7DKutMO8BrbXxRww+2DfwbQGXFzy9Ofrt1n0WgF1JNmA3ayRePdJM5vCBGcilb4FLkmYNxPkl3itITMXBWq/6EJUum6OH5xQgw1NIJsvXQHFpS3EIvYluovK9O50DueMZ1Q6qV9oMcbUxSbB/EPvnB+6ON32DPqwTjirXMPN3TtbUEWM9gK5OWuJPDTpSqcgVhrok8zolbx3crxzMVAR4zUOs8jA37gvuaBNVD03vwUGTtpDGAYrRRz8ebBNtk6/T5HlsEKhKVnaH05BiGf8/aXY18qtJAHz3mYbDDAJV9I6i0bJ0mkJRLzq X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230031)(4636009)(136003)(396003)(346002)(39860400002)(376002)(230922051799003)(1800799009)(82310400011)(186009)(451199024)(40470700004)(46966006)(36840700001)(6512007)(44144004)(6486002)(6506007)(2906002)(33964004)(40460700003)(86362001)(2616005)(40480700001)(6666004)(478600001)(36756003)(70586007)(8676002)(4326008)(8936002)(47076005)(82740400003)(36860700001)(41300700001)(83380400001)(84970400001)(81166007)(5660300002)(44832011)(356005)(316002)(26005)(336012)(70206006)(6916009)(235185007)(4216001)(2700100001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Sep 2023 00:51:15.4740 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 034a72cb-00a6-4c60-c3ce-08dbbef3da84 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM7EUR03FT010.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7492 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org Hi All, Following the Neoverse N/V and Cortex-A optimization guides SIMD 0 immediates should be created with a movi of 0. At the moment we generate an `fmov .., xzr` which is slower and requires a GP -> FP transfer. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: PR tree-optimization/109154 * config/aarch64/aarch64.md (*mov_aarch64, *movsi_aarch64, *movdi_aarch64): Add new w -> Z case. * config/aarch64/iterators.md (Vbtype): Add QI and HI. gcc/testsuite/ChangeLog: PR tree-optimization/109154 * gcc.target/aarch64/fneg-abs_2.c: Updated. * gcc.target/aarch64/fneg-abs_4.c: Updated. --- inline copy of patch -- diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index b51f979dba12b726bff0c1109b75c6d2c7ae41ab..60c92213c75a2a4c18a6b59ae52fe45d1e872718 100644 --- diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index b51f979dba12b726bff0c1109b75c6d2c7ae41ab..60c92213c75a2a4c18a6b59ae52fe45d1e872718 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1232,6 +1232,7 @@ (define_insn "*mov_aarch64" "(register_operand (operands[0], mode) || aarch64_reg_or_zero (operands[1], mode))" {@ [cons: =0, 1; attrs: type, arch] + [w, Z ; neon_move , simd ] movi\t%0., #0 [r, r ; mov_reg , * ] mov\t%w0, %w1 [r, M ; mov_imm , * ] mov\t%w0, %1 [w, D; neon_move , simd ] << aarch64_output_scalar_simd_mov_immediate (operands[1], mode); @@ -1289,6 +1290,7 @@ (define_insn_and_split "*movsi_aarch64" "(register_operand (operands[0], SImode) || aarch64_reg_or_zero (operands[1], SImode))" {@ [cons: =0, 1; attrs: type, arch, length] + [w , Z ; neon_move, simd, 4] movi\t%0.2d, #0 [r k, r ; mov_reg , * , 4] mov\t%w0, %w1 [r , k ; mov_reg , * , 4] ^ [r , M ; mov_imm , * , 4] mov\t%w0, %1 @@ -1322,6 +1324,7 @@ (define_insn_and_split "*movdi_aarch64" "(register_operand (operands[0], DImode) || aarch64_reg_or_zero (operands[1], DImode))" {@ [cons: =0, 1; attrs: type, arch, length] + [w, Z ; neon_move, simd, 4] movi\t%0.2d, #0 [r, r ; mov_reg , * , 4] mov\t%x0, %x1 [k, r ; mov_reg , * , 4] mov\t%0, %x1 [r, k ; mov_reg , * , 4] mov\t%x0, %1 diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index 2451d8c2cd8e2da6ac8339eed9bc975cf203fa4c..d17becc37e230684beaee3c69e2a0f0ce612eda5 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -1297,6 +1297,7 @@ (define_mode_attr Vbtype [(V8QI "8b") (V16QI "16b") (V4SF "16b") (V2DF "16b") (DI "8b") (DF "8b") (SI "8b") (SF "8b") + (QI "8b") (HI "8b") (V4BF "8b") (V8BF "16b")]) ;; Advanced SIMD vector structure to element modes. diff --git a/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c b/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c index fb14ec3e2210e0feeff80f2410d777d3046a9f78..5e253d3059cfc9b93bd0865e6eaed1231eba19bd 100644 --- a/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c +++ b/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c @@ -20,7 +20,7 @@ float32_t f1 (float32_t a) /* ** f2: -** fmov d[0-9]+, xzr +** movi v[0-9]+.2d, #0 ** fneg v[0-9]+.2d, v[0-9]+.2d ** orr v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ** ret diff --git a/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c b/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c index 4ea0105f6c0a9756070bcc60d34f142f53d8242c..c86fe3e032c9e5176467841ce1a679ea47bbd531 100644 --- a/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c +++ b/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c @@ -8,7 +8,7 @@ /* ** negabs: -** fmov d[0-9]+, xzr +** movi v31.2d, #0 ** fneg v[0-9]+.2d, v[0-9]+.2d ** orr v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ** ret --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1232,6 +1232,7 @@ (define_insn "*mov_aarch64" "(register_operand (operands[0], mode) || aarch64_reg_or_zero (operands[1], mode))" {@ [cons: =0, 1; attrs: type, arch] + [w, Z ; neon_move , simd ] movi\t%0., #0 [r, r ; mov_reg , * ] mov\t%w0, %w1 [r, M ; mov_imm , * ] mov\t%w0, %1 [w, D; neon_move , simd ] << aarch64_output_scalar_simd_mov_immediate (operands[1], mode); @@ -1289,6 +1290,7 @@ (define_insn_and_split "*movsi_aarch64" "(register_operand (operands[0], SImode) || aarch64_reg_or_zero (operands[1], SImode))" {@ [cons: =0, 1; attrs: type, arch, length] + [w , Z ; neon_move, simd, 4] movi\t%0.2d, #0 [r k, r ; mov_reg , * , 4] mov\t%w0, %w1 [r , k ; mov_reg , * , 4] ^ [r , M ; mov_imm , * , 4] mov\t%w0, %1 @@ -1322,6 +1324,7 @@ (define_insn_and_split "*movdi_aarch64" "(register_operand (operands[0], DImode) || aarch64_reg_or_zero (operands[1], DImode))" {@ [cons: =0, 1; attrs: type, arch, length] + [w, Z ; neon_move, simd, 4] movi\t%0.2d, #0 [r, r ; mov_reg , * , 4] mov\t%x0, %x1 [k, r ; mov_reg , * , 4] mov\t%0, %x1 [r, k ; mov_reg , * , 4] mov\t%x0, %1 diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index 2451d8c2cd8e2da6ac8339eed9bc975cf203fa4c..d17becc37e230684beaee3c69e2a0f0ce612eda5 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -1297,6 +1297,7 @@ (define_mode_attr Vbtype [(V8QI "8b") (V16QI "16b") (V4SF "16b") (V2DF "16b") (DI "8b") (DF "8b") (SI "8b") (SF "8b") + (QI "8b") (HI "8b") (V4BF "8b") (V8BF "16b")]) ;; Advanced SIMD vector structure to element modes. diff --git a/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c b/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c index fb14ec3e2210e0feeff80f2410d777d3046a9f78..5e253d3059cfc9b93bd0865e6eaed1231eba19bd 100644 --- a/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c +++ b/gcc/testsuite/gcc.target/aarch64/fneg-abs_2.c @@ -20,7 +20,7 @@ float32_t f1 (float32_t a) /* ** f2: -** fmov d[0-9]+, xzr +** movi v[0-9]+.2d, #0 ** fneg v[0-9]+.2d, v[0-9]+.2d ** orr v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ** ret diff --git a/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c b/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c index 4ea0105f6c0a9756070bcc60d34f142f53d8242c..c86fe3e032c9e5176467841ce1a679ea47bbd531 100644 --- a/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c +++ b/gcc/testsuite/gcc.target/aarch64/fneg-abs_4.c @@ -8,7 +8,7 @@ /* ** negabs: -** fmov d[0-9]+, xzr +** movi v31.2d, #0 ** fneg v[0-9]+.2d, v[0-9]+.2d ** orr v[0-9]+.8b, v[0-9]+.8b, v[0-9]+.8b ** ret