From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20080.outbound.protection.outlook.com [40.107.2.80]) by sourceware.org (Postfix) with ESMTPS id C9C303858D20 for ; Fri, 11 Nov 2022 14:43:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C9C303858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=m+SH4WNjGDw7Tuz0IxtED4qP9Z/gSmdjwsFA4elvyjZzW6WYBndHfVuWRhd4xMZouJpXKSgmSMQD5iS/Udag8ilSK7Zgm4rqQ6s279UfKHUJ5ZAePP1JTshVFxrB4jGKiStkvFre50xOs1tWnVpQp7JGDLXqNtlqmfLcTvimeOiPLh4C7l/JIDmFxkmTrmNIP0pMV/dhvUEAAVQx7CfbPrDw94lhGmHGc8t9rwL6Ij25wH04SnBoEsCuRSIZDH2aRCr2cxQ3PhiAroxnS+cMeEppTIHJob0xyEdtUN+QR680HE3sMu+XsFtDtX80EEBDY2CKYlRHNeuu845Ur14+sA== ARC-Message-Signature: i=2; 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=up+BNgEi+eub/e9UQcVNPLr+Vf4TQ1V7By/CG+7/FIw=; b=HY8kALNotzs+QRmnuUjvFUKXTO85u5qckvFaMgJDvWlkHCE+jEKE3v6AVTpPf2NVE51FTB6WplpozUbGKcVrU0XhBecN1Koh6aTd5v8W+hCiGgY7/+LEgABwlyi6F6Y3GFn1886WxkiseXIS6nwjf4rDpMzrzpzwwd0E1+OES+lp4HINjzT9H/s/QHltr+3x+D5/gbThtcE26YsZOskEf4MTmLCQrOGiMUaKAgVZHCDsKO4EV/EsCk/aHKFpgu5d0RYlybO0B0vQiKLF1C55bikaVxZNdU14BE1nCCuCg+puKY8gRM/wQavl5TsiVD+Ufg7g/wUP/fEYr+TI6JhXGw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=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=up+BNgEi+eub/e9UQcVNPLr+Vf4TQ1V7By/CG+7/FIw=; b=w0xR7g8yxH49mpS0KeKFYmI1rFcr9kgUTPUVgrq0O0Sb7SGFmI0V/22ZPY4BO6xAq6ZePyWyabmysq8TQEAqJj99cR2EBFXqfPCge6FL5k75gU/qnrSXNgh/7OOLmcCfKyPF5TSfd4YTowyNZhJoyNw+ypozlq6b71lCr0xzpNA= Received: from DB6PR0201CA0024.eurprd02.prod.outlook.com (2603:10a6:4:3f::34) by DB9PR08MB7628.eurprd08.prod.outlook.com (2603:10a6:10:30c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.11; Fri, 11 Nov 2022 14:43:06 +0000 Received: from DBAEUR03FT020.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:3f:cafe::9c) by DB6PR0201CA0024.outlook.office365.com (2603:10a6:4:3f::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13 via Frontend Transport; Fri, 11 Nov 2022 14:43:06 +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 DBAEUR03FT020.mail.protection.outlook.com (100.127.143.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Fri, 11 Nov 2022 14:43:06 +0000 Received: ("Tessian outbound 58faf9791229:v130"); Fri, 11 Nov 2022 14:43:06 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: df056ea745fee674 X-CR-MTA-TID: 64aa7808 Received: from 2eef690dad36.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 31E0FA84-0767-4321-8218-F7AC0BD1C8E9.1; Fri, 11 Nov 2022 14:42:56 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2eef690dad36.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 11 Nov 2022 14:42:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=X23nvKYMXQciXB/NNfBC8vet+Mct9sIHxTNleNXsUKvYm1oM/KT0zIuNulQJ9o3W+yJpnzqfDaY2zlQnmGy+zqpRFlWeB2j9D+/HDbdFQui70xjk85Curl5y+56BvFhf3AKgdfHNo1xAPRR74c5d83iAJGwf1JjAR1v9AmbC/DD4YDJhHaWGpXvo73pB1zGZAhkZS1LttY+LByrMhK9FTHT/F0N8QG/xGHqpZ9zzta23qb9/lx9grwqGVuEZod5WO6aFlZWWes/ahIGpy4FoHTI82WULN0YpnePWlQQNZpfoqqbddkCo3MZkZ2Ewn0dln1SkQ58WUIdQ1/Gzkc49hg== 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=up+BNgEi+eub/e9UQcVNPLr+Vf4TQ1V7By/CG+7/FIw=; b=UbBjx+zkcBLAkyvnL2iEawvi4933ds2xAnn5agTVqu9r3qx0JIMHi2Nh1gb/MxJCYYf9GNKQYcZXWthEZYpU6RLU+nimaM91OqaJJTswooSrvZwgG9QlX4D+mRqR0svHdnzl8lH1tDFQsLHursFpkSJWkchqd7VV0Rtc8rkFSbO0xvfjxHys1mHBvfoeTchM6WPzJUBWCPJg5icOHd2AaxECojwTTtmBae6+iu+DwHHbisZwjg9EaP5yQKCNLx+pB0pUQYGPcQkvNbUCv/Zn33TQNyLKKQMe0FARl8SGHCCpU/VEH+KZHZ+LRhrg3jen97ePaGMlq5u6VhvaHOKLWQ== 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=up+BNgEi+eub/e9UQcVNPLr+Vf4TQ1V7By/CG+7/FIw=; b=w0xR7g8yxH49mpS0KeKFYmI1rFcr9kgUTPUVgrq0O0Sb7SGFmI0V/22ZPY4BO6xAq6ZePyWyabmysq8TQEAqJj99cR2EBFXqfPCge6FL5k75gU/qnrSXNgh/7OOLmcCfKyPF5TSfd4YTowyNZhJoyNw+ypozlq6b71lCr0xzpNA= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR08MB5341.eurprd08.prod.outlook.com (2603:10a6:803:135::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.13; Fri, 11 Nov 2022 14:42:45 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7%4]) with mapi id 15.20.5813.013; Fri, 11 Nov 2022 14:42:45 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: RE: [PATCH]AArch64 Extend umov and sbfx patterns. Thread-Topic: [PATCH]AArch64 Extend umov and sbfx patterns. Thread-Index: AQHY7R9/5+pSYuN3bku8eV2CxXDopq4obe3sgBFu4hA= Date: Fri, 11 Nov 2022 14:42:45 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: 4F286DF59E46064DBE0F0800DA481586.0 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|VI1PR08MB5341:EE_|DBAEUR03FT020:EE_|DB9PR08MB7628:EE_ X-MS-Office365-Filtering-Correlation-Id: a958b815-85be-4a03-5c8e-08dac3f30b96 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: XtC1gGGJh/7Y75vDyGu29UUdKGwfcLCxq70HrMNP7owrvfmf38cnqMi1z+55fSwL4SFG8Yc1bJjRiHNWLdKZ2nL562aDNZQg4CAHlxCbKdjsljDtq4ZMryWzKQQkc8vO1RQcMHn75SxLvqzXNnP6wN7HJzYg3jBR7XhcBDoUxLTlyPp8TKBuibwFQ81ULTbIBzEJaxQ5iq87lKromCk5vL6ie27zRa/v4etkKxJbvT6ocllW2YWeHZjfM8VicBTynBVrPlldq56Zgv1RAkz2oLL5lf7MOn3yGGMGYGC9kkLSMqL3+yOUrweOcQkrJQe8doimYs2Qifazb+z6kaPfCPxCXPry68HUK/a5B02RznJ6mOKf3mQ/dWLjjZKYy2f1zIoGoeJ2Opn5GgZnIaWC5A8QAzcu1m7struIVATg+lz5WBvKnBYZZdggxjBAFLMp+AWorDPNGG18+znGgCSEgQqZbRqGl5SzVZjU4eBCqwAphD/OFPEg+nrn2pNk9DtNarE4XmPAJ9ce/++ZAJJA9E3hC0lLh5X1I6+ogni2SSSDVszk1jpbW9g3dr0kp6VhJqFw/4CwK0KC15W85wPAHaEtjqyu8EEujkWz5zO+yWDA2LNNR2rWlJMmdD/mMbhcLycLwdzZCtUcXqoTev5WyOCpjVMIoWxTmdt8h2Cbq4kXUR94WsMNdyhrr84/qMHr9FhSZHftXUqDgBeaRzbABmPhZTcmjlrQRuq7c3wg+vFSnuRF3F7pOXQ3FDq4yTHJNizJLHu+uINOA2ma2e6MkK/Reqqr3Rxle465L43Qfs5SVQmhF53uOrNdIz64BA2YBUIZ9Yk1srUALCbe/oOjyA== 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:(13230022)(4636009)(39850400004)(376002)(366004)(136003)(346002)(396003)(451199015)(9686003)(66446008)(71200400001)(76116006)(66946007)(33656002)(5660300002)(66556008)(26005)(4326008)(66476007)(8676002)(186003)(55016003)(86362001)(38070700005)(2906002)(64756008)(478600001)(7696005)(6506007)(122000001)(52536014)(99936003)(316002)(8936002)(84970400001)(54906003)(6636002)(6862004)(41300700001)(38100700002);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53257988A3BF1B9F6C29C059FF009VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5341 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: DBAEUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 846b3ae4-2e7e-4e4a-9ba5-08dac3f2ff2c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nhtc1Q9TQTA8/nEakQtaGu/pO5lUDjgrQ69nM8vis7wko/nOuZyMISd91SzHR/bhxduFyYBrN9lzl3TtLY57KtqADDBFoYZu61O7w5O5Mrio4nXtDD9ouc8qM0libb7TlbIjZb/O8ecPjbyHobHJ2tMXrSHQK4zePyVIOCXYcF2wTjv8CF6rodQSYoUwB4Tvm5bNULtkAX/6L40GGjzZTi/PT4EFxpuIyEu+W+24Ps56SrmAkJCq87LdJ0P1qwC8nqL7dTUSEPx/JjBfHE3yESsXIPOqTCTyBthJFfujrNfYhSoNiFuNwv3AQN0gTeDs2dFDOyesD+0bN2uNM4r5kiTnmrDx8/dFTjMmznOWhd9MpfMjpOf3wkzNVxLLKitz9VvWKv10apjh5kvQjOZVRS2yUKLzKov3mOmlXsWwuOTCfD6bJzLqVdScA8q4ywufpcHO7JnjQZywjvMHv6Dct3I4Va1FMta4VijmHAdv3yGlW7WrNn9tlSZLLMqMuBUln1e3UBoxgfUk5TJLSv9jkoa2xWoUsdu8toGNiaoILelu4abY1MCeildoz4iYEn40NO9CCOjQ2xN7071Flm04bzPrnEtU32CHjHqYIB8qBJdh553BYXjneqBvZ4qmniLskd7rI1dGoBFA3tLdZr0ttU6uTk6yJBsHhJT+uCxbYkrZoZUWHe+ghBLDfdOHkJSbngNqfrB7XsrHZn3znntn1tFtcwTwGgp46ZJOLRD40PSHth0x3juT66JGpAt92xF1b+R5nPlZj2u6WwTI4d08+MAd0Z8RW7QZq/VwJsVry6LVHYEEVgeE8Pz2DpM02liVaJpjVXif/bRCM3ricPS1SA== 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:(13230022)(4636009)(136003)(39860400002)(396003)(346002)(376002)(451199015)(36840700001)(40470700004)(46966006)(5660300002)(40480700001)(70206006)(2906002)(356005)(336012)(235185007)(6862004)(41300700001)(186003)(47076005)(40460700003)(52536014)(82310400005)(36860700001)(55016003)(82740400003)(33656002)(86362001)(99936003)(81166007)(316002)(6636002)(8936002)(7696005)(54906003)(26005)(478600001)(6506007)(4326008)(8676002)(9686003)(70586007)(84970400001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Nov 2022 14:43:06.5063 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a958b815-85be-4a03-5c8e-08dac3f30b96 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: DBAEUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB7628 X-Spam-Status: No, score=-12.5 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 List-Id: --_002_VI1PR08MB53257988A3BF1B9F6C29C059FF009VI1PR08MB5325eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, > > --- a/gcc/config/aarch64/aarch64-simd.md > > +++ b/gcc/config/aarch64/aarch64-simd.md > > @@ -4259,7 +4259,7 @@ (define_insn > "*aarch64_get_lane_zero_extend" > > ;; Extracting lane zero is split into a simple move when it is > > between SIMD ;; registers or a store. > > (define_insn_and_split "aarch64_get_lane" > > - [(set (match_operand: 0 "aarch64_simd_nonimmediate_operand" > > "=3D?r, w, Utv") > > + [(set (match_operand: 0 "aarch64_simd_nonimmediate_operand" > > + "=3Dr, w, Utv") > > (vec_select: > > (match_operand:VALL_F16_FULL 1 "register_operand" "w, w, w") > > (parallel [(match_operand:SI 2 "immediate_operand" "i, i, i")])))] >=20 > Which testcase does this help with? It didn't look like the new tests do= any > vector stuff. >=20 Right, sorry about that, splitting up my patches resulted in this sneaking = in from a different series. Moved now. > > -(define_insn "*_ashl" > > +(define_insn "*_ashl" > > [(set (match_operand:GPI 0 "register_operand" "=3Dr") > > (ANY_EXTEND:GPI > > - (ashift:SHORT (match_operand:SHORT 1 "register_operand" "r") > > + (ashift:ALLX (match_operand:ALLX 1 "register_operand" "r") > > (match_operand 2 "const_int_operand" "n"))))] > > - "UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" > > + "UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" >=20 > It'd be better to avoid even defining si<-si or si<-di "extensions" > (even though nothing should try to match them), so how about adding: >=20 > > && >=20 > or similar to the beginning of the condition? The conditions for the inv= alid > combos will then be provably false at compile time and the patterns will = be > compiled out. >=20 Done. Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. Ok for master? Thanks, Tamar gcc/ChangeLog: * config/aarch64/aarch64.md (*_ashl): Renamed to... (*_ashl): ...this. (*zero_extend_lshr): Renamed to... (*zero_extend_lshr): ...this. (*extend_ashr): Rename to... (*extend_ashr): ...this. gcc/testsuite/ChangeLog: * gcc.target/aarch64/bitmove_1.c: New test. * gcc.target/aarch64/bitmove_2.c: New test. --- inline copy of patch --- diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index d7684c93fba5b717d568e1a4fd712bde55c7c72e..d230bbb833f97813c8371aa07b5= 87bd8b0292cee 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -5711,40 +5711,43 @@ (define_insn "*extrsi5_insn_di" [(set_attr "type" "rotate_imm")] ) =20 -(define_insn "*_ashl" +(define_insn "*_ashl" [(set (match_operand:GPI 0 "register_operand" "=3Dr") (ANY_EXTEND:GPI - (ashift:SHORT (match_operand:SHORT 1 "register_operand" "r") + (ashift:ALLX (match_operand:ALLX 1 "register_operand" "r") (match_operand 2 "const_int_operand" "n"))))] - "UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" + " > + && UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" { - operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); + operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); return "bfiz\t%0, %1, %2, %3"; } [(set_attr "type" "bfx")] ) =20 -(define_insn "*zero_extend_lshr" +(define_insn "*zero_extend_lshr" [(set (match_operand:GPI 0 "register_operand" "=3Dr") (zero_extend:GPI - (lshiftrt:SHORT (match_operand:SHORT 1 "register_operand" "r") - (match_operand 2 "const_int_operand" "n"))))] - "UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" + (lshiftrt:ALLX (match_operand:ALLX 1 "register_operand" "r") + (match_operand 2 "const_int_operand" "n"))))] + " > + && UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" { - operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); + operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); return "ubfx\t%0, %1, %2, %3"; } [(set_attr "type" "bfx")] ) =20 -(define_insn "*extend_ashr" +(define_insn "*extend_ashr" [(set (match_operand:GPI 0 "register_operand" "=3Dr") (sign_extend:GPI - (ashiftrt:SHORT (match_operand:SHORT 1 "register_operand" "r") - (match_operand 2 "const_int_operand" "n"))))] - "UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" + (ashiftrt:ALLX (match_operand:ALLX 1 "register_operand" "r") + (match_operand 2 "const_int_operand" "n"))))] + " > + && UINTVAL (operands[2]) < GET_MODE_BITSIZE (mode)" { - operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); + operands[3] =3D GEN_INT ( - UINTVAL (operands[2])); return "sbfx\\t%0, %1, %2, %3"; } [(set_attr "type" "bfx")] diff --git a/gcc/testsuite/gcc.target/aarch64/bitmove_1.c b/gcc/testsuite/g= cc.target/aarch64/bitmove_1.c new file mode 100644 index 0000000000000000000000000000000000000000..5ea4265f55213d7e7e5193a3a36= 81c9350867b50 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/bitmove_1.c @@ -0,0 +1,76 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-O3 -std=3Dc99" } */ +/* { dg-final { check-function-bodies "**" "" "" { target { le } } } } */ + +#include + +/* +** sfoo6: +** asr x0, x0, 16 +** ret +*/ +int64_t sfoo6 (int32_t x) +{ + return x >> 16; +} + +/* +** ufoo6: +** lsr w0, w0, 30 +** ret +*/ +uint64_t ufoo6 (uint32_t x) +{ + return x >> 30; +} + +/* +** ufoo6s: +** ubfx w0, w0, 7, 9 +** ret +*/ +uint32_t ufoo6s (uint16_t x) +{ + return x >> 7; +} + +/* +** ufoo6h: +** ubfx w0, w0, 4, 4 +** ret +*/ +uint16_t ufoo6h (uint8_t x) +{ + return x >> 4; +} + +/* +** sfoo62: +** sbfx x0, x0, 10, 22 +** ret +*/ +int64_t sfoo62 (int32_t x) +{ + return x >> 10; +} + +/* +** ufoo62: +** lsr w0, w0, 10 +** ret +*/ +uint64_t ufoo62 (uint32_t x) +{ + return x >> 10; +} + +/* +** sfoo63: +** sbfx x0, x0, 10, 22 +** ret +*/ +int64_t sfoo63 (int32_t x) +{ + return x >> 10; +} + diff --git a/gcc/testsuite/gcc.target/aarch64/bitmove_2.c b/gcc/testsuite/g= cc.target/aarch64/bitmove_2.c new file mode 100644 index 0000000000000000000000000000000000000000..329600cb3dbecf4cdfed994f6cf= df98ab77e8a01 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/bitmove_2.c @@ -0,0 +1,76 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-O3 -std=3Dc99" } */ +/* { dg-final { check-function-bodies "**" "" "" { target { le } } } } */ + +#include + +/* +** sfoo6: +** sbfiz x0, x0, 16, 16 +** ret +*/ +int64_t sfoo6 (int32_t x) +{ + return x << 16; +} + +/* +** ufoo6: +** lsl w0, w0, 30 +** ret +*/ +uint64_t ufoo6 (uint32_t x) +{ + return x << 30; +} + +/* +** ufoo6s: +** ubfiz w0, w0, 7, 16 +** ret +*/ +uint32_t ufoo6s (uint16_t x) +{ + return x << 7; +} + +/* +** ufoo6h: +** ... +** ubfiz w0, w0, 4, 12 +** ret +*/ +uint16_t ufoo6h (uint8_t x) +{ + return x << 4; +} + +/* +** sfoo62: +** sbfiz x0, x0, 10, 22 +** ret +*/ +int64_t sfoo62 (int32_t x) +{ + return x << 10; +} + +/* +** ufoo62: +** lsl w0, w0, 10 +** ret +*/ +uint64_t ufoo62 (uint32_t x) +{ + return x << 10; +} + +/* +** sfoo63: +** sbfiz x0, x0, 10, 22 +** ret +*/ +int64_t sfoo63 (int32_t x) +{ + return x << 10; +} --_002_VI1PR08MB53257988A3BF1B9F6C29C059FF009VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb16488 (1).patch" Content-Description: rb16488 (1).patch Content-Disposition: attachment; filename="rb16488 (1).patch"; size=5137; creation-date="Fri, 11 Nov 2022 14:42:30 GMT"; modification-date="Fri, 11 Nov 2022 14:42:45 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2FhcmNoNjQubWQKaW5kZXggZDc2ODRjOTNmYmE1YjcxN2Q1NjhlMWE0ZmQ3MTJiZGU1 NWM3YzcyZS4uZDIzMGJiYjgzM2Y5NzgxM2M4MzcxYWEwN2I1ODdiZDhiMDI5MmNlZSAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQKKysrIGIvZ2NjL2NvbmZpZy9hYXJj aDY0L2FhcmNoNjQubWQKQEAgLTU3MTEsNDAgKzU3MTEsNDMgQEAgKGRlZmluZV9pbnNuICIqZXh0 cnNpNV9pbnNuX2RpIgogICBbKHNldF9hdHRyICJ0eXBlIiAicm90YXRlX2ltbSIpXQogKQogCi0o ZGVmaW5lX2luc24gIio8QU5ZX0VYVEVORDpvcHRhYj48R1BJOm1vZGU+X2FzaGw8U0hPUlQ6bW9k ZT4iCisoZGVmaW5lX2luc24gIio8QU5ZX0VYVEVORDpvcHRhYj48R1BJOm1vZGU+X2FzaGw8QUxM WDptb2RlPiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9ciIpCiAJKEFOWV9FWFRFTkQ6R1BJCi0JIChhc2hpZnQ6U0hPUlQgKG1hdGNoX29wZXJhbmQ6 U0hPUlQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorCSAoYXNoaWZ0OkFMTFggKG1hdGNoX29w ZXJhbmQ6QUxMWCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAJCSAgICAgICAobWF0Y2hfb3Bl cmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkpKV0KLSAgIlVJTlRWQUwgKG9wZXJhbmRz WzJdKSA8IEdFVF9NT0RFX0JJVFNJWkUgKDxTSE9SVDpNT0RFPm1vZGUpIgorICAiPEdQSTpzaXpl bj4gPiA8QUxMWDpzaXplbj4KKyAgICYmIFVJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IEdFVF9NT0RF X0JJVFNJWkUgKDxBTExYOk1PREU+bW9kZSkiCiB7Ci0gIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAo PFNIT1JUOnNpemVuPiAtIFVJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CisgIG9wZXJhbmRzWzNdID0g R0VOX0lOVCAoPEFMTFg6c2l6ZW4+IC0gVUlOVFZBTCAob3BlcmFuZHNbMl0pKTsKICAgcmV0dXJu ICI8c3U+YmZpelx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsICUyLCAlMyI7CiB9CiAgIFsoc2V0X2F0 dHIgInR5cGUiICJiZngiKV0KICkKIAotKGRlZmluZV9pbnNuICIqemVyb19leHRlbmQ8R1BJOm1v ZGU+X2xzaHI8U0hPUlQ6bW9kZT4iCisoZGVmaW5lX2luc24gIip6ZXJvX2V4dGVuZDxHUEk6bW9k ZT5fbHNocjxBTExYOm1vZGU+IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpHUEkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj1yIikKIAkoemVyb19leHRlbmQ6R1BJCi0JIChsc2hpZnRydDpTSE9SVCAo bWF0Y2hfb3BlcmFuZDpTSE9SVCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCi0JCQkgKG1hdGNo X29wZXJhbmQgMiAiY29uc3RfaW50X29wZXJhbmQiICJuIikpKSldCi0gICJVSU5UVkFMIChvcGVy YW5kc1syXSkgPCBHRVRfTU9ERV9CSVRTSVpFICg8U0hPUlQ6TU9ERT5tb2RlKSIKKwkgKGxzaGlm dHJ0OkFMTFggKG1hdGNoX29wZXJhbmQ6QUxMWCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisJ CQkobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkpKV0KKyAgIjxHUEk6 c2l6ZW4+ID4gPEFMTFg6c2l6ZW4+CisgICAmJiBVSU5UVkFMIChvcGVyYW5kc1syXSkgPCBHRVRf TU9ERV9CSVRTSVpFICg8QUxMWDpNT0RFPm1vZGUpIgogewotICBvcGVyYW5kc1szXSA9IEdFTl9J TlQgKDxTSE9SVDpzaXplbj4gLSBVSU5UVkFMIChvcGVyYW5kc1syXSkpOworICBvcGVyYW5kc1sz XSA9IEdFTl9JTlQgKDxBTExYOnNpemVuPiAtIFVJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CiAgIHJl dHVybiAidWJmeFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsICUyLCAlMyI7CiB9CiAgIFsoc2V0X2F0 dHIgInR5cGUiICJiZngiKV0KICkKIAotKGRlZmluZV9pbnNuICIqZXh0ZW5kPEdQSTptb2RlPl9h c2hyPFNIT1JUOm1vZGU+IgorKGRlZmluZV9pbnNuICIqZXh0ZW5kPEdQSTptb2RlPl9hc2hyPEFM TFg6bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQogCShzaWduX2V4dGVuZDpHUEkKLQkgKGFzaGlmdHJ0OlNIT1JUIChtYXRjaF9vcGVy YW5kOlNIT1JUIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKLQkJCSAobWF0Y2hfb3BlcmFuZCAy ICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkpKV0KLSAgIlVJTlRWQUwgKG9wZXJhbmRzWzJdKSA8 IEdFVF9NT0RFX0JJVFNJWkUgKDxTSE9SVDpNT0RFPm1vZGUpIgorCSAoYXNoaWZ0cnQ6QUxMWCAo bWF0Y2hfb3BlcmFuZDpBTExYIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKwkJCShtYXRjaF9v cGVyYW5kIDIgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKSkpXQorICAiPEdQSTpzaXplbj4gPiA8 QUxMWDpzaXplbj4KKyAgICYmIFVJTlRWQUwgKG9wZXJhbmRzWzJdKSA8IEdFVF9NT0RFX0JJVFNJ WkUgKDxBTExYOk1PREU+bW9kZSkiCiB7Ci0gIG9wZXJhbmRzWzNdID0gR0VOX0lOVCAoPFNIT1JU OnNpemVuPiAtIFVJTlRWQUwgKG9wZXJhbmRzWzJdKSk7CisgIG9wZXJhbmRzWzNdID0gR0VOX0lO VCAoPEFMTFg6c2l6ZW4+IC0gVUlOVFZBTCAob3BlcmFuZHNbMl0pKTsKICAgcmV0dXJuICJzYmZ4 XFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsICUyLCAlMyI7CiB9CiAgIFsoc2V0X2F0dHIgInR5cGUi ICJiZngiKV0KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2Jp dG1vdmVfMS5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvYml0bW92ZV8xLmMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uNWVhNDI2NWY1NTIxM2Q3ZTdlNTE5M2EzYTM2ODFjOTM1MDg2N2I1MAotLS0g L2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2JpdG1vdmVf MS5jCkBAIC0wLDAgKzEsNzYgQEAKKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7IGRnLWFk ZGl0aW9uYWwtb3B0aW9ucyAiLU8zIC1zdGQ9Yzk5IiB9ICovCisvKiB7IGRnLWZpbmFsIHsgY2hl Y2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgeyB0YXJnZXQgeyBsZSB9IH0gfSB9ICovCisK KyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoKKyoqIHNmb282OgorKiogCWFzcgl4MCwgeDAsIDE2 CisqKiAJcmV0CisqLworaW50NjRfdCBzZm9vNiAoaW50MzJfdCB4KQoreworICByZXR1cm4geCA+ PiAxNjsKK30KKworLyoKKyoqIHVmb282OgorKiogCWxzcgl3MCwgdzAsIDMwCisqKiAJcmV0Cisq LwordWludDY0X3QgdWZvbzYgKHVpbnQzMl90IHgpCit7CisgIHJldHVybiB4ID4+IDMwOworfQor CisvKgorKiogdWZvbzZzOgorKiogCXViZngJdzAsIHcwLCA3LCA5CisqKiAJcmV0CisqLwordWlu dDMyX3QgdWZvbzZzICh1aW50MTZfdCB4KQoreworICByZXR1cm4geCA+PiA3OworfQorCisvKgor KiogdWZvbzZoOgorKiogCXViZngJdzAsIHcwLCA0LCA0CisqKiAJcmV0CisqLwordWludDE2X3Qg dWZvbzZoICh1aW50OF90IHgpCit7CisgIHJldHVybiB4ID4+IDQ7Cit9CisKKy8qCisqKiBzZm9v NjI6CisqKiAJc2JmeAl4MCwgeDAsIDEwLCAyMgorKiogCXJldAorKi8KK2ludDY0X3Qgc2ZvbzYy IChpbnQzMl90IHgpCit7CisgIHJldHVybiB4ID4+IDEwOworfQorCisvKgorKiogdWZvbzYyOgor KiogCWxzcgl3MCwgdzAsIDEwCisqKiAJcmV0CisqLwordWludDY0X3QgdWZvbzYyICh1aW50MzJf dCB4KQoreworICByZXR1cm4geCA+PiAxMDsKK30KKworLyoKKyoqIHNmb282MzoKKyoqIAlzYmZ4 CXgwLCB4MCwgMTAsIDIyCisqKiAJcmV0CisqLworaW50NjRfdCBzZm9vNjMgKGludDMyX3QgeCkK K3sKKyAgcmV0dXJuIHggPj4gMTA7Cit9CisKZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2JpdG1vdmVfMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvYml0bW92ZV8yLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI5NjAwY2IzZGJlY2Y0Y2RmZWQ5OTRmNmNm ZGY5OGFiNzdlOGEwMQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L2JpdG1vdmVfMi5jCkBAIC0wLDAgKzEsNzYgQEAKKy8qIHsgZGctZG8gY29tcGls ZSB9ICovCisvKiB7IGRnLWFkZGl0aW9uYWwtb3B0aW9ucyAiLU8zIC1zdGQ9Yzk5IiB9ICovCisv KiB7IGRnLWZpbmFsIHsgY2hlY2stZnVuY3Rpb24tYm9kaWVzICIqKiIgIiIgIiIgeyB0YXJnZXQg eyBsZSB9IH0gfSB9ICovCisKKyNpbmNsdWRlIDxzdGRpbnQuaD4KKworLyoKKyoqIHNmb282Ogor KiogCXNiZml6CXgwLCB4MCwgMTYsIDE2CisqKiAJcmV0CisqLworaW50NjRfdCBzZm9vNiAoaW50 MzJfdCB4KQoreworICByZXR1cm4geCA8PCAxNjsKK30KKworLyoKKyoqIHVmb282OgorKiogCWxz bAl3MCwgdzAsIDMwCisqKiAJcmV0CisqLwordWludDY0X3QgdWZvbzYgKHVpbnQzMl90IHgpCit7 CisgIHJldHVybiB4IDw8IDMwOworfQorCisvKgorKiogdWZvbzZzOgorKiogCXViZml6CXcwLCB3 MCwgNywgMTYKKyoqIAlyZXQKKyovCit1aW50MzJfdCB1Zm9vNnMgKHVpbnQxNl90IHgpCit7Cisg IHJldHVybiB4IDw8IDc7Cit9CisKKy8qCisqKiB1Zm9vNmg6CisqKiAJLi4uCisqKiAJdWJmaXoJ dzAsIHcwLCA0LCAxMgorKiogCXJldAorKi8KK3VpbnQxNl90IHVmb282aCAodWludDhfdCB4KQor eworICByZXR1cm4geCA8PCA0OworfQorCisvKgorKiogc2ZvbzYyOgorKiogCXNiZml6CXgwLCB4 MCwgMTAsIDIyCisqKiAJcmV0CisqLworaW50NjRfdCBzZm9vNjIgKGludDMyX3QgeCkKK3sKKyAg cmV0dXJuIHggPDwgMTA7Cit9CisKKy8qCisqKiB1Zm9vNjI6CisqKiAJbHNsCXcwLCB3MCwgMTAK KyoqIAlyZXQKKyovCit1aW50NjRfdCB1Zm9vNjIgKHVpbnQzMl90IHgpCit7CisgIHJldHVybiB4 IDw8IDEwOworfQorCisvKgorKiogc2ZvbzYzOgorKiogCXNiZml6CXgwLCB4MCwgMTAsIDIyCisq KiAJcmV0CisqLworaW50NjRfdCBzZm9vNjMgKGludDMyX3QgeCkKK3sKKyAgcmV0dXJuIHggPDwg MTA7Cit9Cg== --_002_VI1PR08MB53257988A3BF1B9F6C29C059FF009VI1PR08MB5325eurp_--