From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2046.outbound.protection.outlook.com [40.107.241.46]) by sourceware.org (Postfix) with ESMTPS id A3ECD3858C62 for ; Wed, 3 May 2023 09:06:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A3ECD3858C62 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=dKjItuqrsV5/gnV/4EvQGimBObe7CAXm07mVx4UDML8=; b=SflXLh0MpdUPyFuPkUPSRp1dfIKnUEOG3rQCMovPfhqoxIJyT+5d0ImRTAcf0+My3WD/LhAKK9weBdqs5Iz3U4xsA1UeE7j5kMN0y/Ke8MwjDPXKJ/Kd4XiV/CM/fuKybjxu+CNfaAB3YsUv2RZj/AkDDnyjWxBss0AMngdaQmY= Received: from AS8PR04CA0020.eurprd04.prod.outlook.com (2603:10a6:20b:310::25) by AS2PR08MB9341.eurprd08.prod.outlook.com (2603:10a6:20b:59a::9) 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 09:06:48 +0000 Received: from AM7EUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:310:cafe::67) by AS8PR04CA0020.outlook.office365.com (2603:10a6:20b:310::25) 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 09:06:48 +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 AM7EUR03FT062.mail.protection.outlook.com (100.127.140.99) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.20 via Frontend Transport; Wed, 3 May 2023 09:06:48 +0000 Received: ("Tessian outbound 5154e9d36775:v136"); Wed, 03 May 2023 09:06:48 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 2f846a14ab21d521 X-CR-MTA-TID: 64aa7808 Received: from 72c468590a02.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id FE066421-1E2C-4E2C-9B91-221BEA891C74.1; Wed, 03 May 2023 09:06:41 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 72c468590a02.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 03 May 2023 09:06:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kxwVQ2C79pxclvClu7XaxpL+So2oicr4hfmKMq846Z43mWCxpfUmEKD4FY/TZk73mSbaXZJ46khNiVhwvlubJeQT+JYU2RABqG35JdVjfGHkkPyPMTzTVqw1eGc3CEdr6JncGGgSNnIewuVINO4scYsIJz1qwRmDu/0oPP8OOEMee+rmMTSrbe9QP7+uQf856xE7/RDras4MLYhXCBRxUvEbc7d75MC3bXbsUnTw0fXzV8B9zC27wrlsGsTjnVgRV1JZLi6R2rbLrvYY0Xz+cLbekEpHGaYZjuISpiGSIlAzUpgQLWBSiPuzDgUfGvpu8KtZ6fYcGYSr5A+qGJ4Jew== 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=dKjItuqrsV5/gnV/4EvQGimBObe7CAXm07mVx4UDML8=; b=AksVKmPp/310HD18rV0eCsTAFcOV8xfh+mNc+dyn7dijDetxHXsiCXYdhVKfaV5Rgt+9wQLUZPCoDWsNfR4J5yDtxxmyqbUUHjpRibHDEKP2WL1gJ8wP7jx/A+WAUWtfLsfO5LtXpVFOjIQmliE6Zm66rqIbIFNsdZWRnvAXD7WBM4cjio4/zPCl2hv3ft+9U8WaLCVlaAhmjtvzARw6h57dtzznW8Cy+hWQeYf3Aw4bvxjNtGJuz2sq0x+cOvA8cS6fqxLBnw99ZSIL5h1p+4QN3YoZtXT2BQI580C5cImSTFEs+0Q9bskCaA3ozyTE171gyinO7OvtXMltUV2ntg== 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=dKjItuqrsV5/gnV/4EvQGimBObe7CAXm07mVx4UDML8=; b=SflXLh0MpdUPyFuPkUPSRp1dfIKnUEOG3rQCMovPfhqoxIJyT+5d0ImRTAcf0+My3WD/LhAKK9weBdqs5Iz3U4xsA1UeE7j5kMN0y/Ke8MwjDPXKJ/Kd4XiV/CM/fuKybjxu+CNfaAB3YsUv2RZj/AkDDnyjWxBss0AMngdaQmY= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from VI1PR08MB3390.eurprd08.prod.outlook.com (2603:10a6:803:7d::27) by PA4PR08MB5998.eurprd08.prod.outlook.com (2603:10a6:102:e9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.22; Wed, 3 May 2023 09:06:36 +0000 Received: from VI1PR08MB3390.eurprd08.prod.outlook.com ([fe80::1a93:2d42:2bb5:eae9]) by VI1PR08MB3390.eurprd08.prod.outlook.com ([fe80::1a93:2d42:2bb5:eae9%2]) with mapi id 15.20.6340.031; Wed, 3 May 2023 09:06:35 +0000 Message-ID: <855a1c9f-82f6-fa7c-cc09-bdd882220654@arm.com> Date: Wed, 3 May 2023 11:06:24 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: Re: [PATCH 08/22] arm: [MVE intrinsics] rework vaddq vmulq vsubq To: Kyrylo Tkachov , "gcc-patches@gcc.gnu.org" , Richard Earnshaw , Richard Sandiford References: <20230418134608.244751-1-christophe.lyon@arm.com> <20230418134608.244751-9-christophe.lyon@arm.com> Content-Language: en-US From: Christophe Lyon In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: SA9PR11CA0026.namprd11.prod.outlook.com (2603:10b6:806:6e::31) To VI1PR08MB3390.eurprd08.prod.outlook.com (2603:10a6:803:7d::27) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3390:EE_|PA4PR08MB5998:EE_|AM7EUR03FT062:EE_|AS2PR08MB9341:EE_ X-MS-Office365-Filtering-Correlation-Id: 62369b2d-9889-4b7d-6787-08db4bb5b9ef 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: if4/24pBysS+J57TRz5zZTUG6PkEwjRjlBxeA83Y/H9iHTE2eZAw7fkuQ0WBWP+PyTDdd+kd61BPwqIaEh8pG+IceC6L0YZVStJOuFslufRh+uvu8bz6xoP3TX4wtWrv9X1XtoGstckrUsuTWTlufchnzJ3VCqL8welRRCbdIUWZU5yBsdDHjHYY0cP+J84GWt30x5Yejxudk9v4G9mQhoK7MfbXGiNU9WbTibuuzLqHuyKhBihC15sINFoz71+OnYXUmf8xOznATuiXKnMiz9x9/TiLkE21Qt0OobSsY9QID22z5WZtpMVCLwQFwavrZzrWECzPjPmpHlwAQ17zM+DCh2HCo7eoXo340iCgqXaB/NPYaK0FljQ2TJrgUEK9T5PxD6MPfghV/m7xEd9nHGOMwKiaZ5cPL8WUUpYnKIt82NnYkAZzLL2YUFpT9nu4Fd1AoT4ftjyHNP9fLYTzJGSFR+/ZUK2Cwd91mGkC+ORzKhFmTthQYNGqZOxBcj8gkqcKEDswfXPGlSgfaW5wNCU2i9kEGQLSYpwAgy3D3CLGb5wu4uk23hkufHaFoASUqmYhH4AwmXyiM674L5DpUUGfLDvJcfjFrhQXCY7n4BZfjq0DXUFs0iP9ye4RA2Rm0HAA3slibigpzYfj9VEeFQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB3390.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(366004)(39860400002)(346002)(136003)(376002)(396003)(451199021)(41300700001)(478600001)(66946007)(66556008)(66476007)(6636002)(53546011)(110136005)(6666004)(316002)(31686004)(6486002)(8936002)(44832011)(38100700002)(86362001)(31696002)(5660300002)(6512007)(6506007)(26005)(2906002)(2616005)(30864003)(8676002)(83380400001)(186003)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB5998 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: AM7EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 3b681bbb-31f5-4edb-ff7c-08db4bb5b24c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EhURwhOP96r3DJM9ZgU2t4sXjn4mQjn09oZis/X0hL3GogcrkerS0j6IHxLDV+aszxYqs3ckzKUll7p0SPtowbIRval/r/McPtpG0wMJWXlaF1yNUQVw7HJMz5uEYUZzfCEx/ub2dvzmfQoeYmghond/oAWlEng/Lwd+OyUOEbhEm2LNihVTbVKUh+st5sVitE4gxUrOVdKn6uLcnkCodDM1Hp0LVbJ7d4AXc5jhpi+a/83gIISi4IuTyIVLAyjohxLodzfYhB8HUkrB8d2XABzcGQb4at0IwPi2sxKeF/y4oLIL6VEEwSXgukBBr9Mx6OS6XU0f2F+wot0rMZ5QFc9sjOjrc4HyQW2+ug+TV1lFGvujVIfSTZlRhHIn7xCyJy+XIunCyysywxmg5Lv2uV2CGb6TNgpIgj+thyQIWKj/LsZJ6B/lrOzzvhifECnkNYKIOUKSDdCtt6+wvWnE9rC1Usgyru5TNqoQQkNYzi1YQLFWiE03sfLqmMWSqLz7ogWSQ4gfEIHI2LQ6GFBnbOBNN6YWmqMlcPRtfO6Js9by5XTDl7JCjk92S15iLtQZjZy11bATqC/aZG3nmk+p4Oo85MRA9yRxAggQClx5ku6p9F7sX54XymwkRHQj7jQ2wCZgYP90wUQ12hctvZ0L8HSAxrpxYsWLd+8gPNVoy2bz8wOYdvcglpJGTaICL1d6cs0lUKTDjdnbv/TI+yVJXbZglt4Z0SisAP0TIyJvXxW980Q7O9LITFdf/7ONN+8ix9ZPQ8oz8tEhfch4wyQ+Wg== 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)(136003)(39860400002)(346002)(376002)(396003)(451199021)(40470700004)(36840700001)(46966006)(82740400003)(81166007)(356005)(34020700004)(6506007)(47076005)(336012)(40480700001)(186003)(36860700001)(2616005)(26005)(53546011)(83380400001)(44832011)(2906002)(30864003)(8676002)(8936002)(5660300002)(31696002)(478600001)(36756003)(40460700003)(110136005)(316002)(6636002)(86362001)(41300700001)(70586007)(70206006)(6666004)(6486002)(82310400005)(31686004)(6512007)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 09:06:48.2914 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 62369b2d-9889-4b7d-6787-08db4bb5b9ef 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: AM7EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9341 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,NICE_REPLY_A,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: On 5/2/23 18:31, Kyrylo Tkachov wrote: > > >> -----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 08/22] arm: [MVE intrinsics] rework vaddq vmulq vsubq >> >> Implement vaddq, vmulq, vsubq using the new MVE builtins framework. >> >> 2022-09-08 Christophe Lyon >> >> gcc/ >> >> * config/arm/arm-mve-builtins-base.cc >> (FUNCTION_WITH_RTX_M_N): >> New. >> (vaddq, vmulq, vsubq): New. >> * config/arm/arm-mve-builtins-base.def (vaddq, vmulq, vsubq): New. >> * config/arm/arm-mve-builtins-base.h (vaddq, vmulq, vsubq): New. >> * config/arm/arm_mve.h (vaddq): Remove. >> (vaddq_m): Remove. >> (vaddq_x): Remove. >> (vaddq_n_u8): Remove. >> (vaddq_n_s8): Remove. >> (vaddq_n_u16): Remove. >> (vaddq_n_s16): Remove. >> (vaddq_n_u32): Remove. >> (vaddq_n_s32): Remove. >> (vaddq_n_f16): Remove. >> (vaddq_n_f32): Remove. >> (vaddq_m_n_s8): Remove. >> (vaddq_m_n_s32): Remove. >> (vaddq_m_n_s16): Remove. >> (vaddq_m_n_u8): Remove. >> (vaddq_m_n_u32): Remove. >> (vaddq_m_n_u16): Remove. >> (vaddq_m_s8): Remove. >> (vaddq_m_s32): Remove. >> (vaddq_m_s16): Remove. >> (vaddq_m_u8): Remove. >> (vaddq_m_u32): Remove. >> (vaddq_m_u16): Remove. >> (vaddq_m_f32): Remove. >> (vaddq_m_f16): Remove. >> (vaddq_m_n_f32): Remove. >> (vaddq_m_n_f16): Remove. >> (vaddq_s8): Remove. >> (vaddq_s16): Remove. >> (vaddq_s32): Remove. >> (vaddq_u8): Remove. >> (vaddq_u16): Remove. >> (vaddq_u32): Remove. >> (vaddq_f16): Remove. >> (vaddq_f32): Remove. >> (vaddq_x_s8): Remove. >> (vaddq_x_s16): Remove. >> (vaddq_x_s32): Remove. >> (vaddq_x_n_s8): Remove. >> (vaddq_x_n_s16): Remove. >> (vaddq_x_n_s32): Remove. >> (vaddq_x_u8): Remove. >> (vaddq_x_u16): Remove. >> (vaddq_x_u32): Remove. >> (vaddq_x_n_u8): Remove. >> (vaddq_x_n_u16): Remove. >> (vaddq_x_n_u32): Remove. >> (vaddq_x_f16): Remove. >> (vaddq_x_f32): Remove. >> (vaddq_x_n_f16): Remove. >> (vaddq_x_n_f32): Remove. >> (__arm_vaddq_n_u8): Remove. >> (__arm_vaddq_n_s8): Remove. >> (__arm_vaddq_n_u16): Remove. >> (__arm_vaddq_n_s16): Remove. >> (__arm_vaddq_n_u32): Remove. >> (__arm_vaddq_n_s32): Remove. >> (__arm_vaddq_m_n_s8): Remove. >> (__arm_vaddq_m_n_s32): Remove. >> (__arm_vaddq_m_n_s16): Remove. >> (__arm_vaddq_m_n_u8): Remove. >> (__arm_vaddq_m_n_u32): Remove. >> (__arm_vaddq_m_n_u16): Remove. >> (__arm_vaddq_m_s8): Remove. >> (__arm_vaddq_m_s32): Remove. >> (__arm_vaddq_m_s16): Remove. >> (__arm_vaddq_m_u8): Remove. >> (__arm_vaddq_m_u32): Remove. >> (__arm_vaddq_m_u16): Remove. >> (__arm_vaddq_s8): Remove. >> (__arm_vaddq_s16): Remove. >> (__arm_vaddq_s32): Remove. >> (__arm_vaddq_u8): Remove. >> (__arm_vaddq_u16): Remove. >> (__arm_vaddq_u32): Remove. >> (__arm_vaddq_x_s8): Remove. >> (__arm_vaddq_x_s16): Remove. >> (__arm_vaddq_x_s32): Remove. >> (__arm_vaddq_x_n_s8): Remove. >> (__arm_vaddq_x_n_s16): Remove. >> (__arm_vaddq_x_n_s32): Remove. >> (__arm_vaddq_x_u8): Remove. >> (__arm_vaddq_x_u16): Remove. >> (__arm_vaddq_x_u32): Remove. >> (__arm_vaddq_x_n_u8): Remove. >> (__arm_vaddq_x_n_u16): Remove. >> (__arm_vaddq_x_n_u32): Remove. >> (__arm_vaddq_n_f16): Remove. >> (__arm_vaddq_n_f32): Remove. >> (__arm_vaddq_m_f32): Remove. >> (__arm_vaddq_m_f16): Remove. >> (__arm_vaddq_m_n_f32): Remove. >> (__arm_vaddq_m_n_f16): Remove. >> (__arm_vaddq_f16): Remove. >> (__arm_vaddq_f32): Remove. >> (__arm_vaddq_x_f16): Remove. >> (__arm_vaddq_x_f32): Remove. >> (__arm_vaddq_x_n_f16): Remove. >> (__arm_vaddq_x_n_f32): Remove. >> (__arm_vaddq): Remove. >> (__arm_vaddq_m): Remove. >> (__arm_vaddq_x): Remove. >> (vmulq): Remove. >> (vmulq_m): Remove. >> (vmulq_x): Remove. >> (vmulq_u8): Remove. >> (vmulq_n_u8): Remove. >> (vmulq_s8): Remove. >> (vmulq_n_s8): Remove. >> (vmulq_u16): Remove. >> (vmulq_n_u16): Remove. >> (vmulq_s16): Remove. >> (vmulq_n_s16): Remove. >> (vmulq_u32): Remove. >> (vmulq_n_u32): Remove. >> (vmulq_s32): Remove. >> (vmulq_n_s32): Remove. >> (vmulq_n_f16): Remove. >> (vmulq_f16): Remove. >> (vmulq_n_f32): Remove. >> (vmulq_f32): Remove. >> (vmulq_m_n_s8): Remove. >> (vmulq_m_n_s32): Remove. >> (vmulq_m_n_s16): Remove. >> (vmulq_m_n_u8): Remove. >> (vmulq_m_n_u32): Remove. >> (vmulq_m_n_u16): Remove. >> (vmulq_m_s8): Remove. >> (vmulq_m_s32): Remove. >> (vmulq_m_s16): Remove. >> (vmulq_m_u8): Remove. >> (vmulq_m_u32): Remove. >> (vmulq_m_u16): Remove. >> (vmulq_m_f32): Remove. >> (vmulq_m_f16): Remove. >> (vmulq_m_n_f32): Remove. >> (vmulq_m_n_f16): Remove. >> (vmulq_x_s8): Remove. >> (vmulq_x_s16): Remove. >> (vmulq_x_s32): Remove. >> (vmulq_x_n_s8): Remove. >> (vmulq_x_n_s16): Remove. >> (vmulq_x_n_s32): Remove. >> (vmulq_x_u8): Remove. >> (vmulq_x_u16): Remove. >> (vmulq_x_u32): Remove. >> (vmulq_x_n_u8): Remove. >> (vmulq_x_n_u16): Remove. >> (vmulq_x_n_u32): Remove. >> (vmulq_x_f16): Remove. >> (vmulq_x_f32): Remove. >> (vmulq_x_n_f16): Remove. >> (vmulq_x_n_f32): Remove. >> (__arm_vmulq_u8): Remove. >> (__arm_vmulq_n_u8): Remove. >> (__arm_vmulq_s8): Remove. >> (__arm_vmulq_n_s8): Remove. >> (__arm_vmulq_u16): Remove. >> (__arm_vmulq_n_u16): Remove. >> (__arm_vmulq_s16): Remove. >> (__arm_vmulq_n_s16): Remove. >> (__arm_vmulq_u32): Remove. >> (__arm_vmulq_n_u32): Remove. >> (__arm_vmulq_s32): Remove. >> (__arm_vmulq_n_s32): Remove. >> (__arm_vmulq_m_n_s8): Remove. >> (__arm_vmulq_m_n_s32): Remove. >> (__arm_vmulq_m_n_s16): Remove. >> (__arm_vmulq_m_n_u8): Remove. >> (__arm_vmulq_m_n_u32): Remove. >> (__arm_vmulq_m_n_u16): Remove. >> (__arm_vmulq_m_s8): Remove. >> (__arm_vmulq_m_s32): Remove. >> (__arm_vmulq_m_s16): Remove. >> (__arm_vmulq_m_u8): Remove. >> (__arm_vmulq_m_u32): Remove. >> (__arm_vmulq_m_u16): Remove. >> (__arm_vmulq_x_s8): Remove. >> (__arm_vmulq_x_s16): Remove. >> (__arm_vmulq_x_s32): Remove. >> (__arm_vmulq_x_n_s8): Remove. >> (__arm_vmulq_x_n_s16): Remove. >> (__arm_vmulq_x_n_s32): Remove. >> (__arm_vmulq_x_u8): Remove. >> (__arm_vmulq_x_u16): Remove. >> (__arm_vmulq_x_u32): Remove. >> (__arm_vmulq_x_n_u8): Remove. >> (__arm_vmulq_x_n_u16): Remove. >> (__arm_vmulq_x_n_u32): Remove. >> (__arm_vmulq_n_f16): Remove. >> (__arm_vmulq_f16): Remove. >> (__arm_vmulq_n_f32): Remove. >> (__arm_vmulq_f32): Remove. >> (__arm_vmulq_m_f32): Remove. >> (__arm_vmulq_m_f16): Remove. >> (__arm_vmulq_m_n_f32): Remove. >> (__arm_vmulq_m_n_f16): Remove. >> (__arm_vmulq_x_f16): Remove. >> (__arm_vmulq_x_f32): Remove. >> (__arm_vmulq_x_n_f16): Remove. >> (__arm_vmulq_x_n_f32): Remove. >> (__arm_vmulq): Remove. >> (__arm_vmulq_m): Remove. >> (__arm_vmulq_x): Remove. >> (vsubq): Remove. >> (vsubq_m): Remove. >> (vsubq_x): Remove. >> (vsubq_n_f16): Remove. >> (vsubq_n_f32): Remove. >> (vsubq_u8): Remove. >> (vsubq_n_u8): Remove. >> (vsubq_s8): Remove. >> (vsubq_n_s8): Remove. >> (vsubq_u16): Remove. >> (vsubq_n_u16): Remove. >> (vsubq_s16): Remove. >> (vsubq_n_s16): Remove. >> (vsubq_u32): Remove. >> (vsubq_n_u32): Remove. >> (vsubq_s32): Remove. >> (vsubq_n_s32): Remove. >> (vsubq_f16): Remove. >> (vsubq_f32): Remove. >> (vsubq_m_s8): Remove. >> (vsubq_m_u8): Remove. >> (vsubq_m_s16): Remove. >> (vsubq_m_u16): Remove. >> (vsubq_m_s32): Remove. >> (vsubq_m_u32): Remove. >> (vsubq_m_n_s8): Remove. >> (vsubq_m_n_s32): Remove. >> (vsubq_m_n_s16): Remove. >> (vsubq_m_n_u8): Remove. >> (vsubq_m_n_u32): Remove. >> (vsubq_m_n_u16): Remove. >> (vsubq_m_f32): Remove. >> (vsubq_m_f16): Remove. >> (vsubq_m_n_f32): Remove. >> (vsubq_m_n_f16): Remove. >> (vsubq_x_s8): Remove. >> (vsubq_x_s16): Remove. >> (vsubq_x_s32): Remove. >> (vsubq_x_n_s8): Remove. >> (vsubq_x_n_s16): Remove. >> (vsubq_x_n_s32): Remove. >> (vsubq_x_u8): Remove. >> (vsubq_x_u16): Remove. >> (vsubq_x_u32): Remove. >> (vsubq_x_n_u8): Remove. >> (vsubq_x_n_u16): Remove. >> (vsubq_x_n_u32): Remove. >> (vsubq_x_f16): Remove. >> (vsubq_x_f32): Remove. >> (vsubq_x_n_f16): Remove. >> (vsubq_x_n_f32): Remove. >> (__arm_vsubq_u8): Remove. >> (__arm_vsubq_n_u8): Remove. >> (__arm_vsubq_s8): Remove. >> (__arm_vsubq_n_s8): Remove. >> (__arm_vsubq_u16): Remove. >> (__arm_vsubq_n_u16): Remove. >> (__arm_vsubq_s16): Remove. >> (__arm_vsubq_n_s16): Remove. >> (__arm_vsubq_u32): Remove. >> (__arm_vsubq_n_u32): Remove. >> (__arm_vsubq_s32): Remove. >> (__arm_vsubq_n_s32): Remove. >> (__arm_vsubq_m_s8): Remove. >> (__arm_vsubq_m_u8): Remove. >> (__arm_vsubq_m_s16): Remove. >> (__arm_vsubq_m_u16): Remove. >> (__arm_vsubq_m_s32): Remove. >> (__arm_vsubq_m_u32): Remove. >> (__arm_vsubq_m_n_s8): Remove. >> (__arm_vsubq_m_n_s32): Remove. >> (__arm_vsubq_m_n_s16): Remove. >> (__arm_vsubq_m_n_u8): Remove. >> (__arm_vsubq_m_n_u32): Remove. >> (__arm_vsubq_m_n_u16): Remove. >> (__arm_vsubq_x_s8): Remove. >> (__arm_vsubq_x_s16): Remove. >> (__arm_vsubq_x_s32): Remove. >> (__arm_vsubq_x_n_s8): Remove. >> (__arm_vsubq_x_n_s16): Remove. >> (__arm_vsubq_x_n_s32): Remove. >> (__arm_vsubq_x_u8): Remove. >> (__arm_vsubq_x_u16): Remove. >> (__arm_vsubq_x_u32): Remove. >> (__arm_vsubq_x_n_u8): Remove. >> (__arm_vsubq_x_n_u16): Remove. >> (__arm_vsubq_x_n_u32): Remove. >> (__arm_vsubq_n_f16): Remove. >> (__arm_vsubq_n_f32): Remove. >> (__arm_vsubq_f16): Remove. >> (__arm_vsubq_f32): Remove. >> (__arm_vsubq_m_f32): Remove. >> (__arm_vsubq_m_f16): Remove. >> (__arm_vsubq_m_n_f32): Remove. >> (__arm_vsubq_m_n_f16): Remove. >> (__arm_vsubq_x_f16): Remove. >> (__arm_vsubq_x_f32): Remove. >> (__arm_vsubq_x_n_f16): Remove. >> (__arm_vsubq_x_n_f32): Remove. >> (__arm_vsubq): Remove. >> (__arm_vsubq_m): Remove. >> (__arm_vsubq_x): Remove. >> * config/arm/arm_mve_builtins.def (vsubq_u, vsubq_s, vsubq_f): >> Remove. >> (vmulq_u, vmulq_s, vmulq_f): Remove. >> * config/arm/mve.md (mve_vsubq_): Remove. >> (mve_vmulq_): Remove. > > [snip] > >> diff --git a/gcc/config/arm/mve.md b/gcc/config/arm/mve.md >> index 5167fbc6add..ccb3cf23304 100644 >> --- a/gcc/config/arm/mve.md >> +++ b/gcc/config/arm/mve.md >> @@ -1353,18 +1353,6 @@ (define_insn "mve_vmulltq_int_" >> ;; [vmulq_u, vmulq_s]) >> ;; [vsubq_s, vsubq_u]) >> ;; >> -(define_insn "mve_vmulq_" >> - [ >> - (set (match_operand:MVE_2 0 "s_register_operand" "=w") >> - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" >> "w") >> - (match_operand:MVE_2 2 "s_register_operand" "w")] >> - VMULQ)) >> - ] >> - "TARGET_HAVE_MVE" >> - "vmul.i%#\t%q0, %q1, %q2" >> - [(set_attr "type" "mve_move") >> -]) >> - >> (define_insn "mve_q" >> [ >> (set (match_operand:MVE_2 0 "s_register_operand" "=w") >> @@ -1742,21 +1730,6 @@ (define_insn "mve_vshlq_r_" >> [(set_attr "type" "mve_move") >> ]) >> >> -;; >> -;; [vsubq_s, vsubq_u]) >> -;; >> -(define_insn "mve_vsubq_" >> - [ >> - (set (match_operand:MVE_2 0 "s_register_operand" "=w") >> - (unspec:MVE_2 [(match_operand:MVE_2 1 "s_register_operand" >> "w") >> - (match_operand:MVE_2 2 "s_register_operand" "w")] >> - VSUBQ)) >> - ] >> - "TARGET_HAVE_MVE" >> - "vsub.i%#\t%q0, %q1, %q2" >> - [(set_attr "type" "mve_move") >> -]) >> - > > Just to make sure I understand correctly, are these patterns being removed because the new builtins are wired through the factored patterns in patch [07/22]? > If so, ok. Yes. In patch 07/22, we introduce mve_q which uses standard RTX codes, instead of unspecs. With this patch 08/22, the builtins now rely on the RTX codes, so the unspec-based patterns as useless (as was already the case for "add"). Christophe > Thanks, > Kyrill > >> ;; >> ;; [vabdq_f]) >> ;; >> -- >> 2.34.1 >