From patchwork Wed May 3 12:34:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stamatis Markianos-Wright X-Patchwork-Id: 89738 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1292734vqo; Wed, 3 May 2023 05:36:26 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5M+TKailTi/YZNt+5PVZ1as9Ex0ZMFpzmo+tkYbHc9vEOBJRQsdZLw/4mHr0bYU1rsIM5x X-Received: by 2002:a17:906:dac5:b0:965:6603:34fa with SMTP id xi5-20020a170906dac500b00965660334famr1186151ejb.12.1683117385749; Wed, 03 May 2023 05:36:25 -0700 (PDT) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id gx4-20020a1709068a4400b0095ec56a5f14si14641135ejc.370.2023.05.03.05.36.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 May 2023 05:36:25 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=p27y+DVr; arc=fail (signature failed); spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EF893385701C for ; Wed, 3 May 2023 12:36:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EF893385701C DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1683117384; bh=W7fhOEcF0VGS9ep5I6gfa9PDA02ja7LFo9GXdMLOYOc=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=p27y+DVrx6HMU3CL4ijcdr/H0kUOf8eVKLapIRPcGkkZ81kE86oVnHKPaK0Qte6Cg 3Z7cvK3p94D4DGRx8gHvmyW7WMcR+SAIwg47U9RpBm/kNTGgOZjwVSIOSF4/LRvjVc 6+FJhQKvJgNBVeX+7oO9XaUCah3OGbI+b5orLAPA= 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-am6eur05on2073.outbound.protection.outlook.com [40.107.22.73]) by sourceware.org (Postfix) with ESMTPS id 0E7323858D28 for ; Wed, 3 May 2023 12:35:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0E7323858D28 Received: from DB6P195CA0010.EURP195.PROD.OUTLOOK.COM (2603:10a6:4:cb::20) by VI1PR08MB10273.eurprd08.prod.outlook.com (2603:10a6:800:1be::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.21; Wed, 3 May 2023 12:35:28 +0000 Received: from DBAEUR03FT063.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:cb:cafe::11) by DB6P195CA0010.outlook.office365.com (2603:10a6:4:cb::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6340.31 via Frontend Transport; Wed, 3 May 2023 12:35:28 +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 DBAEUR03FT063.mail.protection.outlook.com (100.127.142.255) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6363.18 via Frontend Transport; Wed, 3 May 2023 12:35:27 +0000 Received: ("Tessian outbound 5154e9d36775:v136"); Wed, 03 May 2023 12:35:27 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 96d72354d323b7e0 X-CR-MTA-TID: 64aa7808 Received: from de6a795f819e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 1740929E-FA6C-41BD-B235-3B6851FB3594.1; Wed, 03 May 2023 12:35:16 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id de6a795f819e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 03 May 2023 12:35:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gPAtDQLSu5flZd0Zr8s33BjXo44uWqEnoCAw4ZwSBAzzYzGMECN2YRkJjJOpVrslPDfrHgY7dZKCAL/9e9cU7WLLjG4V+DrPwf8jO0MIte4+Ie2ktxU3PdbT6qOgbQyMRB3TylLGn8wV2NDgmdBKCWPrNbLePWZiOADA9XOudUvPIfRZrzDZuFgKPO9GDuNaEJoQe038TxoKDAt0ryazePj5uCt9Bvrvd7eCzkSlDGazJdV0R5f/fqBYPzegsBLEdnsrOASWmtJ2fojVZz8z9ESJ+8Jmtfo0g9TnSh46YmhOy8vmr5rTtUuEOfnrljjGL5hjT1u2BACvIHcbHtiMbA== 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=W7fhOEcF0VGS9ep5I6gfa9PDA02ja7LFo9GXdMLOYOc=; b=IJLBSPPnef50BjBVdWsZ0/PotDR3tmCbd1Un0SYnHOLq7i470gzqg5vacyI+BZQC7yoUcufjTeFboAJfLHhB9lAK3jkxJY92njFroTC1wP/00igfTWQlqPpgMr3CSi62pmRAASd/O+EBQ03cWi9F+SX5Vd8e6exnSdyHpfm9XA+V9HhwkKw5SueNKAkEs7WQ3hYJH2YETNqyQXz6zLkBLEnE50v/2lUT519ajs/FIoFyLeNnr78hjHKX20ncmVay6+z1GFSyWoJGbn6zsR4dWPTgxwqYmmPbX66QbmB6YCj3CTLgud9yLgdRjjrwq3j/ovYumrr6mxqN+im8hI82Qw== 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 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB6507.eurprd08.prod.outlook.com (2603:10a6:10:25a::6) by DU2PR08MB10106.eurprd08.prod.outlook.com (2603:10a6:10:46d::19) 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 12:35:11 +0000 Received: from DB9PR08MB6507.eurprd08.prod.outlook.com ([fe80::9f9c:a12a:8291:5530]) by DB9PR08MB6507.eurprd08.prod.outlook.com ([fe80::9f9c:a12a:8291:5530%5]) with mapi id 15.20.6363.021; Wed, 3 May 2023 12:35:11 +0000 Message-ID: <25eeca56-2d5e-07f6-704f-7163faebb5b1@arm.com> Date: Wed, 3 May 2023 13:34:38 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0 Subject: [PATCH 10/10] arm testsuite: Shifts and get_FPSCR ACLE optimisation fixes Content-Language: en-US To: Kyrylo Tkachov , Andrea Corallo , "gcc-patches@gcc.gnu.org" Cc: Richard Earnshaw References: <20230428113002.482343-1-andrea.corallo@arm.com> <20230428113002.482343-10-andrea.corallo@arm.com> In-Reply-To: X-ClientProxiedBy: SN1PR12CA0077.namprd12.prod.outlook.com (2603:10b6:802:20::48) To DB9PR08MB6507.eurprd08.prod.outlook.com (2603:10a6:10:25a::6) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB6507:EE_|DU2PR08MB10106:EE_|DBAEUR03FT063:EE_|VI1PR08MB10273:EE_ X-MS-Office365-Filtering-Correlation-Id: df9fc352-2c0b-4797-e56d-08db4bd2e009 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: klSSdW9ASkmun98fDyi9zvYe7XfUgJG5Ucua8NGQImdd8X7PPngv1CoOvvtKmCANKdVJKX8uEwtGQUpmg9EMDvymYiRYNSysfxnoUFe7VgdA7R7f0W77PkeFF8fUzaiE1TE9WigtIh9PLOn/X0gMZprYuWk1lm3o0dPv83Ppgit3iPfMIovqftzdrBDdO3vjNUHp+HW919cR5Nq9y7o7qVqoRVuW1/t+8wgZnyFzONcqZgBFSAMmVs4W05GFGCEhwZf2OZYxz3PXOKKubUY2qo8iZelCNQEUl3YVvwSWqafjl0rv7KcSUnGW4gxjG/v+Fs2CqINSRMu8Rd8Ox8XkZacNzDg0m7CtdukyQt/p+GNvfCV02/1rGkYiU8IWKc5YVHakYL1DkUlVHzhRg2wGBae1Vk/NOgGrYktBhl+5cJgkJ/7M248VuCLMi7/vakMkl4QE8rJfw5fAEU235MkKQGiDqYuu4cOeLQVb/l6KszPqRC7phjLLvQPyxViAaX42nMfi0uxPKPeToQitRPZIBaFMWFu+IBMetJas9uGussNiz+qCKVf6AqIcX6Qfm6JAJRWE0SegVSH9SnU+6kQyW70x0Hhmm0WuNP2u0saCzCGUVUp63moH1ZNiBPJslflbzNQufQdm5uBvrnZBtRIU6k6gDx4gigYqzZ03sHHFIbewek4ixxct70CBSUJKFnfZ X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6507.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(346002)(366004)(39850400004)(136003)(376002)(396003)(451199021)(41300700001)(478600001)(66946007)(66556008)(4326008)(66476007)(53546011)(316002)(110136005)(66899021)(6666004)(84970400001)(31686004)(6486002)(33964004)(8936002)(235185007)(86362001)(31696002)(38100700002)(5660300002)(6512007)(6506007)(26005)(2906002)(2616005)(30864003)(8676002)(83380400001)(186003)(36756003)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR08MB10106 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: DBAEUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: f96be85d-b34a-4050-0928-08db4bd2d60b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: eWazzNnBGGT//cbFbvUWZXAXUKmC7SYSDlUmR/pYZgcwvtyM+TIGZZWin2llGgM846ndRUW10mt8L2aj1Y0K76UA3RVdvGIEWP0N7Wqgy2YABc8Jzd6Fdjn+zo4LzwWhZ3e9OrBdEFB5YZMaH+F21sN9N6eaqi8L1O+x3VlfLUMtgwwt7NieXiu2ecD01oi0H+3xvzZfax1xMe7lFbKWDCxB9AHCNZfqNlFEPGqI7OOkcSQnLXlfs9J/ArP2FsJ0T/GFUQwm70elNFH0zWoDboouBqpSyuC3dho/ga1KRIbd6fkyiKRhipNkm3hOS5hTegRA8gpKO4svUUUxvE3aCDBWCTm1pkMuglPKFZeQxVQFYgprTNSB4AaFZytAa0MxTrbsSysoCzjSh8iDJeIH2FhCxuxXV1RhO9qXwM7dbGDS25iCpSd1cYEU/6doQYhGzzA0fy7hgxsPH1aaCTeoh/EUHc8sBu9phnOrxdg0LbLDWhLWQrfTFyyvzW4VZi0jR3qhQ3KcWPApUqIQg2q09WpFJkkIKuJvd0HPDjjm3d4RAkeRAlH+8i/rr8ACLfPHasJpU6cfSuJri3EoXsAEUnxYxSrUcLewrBfgVLOGOEY5fNltVi/vwCXsVTGipw1VKDpQyqmd6eIYvMlMpw/mwOLw1mgPueukuCqA7qinNheqFzkCrwjyQzOOOeRe70GLXPjLJTNPGoi6/F0AwF8XGANs939WaY++OGSPJF4fkDSneQTzAZt+/NxcJTUGbv3JGhOR4XzlWWfUN6NbSFx5PuZOzsetwAWpsukL07vAppw= 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)(39850400004)(396003)(136003)(346002)(376002)(451199021)(40470700004)(46966006)(36840700001)(31696002)(36756003)(86362001)(33964004)(110136005)(316002)(4326008)(70206006)(70586007)(6486002)(6666004)(478600001)(40480700001)(82310400005)(8936002)(235185007)(41300700001)(8676002)(5660300002)(30864003)(2906002)(82740400003)(34020700004)(81166007)(356005)(186003)(2616005)(53546011)(6512007)(36860700001)(26005)(6506007)(336012)(83380400001)(47076005)(66899021)(31686004)(84970400001)(40460700003)(43740500002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2023 12:35:27.6861 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: df9fc352-2c0b-4797-e56d-08db4bd2e009 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: DBAEUR03FT063.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10273 X-Spam-Status: No, score=-12.6 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, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Stamatis Markianos-Wright via Gcc-patches From: Stamatis Markianos-Wright Reply-To: Stamatis Markianos-Wright Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1764419763618640939?= X-GMAIL-MSGID: =?utf-8?q?1764876496001564180?= Hi Kyrill, On 28/04/2023 17:58, Kyrylo Tkachov wrote: > >> -----Original Message----- >> From: Andrea Corallo >> Sent: Friday, April 28, 2023 12:30 PM >> To: gcc-patches@gcc.gnu.org >> Cc: Kyrylo Tkachov ; Richard Earnshaw >> ; Stam Markianos-Wright > Wright@arm.com> >> Subject: [PATCH 10/10] arm testsuite: Shifts and get_FPSCR ACLE optimisation >> fixes >> >> From: Stam Markianos-Wright >> >> These newly updated tests were rewritten by Andrea. Some of them >> needed further manual fixing as follows: >> >> * The #shift immediate value not in the check-function-bodies as expected >> * Some shifts getting optimised to mov immediates, e.g. >> `uqshll (1, 1);` -> movs r0, #2; movs r1, #0 > Shouldn't this test be testing something that cannot be constant-folded away? i.e. have non-constant arguments? > I think we should have conformance tests first and foremost, and follow-up tests for such optimisations should be (welcome) added separately. Ahh, good point! I think in that case I've removed these checks from here and put them into a new test (it's a bit trivial but I couldn't find anywhere else where we doing this check with MVE instructions) Also, since this patch is the last one in this series, would the series be Ok for backporting to GCC13? Thank you! Stam > >> * The ACLE was specifying sub-optimal code: lsr+and instead of ubfx. In >> this case the test rewritten from the ACLE had the lsr+and pattern, >> but the compiler was able to optimise to ubfx. Hence I've changed the >> test to now match on ubfx. > That looks ok. > Thanks, > Kyrill > >> gcc/testsuite/ChangeLog: >> >> * gcc.target/arm/mve/intrinsics/srshr.c: Update shift value. >> * gcc.target/arm/mve/intrinsics/srshrl.c: Update shift value. >> * gcc.target/arm/mve/intrinsics/uqshl.c: Update shift value and mov >> imm. >> * gcc.target/arm/mve/intrinsics/uqshll.c: Update shift value and mov >> imm. >> * gcc.target/arm/mve/intrinsics/urshr.c: Update shift value. >> * gcc.target/arm/mve/intrinsics/urshrl.c: Update shift value. >> * gcc.target/arm/mve/intrinsics/vadciq_m_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadciq_m_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadciq_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadciq_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadcq_m_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadcq_m_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadcq_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vadcq_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbciq_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbciq_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbcq_s32.c: Update to ubfx. >> * gcc.target/arm/mve/intrinsics/vsbcq_u32.c: Update to ubfx. >> --- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c | 2 +- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c | 2 +- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c | 4 ++-- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c | 5 +++-- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c | 4 ++-- >> gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c | 4 ++-- >> .../gcc.target/arm/mve/intrinsics/vadciq_m_s32.c | 8 ++------ >> .../gcc.target/arm/mve/intrinsics/vadciq_m_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c | 8 ++------ >> .../gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c | 8 ++------ >> .../gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c | 8 ++------ >> gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c | 8 ++------ >> 22 files changed, 43 insertions(+), 106 deletions(-) >> >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c >> index 94e3f42fd33..734375d58c0 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** srshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** srshr (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> int32_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c >> index 65f28ccbfde..a91943c38a0 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** srshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** srshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> int64_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c >> index b23c9d97ba6..58aa7a61e42 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** uqshl (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** uqshl (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint32_t >> @@ -24,7 +24,7 @@ foo (uint32_t value) >> /* >> **foo1: >> ** ... >> -** uqshl (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** movs r0, #2 >> ** ... >> */ >> uint32_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c >> index 6a3d08eea75..5584544aaf7 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint64_t >> @@ -24,7 +24,8 @@ foo (uint64_t value) >> /* >> **foo1: >> ** ... >> -** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** movs r0, #2 >> +** movs r1, #0 >> ** ... >> */ >> uint64_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c >> index 23afcb8da4c..ff97bf5c473 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** urshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** urshr (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint32_t >> @@ -24,7 +24,7 @@ foo (uint32_t value) >> /* >> **foo1: >> ** ... >> -** urshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** urshr (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint32_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c >> index 8014371f47f..ff6a69d300f 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c >> @@ -12,7 +12,7 @@ extern "C" { >> /* >> **foo: >> ** ... >> -** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint64_t >> @@ -24,7 +24,7 @@ foo (uint64_t value) >> /* >> **foo1: >> ** ... >> -** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) >> +** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) >> ** ... >> */ >> uint64_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c >> index b262bf94d39..a6a059a19e9 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c >> @@ -20,9 +20,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -43,9 +41,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, >> unsigned *carry_out, mve_pred >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c >> index d349caed36a..942111339f0 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c >> @@ -20,9 +20,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -43,9 +41,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, >> unsigned *carry_out, mve_p >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c >> index 5166993a355..3b68bb6ac33 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c >> @@ -16,9 +16,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -35,9 +33,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry_out) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c >> index 080bd61d238..82228491043 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c >> @@ -16,9 +16,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -35,9 +33,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry_out) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c >> index 45e6ff03623..0d4cb779254 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c >> @@ -26,9 +26,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -55,9 +53,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, >> unsigned *carry, mve_pred16_t >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c >> index 54f141b2093..a0ba6825d8c 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c >> @@ -26,9 +26,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -55,9 +53,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, >> unsigned *carry, mve_pred1 >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c >> index 06d5bae09da..47f5f22dde9 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c >> @@ -22,9 +22,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -47,9 +45,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c >> index e2111cfd16a..55a961be217 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c >> @@ -22,9 +22,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -47,9 +45,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c >> index 66a5c4c9da3..dcbaef1a571 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c >> @@ -20,9 +20,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -43,9 +41,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, >> unsigned *carry_out, mve_pred >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c >> index 9306f152cde..08f67f665c1 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c >> @@ -20,9 +20,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -43,9 +41,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, >> unsigned *carry_out, mve_p >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c >> index 0b5040f0b2a..803246c3235 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c >> @@ -16,9 +16,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -35,9 +33,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry_out) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c >> index df211a64daa..22d2b4355bc 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c >> @@ -16,9 +16,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -35,9 +33,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry_out) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c >> index 217cfa7ac21..7a332610c69 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c >> @@ -26,9 +26,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -55,9 +53,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, >> unsigned *carry, mve_pred16_t >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c >> index dad04d05d68..60902196502 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c >> @@ -26,9 +26,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -55,9 +53,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, >> unsigned *carry, mve_pred1 >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c >> index cd033640bcc..523fa32ee0d 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c >> @@ -22,9 +22,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> @@ -47,9 +45,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> int32x4_t >> diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c >> b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c >> index 6ca0c753b5e..ff720fd2df5 100644 >> --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c >> +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c >> @@ -22,9 +22,7 @@ extern "C" { >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> @@ -47,9 +45,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry) >> ** ... >> ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) >> ** ... >> -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) >> -** ... >> -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) >> +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) >> ** ... >> */ >> uint32x4_t >> -- >> 2.25.1 diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c index 94e3f42fd33aaf981c0b4bc1296e41f20346705e..734375d58c0664eb8c58a5a53f180bf9ebd74c9f 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshr.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** srshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** srshr (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ int32_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c index 65f28ccbfdea445b3249b7c8ada9922e89b059da..a91943c38a017e2e26583d80f8e8665b54ed015e 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/srshrl.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** srshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** srshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ int64_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c index b23c9d97ba653af798f76f9e8e68968b7c75d074..462531cad54e5bfe21e8a5cbd72ef41200a2399b 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshl.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** uqshl (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** uqshl (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint32_t @@ -21,18 +21,6 @@ foo (uint32_t value) return uqshl (value, 1); } -/* -**foo1: -** ... -** uqshl (?:ip|fp|r[0-9]+), #shift(?: @.*|) -** ... -*/ -uint32_t -foo1 () -{ - return uqshl (1, 1); -} - #ifdef __cplusplus } #endif diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c index 6a3d08eea756afeed57be09b8f2f70dbb3275ac6..6fa97a561e317b7e1dfa11d0ef7f0fdd7ec3b5ee 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/uqshll.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint64_t @@ -21,18 +21,6 @@ foo (uint64_t value) return uqshll (value, 1); } -/* -**foo1: -** ... -** uqshll (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) -** ... -*/ -uint64_t -foo1 () -{ - return uqshll (1, 1); -} - #ifdef __cplusplus } #endif diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c index 23afcb8da4c407429fd25c5bfb252e5dbe3ed570..ff97bf5c473bf169c9028eaf7b23f0bcb6a980b6 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshr.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** urshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** urshr (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint32_t @@ -24,7 +24,7 @@ foo (uint32_t value) /* **foo1: ** ... -** urshr (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** urshr (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint32_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c index 8014371f47fa8d134d240ebca72d9500978cbbe4..ff6a69d300fa64782777f9952d81edf45e115664 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/urshrl.c @@ -12,7 +12,7 @@ extern "C" { /* **foo: ** ... -** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint64_t @@ -24,7 +24,7 @@ foo (uint64_t value) /* **foo1: ** ... -** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #shift(?: @.*|) +** urshrl (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #1(?: @.*|) ** ... */ uint64_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c index b262bf94d39315a18af4098cfcb2cebc0acf9338..a6a059a19e959c8e3855f0596bdad4d694fcb391 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_s32.c @@ -20,9 +20,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -43,9 +41,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, unsigned *carry_out, mve_pred ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c index d349caed36ac1ed5d830dbad09c84d301840cfb9..942111339f0debdd42c1962f3892f1a8e07af2de 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_m_u32.c @@ -20,9 +20,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -43,9 +41,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, unsigned *carry_out, mve_p ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c index 5166993a3555858f5cf8c98a78f2641d5eb96533..3b68bb6ac33eabd0d2f825f5c7728740b8935dd5 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_s32.c @@ -16,9 +16,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -35,9 +33,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry_out) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c index 080bd61d23852bc5786691646223e0500ec31e13..82228491043202273e1254ef3e694cbf2d731735 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadciq_u32.c @@ -16,9 +16,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -35,9 +33,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry_out) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c index 45e6ff03623c41e6489596866d00af30a4d2f7e2..0d4cb779254982b760d3ae91227df2b8e700459f 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_s32.c @@ -26,9 +26,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -55,9 +53,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, unsigned *carry, mve_pred16_t ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c index 54f141b20931e9efc86224bc90f0af0c38306eec..a0ba6825d8c978fa3814e93c5b160fef59b3ea75 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_m_u32.c @@ -26,9 +26,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -55,9 +53,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, unsigned *carry, mve_pred1 ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c index 06d5bae09da518c35933aa526ad8d8d71ea5445a..47f5f22dde935ca0ef1ae592e6ff40b07affb616 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_s32.c @@ -22,9 +22,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -47,9 +45,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c index e2111cfd16aeff466376547bc169bf09b61338ae..55a961be2178b5bc2321321e3140b1dcb1c7de50 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vadcq_u32.c @@ -22,9 +22,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -47,9 +45,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c index 66a5c4c9da3e3d1fb1be8db264a3ab45f0cc1c05..dcbaef1a5717cdce8fe6ee7b715f0346c13bbde0 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_s32.c @@ -20,9 +20,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -43,9 +41,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, unsigned *carry_out, mve_pred ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c index 9306f152cdeb0c9daba19b3e3855ddcd3d9f83aa..08f67f665c1c2137ad948b4c077540d4e394cf6d 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_m_u32.c @@ -20,9 +20,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -43,9 +41,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, unsigned *carry_out, mve_p ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c index 0b5040f0b2a23720bdb61f82af06c8a754dbc612..803246c32352d8108b27365b1e7828367629f293 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_s32.c @@ -16,9 +16,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -35,9 +33,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry_out) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c index df211a64daad398250e253a1967a03c576dd5ba8..22d2b4355bc12477f9899f5c80b0c42ad473733f 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbciq_u32.c @@ -16,9 +16,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -35,9 +33,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry_out) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c index 217cfa7ac2136f4938e4921527b52d539c870b7f..7a332610c69392032289633c2e67f46efe98df9e 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_s32.c @@ -26,9 +26,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -55,9 +53,7 @@ foo (int32x4_t inactive, int32x4_t a, int32x4_t b, unsigned *carry, mve_pred16_t ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c index dad04d05d68c772f3453443748b446b623315651..609021965022f442ad48f9db4a36bd7e42464a7f 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_m_u32.c @@ -26,9 +26,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -55,9 +53,7 @@ foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, unsigned *carry, mve_pred1 ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c index cd033640bcc0487c59c51c4aae1430596773855b..523fa32ee0d8e7c66f208c59d084a91cd663f860 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_s32.c @@ -22,9 +22,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t @@ -47,9 +45,7 @@ foo (int32x4_t a, int32x4_t b, unsigned *carry) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ int32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c index 6ca0c753b5e45cbb7a48dc060901635f21644095..ff720fd2df589a49684545a1afc4378a46b98868 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsbcq_u32.c @@ -22,9 +22,7 @@ extern "C" { ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t @@ -47,9 +45,7 @@ foo (uint32x4_t a, uint32x4_t b, unsigned *carry) ** ... ** vmrs (?:ip|fp|r[0-9]+), FPSCR_nzcvqc(?: @.*|) ** ... -** lsr (?:ip|fp|r[0-9]+), #29(?: @.*|) -** ... -** and (?:ip|fp|r[0-9]+), #1(?: @.*|) +** ubfx (?:ip|fp|r[0-9]+), (?:ip|fp|r[0-9]+), #29, #1(?: @.*|) ** ... */ uint32x4_t diff --git a/gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c b/gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c new file mode 100644 index 0000000000000000000000000000000000000000..1ad91070d93da13583eb37edb2b41135972bf70a --- /dev/null +++ b/gcc/testsuite/gcc.target/arm/mve/mve_const_shifts.c @@ -0,0 +1,66 @@ +/* { dg-require-effective-target arm_v8_1m_mve_ok } */ +/* { dg-add-options arm_v8_1m_mve } */ +/* { dg-additional-options "-O2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include "arm_mve.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* +**foo11: +** ... +** movs r0, #2 +** ... +*/ +uint32_t +foo11 () +{ + return uqshl (1, 1); +} + +/* +**foo12: +** ... +** movs r0, #2 +** movs r1, #0 +** ... +*/ +uint64_t +foo12 () +{ + return uqshll (1, 1); +} + +/* +**foo13: +** ... +** movs r0, #1 +** ... +*/ +uint32_t +foo13 () +{ + return uqshr (3, 1); +} + +/* +**foo13: +** ... +** movs r0, #2 +** movs r1, #0 +** ... +*/ +uint64_t +foo13 () +{ + return uqshrl (3, 1); +} + +#ifdef __cplusplus +} +#endif + +/* { dg-final { scan-assembler-not "__ARM_undef" } } */