From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2051.outbound.protection.outlook.com [40.107.7.51]) by sourceware.org (Postfix) with ESMTPS id ACC653858D1E for ; Tue, 2 May 2023 15:04:46 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ACC653858D1E 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=HvQx5gtFLD413nADH9VlTdCvxOnCslB1aBMuQ+D72CA=; b=1Q2+epFu2T5r7BljkVLlK4MSDiGMAwuG6ZBCS+TT3o05tOOil8EQfrOMhEOjlhwIhC8amAWHri+cAFWI5zg6wzSyCI5t6z61NXAS0EEggR+CmbYZMOfFTz+xS3PRpFEr9CY+2qboW/UlTOoDUbn93RrmimhCZXldJwrvf9btvpA= Received: from AM5PR1001CA0006.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:206:2::19) by DU0PR08MB9536.eurprd08.prod.outlook.com (2603:10a6:10:44c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.30; Tue, 2 May 2023 15:04:43 +0000 Received: from AM7EUR03FT063.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:2:cafe::ab) by AM5PR1001CA0006.outlook.office365.com (2603:10a6:206:2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.31 via Frontend Transport; Tue, 2 May 2023 15:04:43 +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 AM7EUR03FT063.mail.protection.outlook.com (100.127.140.221) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.20 via Frontend Transport; Tue, 2 May 2023 15:04:43 +0000 Received: ("Tessian outbound 99a3040377ca:v136"); Tue, 02 May 2023 15:04:43 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 88011ad9841f102b X-CR-MTA-TID: 64aa7808 Received: from 021c665fea71.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 42BE7BC9-FA26-41BD-8050-F70D46D80A07.1; Tue, 02 May 2023 15:04:32 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 021c665fea71.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 02 May 2023 15:04:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=N+ky51R+y2akLHpJyjUM3M++MINmSzBmhlXBepQ64M/UkOSl+F6t5n3RUIo+97dQ+4aff65oj2yTLZsYGAPagixiFbFvFVd5ok3fKlMm12w+MKSl7CZMFd58cijG9ig+OmV7M4h2mj56jaVfyJfgShlgrapleWx/527ZBnQpBhwxUV0wlvHqp56wNftgRZe3ik0iuraOGTHtG4CYKFczivWAZr0j8Pvw10qagWpR/7sdOVZhzTYib0jExdVJ6BRTMC4JbkpHjbHkCPQSylaeE978zga4YtWWt5ZYEMmTApvifZbpf01XNhFhYCzAKHMrhHQdZ02FlpJkmEKaZoq0Mg== 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=HvQx5gtFLD413nADH9VlTdCvxOnCslB1aBMuQ+D72CA=; b=QyCoNiUcAY8b+lrU5eEAACL9vtQxaQqYMUBSYYOxBcHKoE4K4ucwDRRMSHyEDf3iKCFgindfbgi/SlCR9b/bhhUGae46l8PAnHiqKZNNP279lgDrnfvQlXvQ25uBCsWcWDjzWLAiiCkeYWlhfem8C+lShFwIYXispZdgXQ+SW8tnDMG+a0pGR8DmX8vn5KI26HXWpUwQQoKuER8jyIih19EHbYI9vO6lZYCuX31Y95I4X8dfDQrVkiGegGzd7rAG7DJh3TyOyZO0HXHVuSFMjDOXYRW2HsnT38JnvgwfUcLT8TMr9C8EBcnw8TE9VensynRzAFq7MYktHsWUxY1sWg== 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=HvQx5gtFLD413nADH9VlTdCvxOnCslB1aBMuQ+D72CA=; b=1Q2+epFu2T5r7BljkVLlK4MSDiGMAwuG6ZBCS+TT3o05tOOil8EQfrOMhEOjlhwIhC8amAWHri+cAFWI5zg6wzSyCI5t6z61NXAS0EEggR+CmbYZMOfFTz+xS3PRpFEr9CY+2qboW/UlTOoDUbn93RrmimhCZXldJwrvf9btvpA= 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 DU0PR08MB9582.eurprd08.prod.outlook.com (2603:10a6:10:44a::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.26; Tue, 2 May 2023 15:04:27 +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; Tue, 2 May 2023 15:04:27 +0000 Message-ID: <3ae3da58-0cdd-3657-8a7f-00c08c3b1e54@arm.com> Date: Tue, 2 May 2023 17:04:28 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH 00/22] arm: New framework for MVE intrinsics Content-Language: en-US To: Kyrylo Tkachov , "gcc-patches@gcc.gnu.org" , Richard Earnshaw , Richard Sandiford References: <20230418134608.244751-1-christophe.lyon@arm.com> From: Christophe Lyon In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO2P123CA0104.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::19) To VI1PR08MB3390.eurprd08.prod.outlook.com (2603:10a6:803:7d::27) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: VI1PR08MB3390:EE_|DU0PR08MB9582:EE_|AM7EUR03FT063:EE_|DU0PR08MB9536:EE_ X-MS-Office365-Filtering-Correlation-Id: a64b5f30-8d20-4a56-b759-08db4b1e8fb0 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: YBfeELsMqOmAK1Wzw9njNp13u2B0dxyq4lMu/DbSQShB3fkd8JdyVs073lULN7yOhd0A1hiolwxF2Y7fU7oOPQPVzAir2pR/Wc23pHRYhi28nYBJ7DBHjXyx74ayC2+98aZe/y9ET0a3Zdodp8BbpBqgQjEaMgDEkXiDKSKm2iMQy2dfHZFrQ6okIyvHibBJuZCkT5MhagW3SEWEu/y2yW6vd9nsl86o0b4JhVQ0ozNeuooM1oCQcWjTyCsRFsx5h/3qFQG6xMZnm2BH0jjkO6mvC1L6pwuV5WSwIqumwrKgd/SDujgfmyh+flabKZPAw458F5cG1zJhK6KNnG1Bd+EQxbY5wqYZu+pjssgtfuUHWWOMc0UVE9w48pMXSTXeLI7bW9fQ4/uWlMon9dBKfer8udptN9fnrWnWazUqcvSNk4A/3ZGuQ37yyN7xu7JNOGV3p+I7nmdapE8EfkhpLYhPJp/ruyYQiLQOt2OuEvN9+PJ/W7tnH/KMBZfa8wyppzCHV6eJOgrZHwU6zfHPMMf0MpCAaOtyFvVmdsJTRXrwELiiH1Q+bmyL5tXa60FSfkJhUftMDh2+D/2eJZYpaERaUklhWNdb8UgVRW4NWTRKVBYup/45JCjF5h9/j6cY 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)(136003)(39860400002)(366004)(396003)(346002)(376002)(451199021)(478600001)(316002)(66556008)(41300700001)(66946007)(66476007)(5660300002)(8936002)(2906002)(44832011)(8676002)(6636002)(110136005)(6506007)(66899021)(6512007)(53546011)(38100700002)(83380400001)(2616005)(31686004)(31696002)(86362001)(6486002)(36756003)(26005)(186003)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9582 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: AM7EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: a5f038d2-0f38-45c4-521e-08db4b1e85ec X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Uu6dEjWOxCQG8xDTig1UonxjK/a++nrfrnmMGhdyQWOnX8J+l4j6k10BnFvPkudyRBmRFoQX5XXLg6glnm7lZbI9djDwK4Dd6kPvPdp9jFMfQapih7Zf0vj0pqiwW9wziu5NUvXV+rBCcxwJZZn5BTzpzdbCf8QP72PUgOWQMLC1wgjhq3FwX287zV8K3B2TgTjA2R5aMuEWsPhiiWmone6y7YVR+1uLyHgXrohynIObEcXImO4CiBBCutwcv5O0G1d+uHebIP+oEtk35ALnh6HEiMW358FDy2Lq4VZwZzrumkuWWn0mjnzaZ+ST32u0wBM7IqboZogOYGcDbgigB15aznZpWJcexjb+QfO4H3FqiywWFo+PYILHOsNWgDQXz7gpVSJi8bULjWYUhNV58ZD/6YZb/52kvJPUboHk1Quo6ExeJqcpFnm9CiCEQ6skr0hJa0F4uFbMHqtSieBbZmumqs/WzYlcREFqvY1JiIgnJ29f0LmEYXV2mQkDeSHtAzqnkLB2WP4D67SqZlDxn69BSdKJoUaPiF7NQX96ZB+MFzodiWkJ8zkw7ayrdKhc38a+iLPdgrWg2CSI4Z3tS84R+YkDtpfiyMDiDn5no3fncMQ7Ufl41E4GX0s/qp1tMGsJVEoKaTI1KOtDvOqmgfOZ4RCYDqBvGrA01Jvq8lx/7Y1rRmRhc2+Pkc/IHGeyIJDTSrRtKxF9J6EDziaua0M3fdMuN37LIuHw5+Kl54+VE6s0+iNJu/yKnWxl4vhs 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)(376002)(136003)(396003)(451199021)(36840700001)(40470700004)(46966006)(2616005)(83380400001)(478600001)(36860700001)(186003)(31686004)(6636002)(70586007)(70206006)(110136005)(26005)(47076005)(53546011)(6486002)(6512007)(336012)(6506007)(44832011)(316002)(34020700004)(66899021)(8676002)(40460700003)(82740400003)(8936002)(5660300002)(356005)(41300700001)(2906002)(40480700001)(81166007)(82310400005)(86362001)(31696002)(36756003)(43740500002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 May 2023 15:04:43.3944 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a64b5f30-8d20-4a56-b759-08db4b1e8fb0 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: AM7EUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9536 X-Spam-Status: No, score=-7.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,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 11:18, Kyrylo Tkachov wrote: > Hi Christophe, > >> -----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 00/22] arm: New framework for MVE intrinsics >> >> Hi, >> >> This is the beginning of a long patch series to change the way Arm MVE >> intrinsics are implemented. The goal is to get rid of arm_mve.h, which >> takes a long time to parse and compile. >> > > Thanks for doing this. It is a significant improvement to the MVE intrinsics and should address some of the biggest maintainability and scalability issues we have in that area. > I'll be going through the patches one-by-one (I've looked at these offline already before), but the approach looks good to me at a high level. > > My hope is that we'll move all the intrinsics, including the Neon ones to use this framework in the future, but getting the framework in place first is a good major first step in that direction. > Indeed. Ideally we'd probably want to make this framework more generic so that it supports aarch64 SVE, arm MVE and Neon, but that can be done later. I tried to highlight the differences I noticed compared to SVE, so that it helps us think what needs to be specialized for different targets, as opposed to what is already generic enough. Thanks, Christophe > Thanks, > Kyrill > >> Roughly speaking, it's about using a framework very similar to what is >> implemented for AArch64/SVE intrinsics. I haven't converted all the >> intrinsics yet, but I think it would be good to start the conversion >> when stage-1 reopens. >> >> * Factorizing names >> One of the main implementation differences I noticed between SVE and >> MVE is that mve.md provides only full builtin names at the moment, and >> makes almost no use of "parameterized names" >> (https://gcc.gnu.org/onlinedocs/gccint/Parameterized- >> Names.html#Parameterized-Names). >> >> Without this, we'd need the builtin expander to use a large >> switch/case of the form: >> >> switch (code) >> case VADDQ_S: insn_code = code_for_mve_vaddq_s (...) >> case VADDQ_U: insn_code = code_for_mve_vaddq_u (...) >> case VSUBQ_S: insn_code = code_for_mve_vsubq_s (...) >> case VSUBQ_U: insn_code = code_for_mve_vsubq_u (...) >> .... >> >> so part of the work (which I called "factorize" in the commit >> messages) is about replacing >> >> (define_insn "mve_vaddq_n_" >> with >> (define_insn "@mve_q_n_" >> with the help of a new iterator (mve_insn). >> >> Doing so makes it more obvious that some patterns are identical, >> except for the instruction name. I took this opportunity to merge >> them, so for instance I have a patch which merges add, sub and mul >> patterns. Although not strictly necessary for the MVE intrinsics >> restructuring work, this is a good opportunity to reduce such code >> duplication (I did notice a few bugs during that process, which led me >> to post a few small patches in the past months). Note that identical >> patterns will probably remain after the series, they can be merged >> later if we want. >> >> This factorization also implies the introduction of new iterators, but >> also means that several existing ones become useless. These patches do >> not remove them because it's a bit painful to reorder patches which >> remove lines at some "random" places, leading to merge conflicts. It's >> much simpler to write a big cleanup patch at the end of the serie to >> remove all such useless iterators at once. >> >> * Intrinsic re-implementation >> After intrinsic names have been factorized, the actual >> re-implementation patch is small: >> - add 1 line in each of arm-mve-builtins-base.{cc,def,h} describing >> the intrinsic shape/signature, types and predicates involved, >> RTX/unspec codes >> - remove the intrinsic definitions from arm_mve.h >> >> The full series of ~140 patches is organized like this: >> - patches 1 and 2 introduce the new framework >> - new implementation of vreinterpretq >> - new implementation of vuninitialized >> - patch groups of varying size, consisting in: >> - add a new "shape" if needed (e.g. unary, binary, ternary, ....) >> - add framework support functions if needed >> - factorize a set of intrinsics (at minimum, just make use of >> parameterized-names) >> - actual re-implementation of the intrinsics >> >> I kept patches small so the incremental progress is easy to follow and >> check. I'll submit the patches in small groups, this first one will >> make sure we agree on the implementation. >> >> Tested on arm-eabi with -mthumb/-mfloat-abi=hard/-march=armv8.1- >> m.main+mve. >> >> To help reviewers, I suggest to compare arm-mve-builtins.cc with >> aarch64-sve-builtins.cc. >> >> Christophe Lyon (22): >> arm: move builtin function codes into general numberspace >> arm: [MVE intrinsics] Add new framework >> arm: [MVE intrinsics] Rework vreinterpretq >> arm: [MVE intrinsics] Rework vuninitialized >> arm: [MVE intrinsics] add binary_opt_n shape >> arm: [MVE intrinsics] add unspec_based_mve_function_exact_insn >> arm: [MVE intrinsics] factorize vadd vsubq vmulq >> arm: [MVE intrinsics] rework vaddq vmulq vsubq >> arm: [MVE intrinsics] add binary shape >> arm: [MVE intrinsics] factorize vandq veorq vorrq vbicq >> arm: [MVE intrinsics] rework vandq veorq >> arm: [MVE intrinsics] add binary_orrq shape >> arm: [MVE intrinsics] rework vorrq >> arm: [MVE intrinsics] add unspec_mve_function_exact_insn >> arm: [MVE intrinsics] add create shape >> arm: [MVE intrinsics] factorize vcreateq >> arm: [MVE intrinsics] rework vcreateq >> arm: [MVE intrinsics] factorize several binary_m operations >> arm: [MVE intrinsics] factorize several binary _n operations >> arm: [MVE intrinsics] factorize several binary _m_n operations >> arm: [MVE intrinsics] factorize several binary operations >> arm: [MVE intrinsics] rework vhaddq vhsubq vmulhq vqaddq vqsubq >> vqdmulhq vrhaddq vrmulhq >> >> gcc/config.gcc | 2 +- >> gcc/config/arm/arm-builtins.cc | 237 +- >> gcc/config/arm/arm-builtins.h | 1 + >> gcc/config/arm/arm-c.cc | 42 +- >> gcc/config/arm/arm-mve-builtins-base.cc | 163 + >> gcc/config/arm/arm-mve-builtins-base.def | 50 + >> gcc/config/arm/arm-mve-builtins-base.h | 47 + >> gcc/config/arm/arm-mve-builtins-functions.h | 387 + >> gcc/config/arm/arm-mve-builtins-shapes.cc | 529 ++ >> gcc/config/arm/arm-mve-builtins-shapes.h | 47 + >> gcc/config/arm/arm-mve-builtins.cc | 2013 ++++- >> gcc/config/arm/arm-mve-builtins.def | 40 +- >> gcc/config/arm/arm-mve-builtins.h | 672 +- >> gcc/config/arm/arm-protos.h | 24 + >> gcc/config/arm/arm.cc | 27 + >> gcc/config/arm/arm_mve.h | 7581 +---------------- >> gcc/config/arm/arm_mve_builtins.def | 6 - >> gcc/config/arm/arm_mve_types.h | 1430 ---- >> gcc/config/arm/iterators.md | 240 +- >> gcc/config/arm/mve.md | 1747 +--- >> gcc/config/arm/predicates.md | 4 + >> gcc/config/arm/t-arm | 32 +- >> gcc/config/arm/unspecs.md | 1 + >> gcc/config/arm/vec-common.md | 8 +- >> gcc/testsuite/g++.target/arm/mve.exp | 8 +- >> .../arm/mve/general-c++/nomve_fp_1.c | 15 + >> .../arm/mve/general-c++/vreinterpretq_1.C | 25 + >> .../gcc.target/arm/mve/general-c/nomve_fp_1.c | 15 + >> .../arm/mve/general-c/vreinterpretq_1.c | 25 + >> 29 files changed, 4926 insertions(+), 10492 deletions(-) >> create mode 100644 gcc/config/arm/arm-mve-builtins-base.cc >> create mode 100644 gcc/config/arm/arm-mve-builtins-base.def >> create mode 100644 gcc/config/arm/arm-mve-builtins-base.h >> create mode 100644 gcc/config/arm/arm-mve-builtins-functions.h >> create mode 100644 gcc/config/arm/arm-mve-builtins-shapes.cc >> create mode 100644 gcc/config/arm/arm-mve-builtins-shapes.h >> create mode 100644 gcc/testsuite/g++.target/arm/mve/general- >> c++/nomve_fp_1.c >> create mode 100644 gcc/testsuite/g++.target/arm/mve/general- >> c++/vreinterpretq_1.C >> create mode 100644 gcc/testsuite/gcc.target/arm/mve/general- >> c/nomve_fp_1.c >> create mode 100644 gcc/testsuite/gcc.target/arm/mve/general- >> c/vreinterpretq_1.c >> >> -- >> 2.34.1 >