From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2072.outbound.protection.outlook.com [40.107.21.72]) by sourceware.org (Postfix) with ESMTPS id 363B03857702 for ; Wed, 3 May 2023 08:48:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 363B03857702 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=45Z1YoeibLMPkrRvxHc8fy2sH98DmduDYdlmXtb/n5w=; b=2xmtljTbLGHGlut6ujMth13S8WTQFAN8DbLv7iflxDmaxQZLb5M5BZFOvRw5+1FVnM+UDfo8F0WYMh2gyr5YIREjuxFskD1P4D/hWihZv45PZSTk75aVdNz0nVuiraUKAmZTogTZu+Oq/dSZuiULnu/cw8l4XFKkdQwQZ0yPfQc= Received: from DUZPR01CA0132.eurprd01.prod.exchangelabs.com (2603:10a6:10:4bc::22) by DB4PR08MB8175.eurprd08.prod.outlook.com (2603:10a6:10:381::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.30; Wed, 3 May 2023 08:48:39 +0000 Received: from DBAEUR03FT005.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:4bc:cafe::7e) by DUZPR01CA0132.outlook.office365.com (2603:10a6:10:4bc::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22 via Frontend Transport; Wed, 3 May 2023 08:48:39 +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 DBAEUR03FT005.mail.protection.outlook.com (100.127.142.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22 via Frontend Transport; Wed, 3 May 2023 08:48:39 +0000 Received: ("Tessian outbound e13c2446394c:v136"); Wed, 03 May 2023 08:48:39 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 6ab4f38a8d966d09 X-CR-MTA-TID: 64aa7808 Received: from b4f88581ff80.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9041028C-5C5E-4113-A17C-03A3D184EB1D.1; Wed, 03 May 2023 08:48:28 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b4f88581ff80.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 03 May 2023 08:48:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BiT9MVRW7xtz1LcfNnzPCUMiXIB9Ll9Njvn8ZA1mPfL11lkIxbQ/gxKeo+/RmGXf0NmKV77kJWh59BKIrybB5CtxEnjM704HEasJ+Sby9EGOZAOY+S69FE4TbTiX9sLp513EK5/wVrY33xpIjkvCVofbTr/qqBW08Zky1GVBRKv2vBdbWxEH1kMKB7Ky4PMhbfdX9vXZ/L13lQdYe8bt+GejCi8rPJQd6eUa4arHfGIuzP+QTOrcD5d5i3FlGh0F9zkkaEIyupTiYhywbKmRbpg/LCFRkfjIGfKHVrlreNyubfE+Sg//cSqYTOkFuAZ0CfgxR/+8RTAFYNdbCKJBxw== 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=45Z1YoeibLMPkrRvxHc8fy2sH98DmduDYdlmXtb/n5w=; b=DEWIP35Pc7xdAW8P60EBgcTiwSSp1fQB3cn3VA1vv6DiVwsn/88EaAKI7PMnUp4pHWavOGp2tQXZHIdMWZ+sNssUg4v4GiFy5GoEeWQlNFIdlCiXHbEXBagvQZnm6Hp0TU4+kMpIvzcE7xhFDXnK3gRGRA8bjKzI+aj4lMo8vL/rFleUbsgSJ+Lb9Op+Vlq5fXIYP2EAEpYVVWPaIc6PHK8j+i8knStmbrFuLxF+IERK+pbl6E6Sn7DxK24dirAPHHosxzW+6Kd+1Ij7RedQJsWya00aMTiZG8sutMClIyVhskUBVptoogQK8jUCVGq6JDzBRS9cbrvg+TOMzSF+8g== 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=45Z1YoeibLMPkrRvxHc8fy2sH98DmduDYdlmXtb/n5w=; b=2xmtljTbLGHGlut6ujMth13S8WTQFAN8DbLv7iflxDmaxQZLb5M5BZFOvRw5+1FVnM+UDfo8F0WYMh2gyr5YIREjuxFskD1P4D/hWihZv45PZSTk75aVdNz0nVuiraUKAmZTogTZu+Oq/dSZuiULnu/cw8l4XFKkdQwQZ0yPfQc= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AM8PR08MB6451.eurprd08.prod.outlook.com (2603:10a6:20b:315::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.31; Wed, 3 May 2023 08:48:26 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1%3]) with mapi id 15.20.6363.022; Wed, 3 May 2023 08:48:26 +0000 From: Kyrylo Tkachov To: Christophe Lyon , "gcc-patches@gcc.gnu.org" , Richard Earnshaw , Richard Sandiford CC: Christophe Lyon Subject: RE: [PATCH 20/22] arm: [MVE intrinsics] factorize several binary _m_n operations Thread-Topic: [PATCH 20/22] arm: [MVE intrinsics] factorize several binary _m_n operations Thread-Index: AQHZcfxWuQSiShlQO0GvPnOGAsZzB69IU/rw Date: Wed, 3 May 2023 08:48:25 +0000 Message-ID: References: <20230418134608.244751-1-christophe.lyon@arm.com> <20230418134608.244751-21-christophe.lyon@arm.com> In-Reply-To: <20230418134608.244751-21-christophe.lyon@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|AM8PR08MB6451:EE_|DBAEUR03FT005:EE_|DB4PR08MB8175:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e98d4c7-00c7-43ed-4132-08db4bb330dc 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: tflOKPlNc1+/fa3IbltUAAuo5sa2SeBuM5zKqcPjUZH8IKf6Bv6De9jfzpLlRiSItJ7f9xXppzvxi/KZKMd26c1l7YbmmJEPM5UDKAoSsS3Dbfn8ZSbztm8bLNc6oz4hXP1ofdm/1f9TlbLoSb5D8ACOlYIMNgT2eFPaJ5rnlVsyr8dzoQvCDVeNmKtjwBz7qXlWW3dfLq1nanfpFISvUy+4VxvV54DLBxL6EYIUvvgh+3BHqjmGfThVFiZd4cMY/Ph2PPKLFYKVVwFCogAvsghft0Oo9H1I/1CQrnxmAbu9ZwRydY3YByYeYLf4O0+Tg+BNlV0t4SDrM6NSw8PRtGtNVoz51+oJswwkFBLfS3/IQixRN7gdfG98CiQx38M1gn90QCQKrxn7o3RubiCL2ufy8Y+cF+MCCMzNOgKHV4c7Py9F50TruXF4U/jZADC6rBl9cjfY061efjxQe8ZoDcND2K9hfgALXe3DVRgs8qT3ylisv5sXkCe2HHRw7muE07QybDex6c55SMfq/6Juu0rcxZnGHofycTswgGzLqCFzsV0icZiF2EPYCRDN2ZZ1ukSReowRe5jFOZiHDnZ+cu1m+XkszkvxT9BvGf7DBe/CXjOVj10A14gaad5cpn2DeEz91y3bir01DFJxWUFgVsVS2PWqt0+jwlyxsUiqZ/0= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(376002)(39860400002)(136003)(366004)(346002)(451199021)(53546011)(9686003)(6506007)(2906002)(30864003)(52536014)(5660300002)(83380400001)(186003)(26005)(8936002)(8676002)(7696005)(71200400001)(55016003)(122000001)(41300700001)(38070700005)(316002)(110136005)(478600001)(38100700002)(66556008)(66946007)(33656002)(76116006)(4326008)(66476007)(64756008)(66446008)(6636002)(86362001);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6451 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: DBAEUR03FT005.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2bebf830-f8de-4d1b-2aba-08db4bb328df X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HpIt1XqLFn6aAC5YacmWKIouFsxElyFLz12Qdon1AYyGa8w+z/F+VBBIPOJ1xFqKlNzdQWRG6Gaksz+uhCOtfStsuSaxVLfeHkUhA/Scwh/v9+KG5MVxU/FekfsXeHZHVn0UjFGj9KO9HiSZ8L/HRJcj3XRZG/lNkpa+zSpDV84xiHKNNlkepsic4rZYlGW6Wrla6E0dFbNBIzZbQkytQyIzxFkeMAL9GRLqWr+pMgidhjeyvJ6EYNnukesxOPbgz5p8NOGbza3vIoH0czmUNPZbCvW+kd9eovJzn1Px7y5/q30FbvCNXTz9x0zZCxNdauQTPU+PdErRC1mmxe8FBFVWJ2lLXd9EoaRzyKr5HVlAi5CddFHRrE9S/jjPO02Kcv0Xra4ZxoXC/HfECdpfvScbkPhytKHYTtszdUwG1O6qsdDLzjoRF706cBuk7VJmOMHtoBxd3V6AZtCZ72u6I93enAQ4fihovHESBb2Zy91Q+5KKgWfPm/Ito31ghm+1FpMDl5RsHJEKYHXdwYpaPT2J+oDUzS8oocBbvm4Qj8Zmm4jQx4imAiGhwu+iMNLXK2yTrw2jcVfzDc/PdKo/uwTc5ARRLpGAO6xbMJKuiM2TTLsRUPPnf0GkwC8huv5Zz3rAogdNXyli/wRjg7OuugitQjdrKNzEXRURxRvPe/QlzNBObNmQf1wez4IHJisoyh5qVTe7TuLSDeztlCduxlA9FqY5zxvtmeSu/w26SMs= 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:(13230028)(4636009)(346002)(39860400002)(136003)(396003)(376002)(451199021)(40470700004)(36840700001)(46966006)(36860700001)(40480700001)(86362001)(30864003)(55016003)(47076005)(336012)(52536014)(5660300002)(2906002)(40460700003)(83380400001)(82310400005)(82740400003)(81166007)(356005)(34020700004)(53546011)(33656002)(70206006)(41300700001)(316002)(478600001)(9686003)(110136005)(7696005)(26005)(70586007)(6506007)(6636002)(4326008)(186003)(8676002)(8936002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 08:48:39.3871 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6e98d4c7-00c7-43ed-4132-08db4bb330dc 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: DBAEUR03FT005.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB8175 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,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: > -----Original Message----- > From: Christophe Lyon > Sent: Tuesday, April 18, 2023 2:46 PM > To: gcc-patches@gcc.gnu.org; Kyrylo Tkachov ; > Richard Earnshaw ; Richard Sandiford > > Cc: Christophe Lyon > Subject: [PATCH 20/22] arm: [MVE intrinsics] factorize several binary _m_= n > operations >=20 > Factorize vhaddq_m_n, vhsubq_m_n, vmlaq_m_n, vmlasq_m_n, > vqaddq_m_n, > vqdmlahq_m_n, vqdmlashq_m_n, vqdmulhq_m_n, vqrdmlahq_m_n, > vqrdmlashq_m_n, vqrdmulhq_m_n, vqsubq_m_n > so that they use the same pattern. >=20 > 2022-09-08 Christophe Lyon >=20 > gcc/ > * config/arm/iterators.md (MVE_INT_SU_M_N_BINARY): New. > (mve_insn): Add vhaddq, vhsubq, vmlaq, vmlasq, vqaddq, vqdmlahq, > vqdmlashq, vqdmulhq, vqrdmlahq, vqrdmlashq, vqrdmulhq, vqsubq. > (supf): Add VQDMLAHQ_M_N_S, VQDMLASHQ_M_N_S, > VQRDMLAHQ_M_N_S, > VQRDMLASHQ_M_N_S, VQDMULHQ_M_N_S, VQRDMULHQ_M_N_S. > * config/arm/mve.md (mve_vhaddq_m_n_) > (mve_vhsubq_m_n_, > mve_vmlaq_m_n_) > (mve_vmlasq_m_n_, > mve_vqaddq_m_n_) > (mve_vqdmlahq_m_n_s, mve_vqdmlashq_m_n_s) > (mve_vqrdmlahq_m_n_s, mve_vqrdmlashq_m_n_s) > (mve_vqsubq_m_n_, mve_vqdmulhq_m_n_s) > (mve_vqrdmulhq_m_n_s): Merge into ... > (@mve_q_m_n_): ... this. > --- > gcc/config/arm/iterators.md | 33 ++++++ > gcc/config/arm/mve.md | 202 +++--------------------------------- > 2 files changed, 46 insertions(+), 189 deletions(-) >=20 > diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md > index 6dbc40f842c..60452cdefe3 100644 > --- a/gcc/config/arm/iterators.md > +++ b/gcc/config/arm/iterators.md > @@ -384,6 +384,21 @@ (define_int_iterator MVE_INT_M_N_BINARY_LOGIC > [ > VORRQ_M_N_S VORRQ_M_N_U > ]) >=20 > +(define_int_iterator MVE_INT_SU_M_N_BINARY [ > + VHADDQ_M_N_S VHADDQ_M_N_U > + VHSUBQ_M_N_S VHSUBQ_M_N_U > + VMLAQ_M_N_S VMLAQ_M_N_U > + VMLASQ_M_N_S VMLASQ_M_N_U > + VQDMLAHQ_M_N_S > + VQDMLASHQ_M_N_S > + VQRDMLAHQ_M_N_S > + VQRDMLASHQ_M_N_S > + VQADDQ_M_N_S VQADDQ_M_N_U > + VQSUBQ_M_N_S VQSUBQ_M_N_U > + VQDMULHQ_M_N_S > + VQRDMULHQ_M_N_S > + ]) > + > (define_int_iterator MVE_INT_N_BINARY [ > VADDQ_N_S VADDQ_N_U > VMULQ_N_S VMULQ_N_U > @@ -450,12 +465,16 @@ (define_int_attr mve_insn [ > (VBICQ_N_S "vbic") (VBICQ_N_U "vbic") > (VCREATEQ_S "vcreate") (VCREATEQ_U "vcreate") > (VCREATEQ_F "vcreate") > (VEORQ_M_S "veor") (VEORQ_M_U "veor") (VEORQ_M_F > "veor") > + (VHADDQ_M_N_S "vhadd") (VHADDQ_M_N_U "vhadd") > (VHADDQ_M_S "vhadd") (VHADDQ_M_U "vhadd") > (VHADDQ_N_S "vhadd") (VHADDQ_N_U "vhadd") > + (VHSUBQ_M_N_S "vhsub") (VHSUBQ_M_N_U "vhsub") > (VHSUBQ_M_S "vhsub") (VHSUBQ_M_U "vhsub") > (VHSUBQ_N_S "vhsub") (VHSUBQ_N_U "vhsub") > (VMAXQ_M_S "vmax") (VMAXQ_M_U "vmax") > (VMINQ_M_S "vmin") (VMINQ_M_U "vmin") > + (VMLAQ_M_N_S "vmla") (VMLAQ_M_N_U "vmla") > + (VMLASQ_M_N_S "vmlas") (VMLASQ_M_N_U "vmlas") > (VMULHQ_M_S "vmulh") (VMULHQ_M_U "vmulh") > (VMULQ_M_N_S "vmul") (VMULQ_M_N_U "vmul") > (VMULQ_M_N_F "vmul") > (VMULQ_M_S "vmul") (VMULQ_M_U "vmul") (VMULQ_M_F > "vmul") > @@ -463,22 +482,30 @@ (define_int_attr mve_insn [ > (VORRQ_M_N_S "vorr") (VORRQ_M_N_U "vorr") > (VORRQ_M_S "vorr") (VORRQ_M_U "vorr") (VORRQ_M_F > "vorr") > (VORRQ_N_S "vorr") (VORRQ_N_U "vorr") > + (VQADDQ_M_N_S "vqadd") (VQADDQ_M_N_U "vqadd") > (VQADDQ_M_S "vqadd") (VQADDQ_M_U "vqadd") > (VQADDQ_N_S "vqadd") (VQADDQ_N_U "vqadd") > (VQDMLADHQ_M_S "vqdmladh") > (VQDMLADHXQ_M_S "vqdmladhx") > + (VQDMLAHQ_M_N_S "vqdmlah") > + (VQDMLASHQ_M_N_S "vqdmlash") > (VQDMLSDHQ_M_S "vqdmlsdh") > (VQDMLSDHXQ_M_S "vqdmlsdhx") > + (VQDMULHQ_M_N_S "vqdmulh") > (VQDMULHQ_M_S "vqdmulh") > (VQDMULHQ_N_S "vqdmulh") > (VQRDMLADHQ_M_S "vqrdmladh") > (VQRDMLADHXQ_M_S "vqrdmladhx") > + (VQRDMLAHQ_M_N_S "vqrdmlah") > + (VQRDMLASHQ_M_N_S "vqrdmlash") > (VQRDMLSDHQ_M_S "vqrdmlsdh") > (VQRDMLSDHXQ_M_S "vqrdmlsdhx") > + (VQRDMULHQ_M_N_S "vqrdmulh") > (VQRDMULHQ_M_S "vqrdmulh") > (VQRDMULHQ_N_S "vqrdmulh") > (VQRSHLQ_M_S "vqrshl") (VQRSHLQ_M_U "vqrshl") > (VQSHLQ_M_S "vqshl") (VQSHLQ_M_U "vqshl") > + (VQSUBQ_M_N_S "vqsub") (VQSUBQ_M_N_U "vqsub") > (VQSUBQ_M_S "vqsub") (VQSUBQ_M_U "vqsub") > (VQSUBQ_N_S "vqsub") (VQSUBQ_N_U "vqsub") > (VRHADDQ_M_S "vrhadd") (VRHADDQ_M_U "vrhadd") > @@ -1636,6 +1663,12 @@ (define_int_attr supf [(VCVTQ_TO_F_S "s") > (VCVTQ_TO_F_U "u") (VREV16Q_S "s") > (VQRDMULHQ_M_S "s") > (VQDMULHQ_N_S "s") > (VQRDMULHQ_N_S "s") > + (VQDMLAHQ_M_N_S "s") > + (VQDMLASHQ_M_N_S "s") > + (VQRDMLAHQ_M_N_S "s") > + (VQRDMLASHQ_M_N_S "s") > + (VQDMULHQ_M_N_S "s") > + (VQRDMULHQ_M_N_S "s") > ]) >=20 > ;; Both kinds of return insn. > diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md > index 3377e03ee06..d14a04d5f82 100644 > --- a/gcc/config/arm/mve.md > +++ b/gcc/config/arm/mve.md > @@ -4982,35 +4982,29 @@ (define_insn > "mve_vcaddq_rot90_m_" >=20 > ;; > ;; [vhaddq_m_n_s, vhaddq_m_n_u]) > -;; > -(define_insn "mve_vhaddq_m_n_" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VHADDQ_M_N)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vhaddt.%# %q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > ;; [vhsubq_m_n_s, vhsubq_m_n_u]) > +;; [vmlaq_m_n_s, vmlaq_m_n_u]) > +;; [vmlasq_m_n_u, vmlasq_m_n_s]) > +;; [vqaddq_m_n_u, vqaddq_m_n_s]) > +;; [vqdmlahq_m_n_s]) > +;; [vqdmlashq_m_n_s]) > +;; [vqdmulhq_m_n_s]) > +;; [vqrdmlahq_m_n_s]) > +;; [vqrdmlashq_m_n_s]) > +;; [vqrdmulhq_m_n_s]) > +;; [vqsubq_m_n_u, vqsubq_m_n_s]) > ;; Ok with the trailing ')' removed. Thanks, Kyrill > -(define_insn "mve_vhsubq_m_n_" > +(define_insn "@mve_q_m_n_" > [ > (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > (match_operand:MVE_2 2 "s_register_operand" "w") > (match_operand: 3 "s_register_operand" "r") > (match_operand: 4 > "vpr_register_operand" "Up")] > - VHSUBQ_M_N)) > + MVE_INT_SU_M_N_BINARY)) > ] > "TARGET_HAVE_MVE" > - "vpst\;vhsubt.%# %q0, %q2, %3" > + "vpst\;t.%#\t%q0, %q2, %3" > [(set_attr "type" "mve_move") > (set_attr "length""8")]) >=20 > @@ -5032,40 +5026,6 @@ (define_insn "mve_vmladavaq_p_" > [(set_attr "type" "mve_move") > (set_attr "length""8")]) >=20 > -;; > -;; [vmlaq_m_n_s, vmlaq_m_n_u]) > -;; > -(define_insn "mve_vmlaq_m_n_" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VMLAQ_M_N)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vmlat.%# %q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vmlasq_m_n_u, vmlasq_m_n_s]) > -;; > -(define_insn "mve_vmlasq_m_n_" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VMLASQ_M_N)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vmlast.%# %q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > ;; > ;; [vmullbq_int_m_u, vmullbq_int_m_s]) > ;; > @@ -5117,91 +5077,6 @@ (define_insn "mve_vornq_m_" > [(set_attr "type" "mve_move") > (set_attr "length""8")]) >=20 > -;; > -;; [vqaddq_m_n_u, vqaddq_m_n_s]) > -;; > -(define_insn "mve_vqaddq_m_n_" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQADDQ_M_N)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqaddt.%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vqdmlahq_m_n_s]) > -;; > -(define_insn "mve_vqdmlahq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQDMLAHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqdmlaht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vqdmlashq_m_n_s]) > -;; > -(define_insn "mve_vqdmlashq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQDMLASHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqdmlasht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vqrdmlahq_m_n_s]) > -;; > -(define_insn "mve_vqrdmlahq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQRDMLAHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqrdmlaht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vqrdmlashq_m_n_s]) > -;; > -(define_insn "mve_vqrdmlashq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQRDMLASHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqrdmlasht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > ;; > ;; [vqshlq_m_n_s, vqshlq_m_n_u]) > ;; > @@ -5219,23 +5094,6 @@ (define_insn "mve_vqshlq_m_n_" > [(set_attr "type" "mve_move") > (set_attr "length""8")]) >=20 > -;; > -;; [vqsubq_m_n_u, vqsubq_m_n_s]) > -;; > -(define_insn "mve_vqsubq_m_n_" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQSUBQ_M_N)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqsubt.%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > ;; > ;; [vrshrq_m_n_s, vrshrq_m_n_u]) > ;; > @@ -5389,40 +5247,6 @@ (define_insn "mve_vmlsdavaxq_p_s" > [(set_attr "type" "mve_move") > (set_attr "length""8")]) >=20 > -;; > -;; [vqdmulhq_m_n_s]) > -;; > -(define_insn "mve_vqdmulhq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQDMULHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqdmulht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > -;; > -;; [vqrdmulhq_m_n_s]) > -;; > -(define_insn "mve_vqrdmulhq_m_n_s" > - [ > - (set (match_operand:MVE_2 0 "s_register_operand" "=3Dw") > - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" "0") > - (match_operand:MVE_2 2 "s_register_operand" "w") > - (match_operand: 3 "s_register_operand" "r") > - (match_operand: 4 > "vpr_register_operand" "Up")] > - VQRDMULHQ_M_N_S)) > - ] > - "TARGET_HAVE_MVE" > - "vpst\;vqrdmulht.s%#\t%q0, %q2, %3" > - [(set_attr "type" "mve_move") > - (set_attr "length""8")]) > - > ;; > ;; [vmlaldavaq_p_u, vmlaldavaq_p_s]) > ;; > -- > 2.34.1