From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70071.outbound.protection.outlook.com [40.107.7.71]) by sourceware.org (Postfix) with ESMTPS id F22523858039 for ; Tue, 22 Nov 2022 16:53:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org F22523858039 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=nMfUagvK7ExvIIs3x22UqfutpaTjxCnLvWuJnNbzc9Y=; b=brafRF0W1eBw4geaD8nwNUVBXeGiU+t63XgDQnypMzd+aWHTwVDaPdqPh3leifuN5hM6oiYNn8AyFD9m2/liwAq1vgsknHwsH20NBi9Y06KeX1TuWw1S8mm9y/F1JDKp2l86NMEQzX8qy+XrYIKJWEbRg/PLmzhvK4oZbSfU0P0= Received: from AM6P191CA0070.EURP191.PROD.OUTLOOK.COM (2603:10a6:209:7f::47) by AS8PR08MB8061.eurprd08.prod.outlook.com (2603:10a6:20b:54a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Tue, 22 Nov 2022 16:53:26 +0000 Received: from AM7EUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:7f:cafe::b9) by AM6P191CA0070.outlook.office365.com (2603:10a6:209:7f::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15 via Frontend Transport; Tue, 22 Nov 2022 16:53:25 +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 AM7EUR03FT026.mail.protection.outlook.com (100.127.140.154) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.8 via Frontend Transport; Tue, 22 Nov 2022 16:53:25 +0000 Received: ("Tessian outbound b4aebcc5bc64:v130"); Tue, 22 Nov 2022 16:53:25 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7d7aa26b42c186d3 X-CR-MTA-TID: 64aa7808 Received: from 5dbea9184f87.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EF94E8A4-1691-49C7-A259-0564E8536591.1; Tue, 22 Nov 2022 16:53:14 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5dbea9184f87.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 22 Nov 2022 16:53:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XWEOv0Y/BXLVe8qGmXOG+PyHVH1oghIStF9Fw/FR4PX8M4KkaDJ6/TWbmwaaJ0TpB8pCoSo+5u6LzVcGe1b5OGKZZKkqr0jEnsk0LkUS14woNnVKAfiMIheKsMRuDxYmFilbsFCNM9HnjHvZMsF0Lwxmocz4jSqXpL1rY6UyDa6At72ndlct8nuMp48hkrrvnyrA5xbYu8VPeqjyFErOmwf3lrG6DkUJBiCFTT2JDOYmZ60MZFRSmIzBYluloH3XugxN321kjxO2OWhF7/Uc9G3+3SgHsj8FW1OeAzjP/yfu/R5rIBoUQDiB2BFjfHBW8IopkhUjkcajhaOS4jOFCA== 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=nMfUagvK7ExvIIs3x22UqfutpaTjxCnLvWuJnNbzc9Y=; b=ZYHX83ytUL6/bWpVxYcEI2iqP30yCSO2FIYSRtGlIh7xUTbn0OHVPJ1g1YO0D6YEIsm3nSrfSUrGzVJwK0p5jelYF9DMOml0P9wOTmaLeWyNm0mlL1GYhtgmO4qlyaLrvHjUuxNig4ysJkjVYENzBvJO+hYtR046eCLQMb1RqHSU5OIXEZ7B1xocl/kqbkS1PKGTotc9QPMhoUsqCybqkJyWv5ecvB7pKB7n9JunbnVcqmOgrtsZJUhzt3Pv1mjH4AV9e5M26cCfb2S7oe1s9P7hay7wNEZFp1gKK9Cu/WN+mL/n4yPG6sChsGTQLuth4g3nhpr5Wm8/TSUi2Rjyrw== 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=nMfUagvK7ExvIIs3x22UqfutpaTjxCnLvWuJnNbzc9Y=; b=brafRF0W1eBw4geaD8nwNUVBXeGiU+t63XgDQnypMzd+aWHTwVDaPdqPh3leifuN5hM6oiYNn8AyFD9m2/liwAq1vgsknHwsH20NBi9Y06KeX1TuWw1S8mm9y/F1JDKp2l86NMEQzX8qy+XrYIKJWEbRg/PLmzhvK4oZbSfU0P0= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AM8PR08MB6481.eurprd08.prod.outlook.com (2603:10a6:20b:364::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5857.17; Tue, 22 Nov 2022 16:53:12 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::8668:3414:edde:d292]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::8668:3414:edde:d292%9]) with mapi id 15.20.5857.017; Tue, 22 Nov 2022 16:53:12 +0000 From: Kyrylo Tkachov To: Andrea Corallo , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Andrea Corallo Subject: RE: [PATCH 21/35] arm: improve tests for vhaddq_m* Thread-Topic: [PATCH 21/35] arm: improve tests for vhaddq_m* Thread-Index: AQHY+qMSHRF8igVVEEyGfbZ/ZRrGO65LMH5A Date: Tue, 22 Nov 2022 16:53:12 +0000 Message-ID: References: <20221117163809.1009526-1-andrea.corallo@arm.com> <20221117163809.1009526-22-andrea.corallo@arm.com> In-Reply-To: <20221117163809.1009526-22-andrea.corallo@arm.com> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|AM8PR08MB6481:EE_|AM7EUR03FT026:EE_|AS8PR08MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: c06cf253-7f7d-4568-4b87-08daccaa12e1 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: 09MvUI40OcZguO5vvoFQ7WiAEiIcfcFojtJmsbhTJS2Q7PY7RdTYYio2l+uLyONztQB1ma9v3tWh0ysWXDbyTNx9mOKEVurca18XnpW9f98k9in1br4Iabk/8PCeL+qYuN/WuhHYaQlM1wgfDSGKeqL5M5bQqWN/66x65iVlN0hzTySJecXC9ZMj3/fpGcnMGlloiXsChIl2IZiPDGHyAt0IqQAPhBsJKBCaLdzClDXUg0ljhLFcy+0nHyLA3aZi8vLX0b0otfBT6+L+fNphIXunERzUfFHQpRdH2YSb7MucP93rhvvxmI1tCFgvxxjYB/Y9Dn7ELj23DurWtCSxu9TpkS6gHF53lSt35n7S9z641KdnzeZ/olAHNRqgy6483fbaUWbe1sngMYus2PdL83BRW3EVKj5AvSegYIpiBS/74pkzeUt0uNLMcrAXCqP+kpAh/xJIxKmWfSup/7wz6x2LRbdhwGPUZzDIthb6v9kdSmBVenc6SoHnqUfqZH5ZoADV9kHz3fV6vuqPYSigE5h3wDYu8/mm0HI9uFAn+MnibsTSqjXAsT7g8XzIaQTuwZMeXAs57X8dywh10QDKymJiXBnvfcjDaOb6KvmbcSG3qR30/RrSDTrFxLEmYCSwRYymI4TrVJetJ1wFODnawc7iSVTS43fJTsgvlaSvQsY+IBnQSsNr962oHEYkxUwxJz/X4vwoH9wKGBgJUvNfCX+OdDk3Gyhuo9RYNQrvbsFBQ9eLCFsKtT8bVKxgr3gehf8ti1IODfBAKFS6Ed2oBg== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(366004)(376002)(396003)(136003)(346002)(39860400002)(451199015)(38070700005)(26005)(2906002)(110136005)(6506007)(55016003)(71200400001)(86362001)(83380400001)(478600001)(38100700002)(53546011)(9686003)(122000001)(33656002)(7696005)(186003)(8936002)(52536014)(30864003)(41300700001)(76116006)(64756008)(66476007)(66556008)(8676002)(4326008)(66946007)(66446008)(5660300002)(316002)(54906003)(84970400001)(559001)(579004);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB6481 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: AM7EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 996bd418-82c9-4bd6-5101-08daccaa0aaf X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: KkCwRu1+ttVJlCt4zfdb82A2qSqFRpjY/qDbQ1fHvNH0uIKAUyvUKGl9us236Zzvyo5yZEZtokGTgJiOxL4gfboeSpTO9D8iUG/SEGJY72holkmQhfo9/q1CctwoNJ2ClStDDT3D4Y4Yg64wzpJzvsmupJZGErtfzslS3jhN8lsZS5xdkiCxsSMxAajOvfeKtjbPxPdltTaEZKC0/lC6/ZGjGtyiBCyx2zayiSs0VRzvWgFPh//JyBJkZFKSqIXqGtikufUqgyyVWZx2vxxXn9MZh1a7NUikq847hDZr0uWHckXs9Y9kbhL7nnlvBEveq7ZzPZyyeEft7CB6hLJWFuwiXNNcJdo9yj4Ae/lUR8Pc3Mhx/Q7mXaKVBFe//5IRTY5YXOMFiopNZ8k2uTjcudRqXVXV9iWDIJRcYiW7x4nxSpxFbfx7xbCahj76+KqR2fT0weqUs3gy6wYyrgRzlAuH/dfWzT5GY50LNW0OMG23AFwM3A0G2gn3cVlYnmnOSubYvgIT5SiMEsMynKPGyNHYAvGa3VKbCsAx2nspziTpqfJjsbXnvhI9j7+15cF2fxPHOmwmRD7OPEpT7t9NTV8M6l5Q4UYRQL3nFe6Q6bMIb0hzwAzQwgT1Y52pJuH9eeLV6+74w+i/Aehs/aeuULQQCw/wiBIx1MuZizXUCU8sM0UbMu/J4shtzt+qFyE37sSCx0EhFrQKt8/W8iqqWjwWQEYqt9oc9JTIcl4ukVbyXZnpC/696gPYbrXIrLHYJJOGwXMRuzFPxqPamsE3Yw== X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230022)(4636009)(346002)(39860400002)(136003)(376002)(396003)(451199015)(36840700001)(46966006)(40470700004)(40480700001)(83380400001)(9686003)(316002)(55016003)(47076005)(26005)(53546011)(6506007)(33656002)(7696005)(54906003)(110136005)(82740400003)(81166007)(30864003)(2906002)(70586007)(4326008)(8676002)(40460700003)(5660300002)(36860700001)(70206006)(356005)(336012)(86362001)(186003)(8936002)(52536014)(82310400005)(41300700001)(478600001)(84970400001)(579004)(559001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Nov 2022 16:53:25.8514 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c06cf253-7f7d-4568-4b87-08daccaa12e1 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: AM7EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8061 X-Spam-Status: No, score=-11.6 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: > -----Original Message----- > From: Andrea Corallo > Sent: Thursday, November 17, 2022 4:38 PM > To: gcc-patches@gcc.gnu.org > Cc: Kyrylo Tkachov ; Richard Earnshaw > ; Andrea Corallo > Subject: [PATCH 21/35] arm: improve tests for vhaddq_m* >=20 > gcc/testsuite/ChangeLog: >=20 > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c: Improve test. > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_n_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_m_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_n_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_n_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vhaddq_x_u8.c: Likewise. Ok. Thanks, Kyrill > --- > .../arm/mve/intrinsics/vhaddq_m_n_s16.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_n_s32.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_n_s8.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_n_u16.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_n_u32.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_n_u8.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_s16.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_s32.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_s8.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_u16.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_u32.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_m_u8.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_n_s16.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_n_s32.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_n_s8.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_n_u16.c | 28 ++++++++++++- > .../arm/mve/intrinsics/vhaddq_n_u32.c | 28 ++++++++++++- > .../arm/mve/intrinsics/vhaddq_n_u8.c | 28 ++++++++++++- > .../arm/mve/intrinsics/vhaddq_s16.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_s32.c | 16 ++++++- > .../gcc.target/arm/mve/intrinsics/vhaddq_s8.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_u16.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_u32.c | 16 ++++++- > .../gcc.target/arm/mve/intrinsics/vhaddq_u8.c | 16 ++++++- > .../arm/mve/intrinsics/vhaddq_x_n_s16.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_n_s32.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_n_s8.c | 26 ++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_n_u16.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_n_u32.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_n_u8.c | 42 +++++++++++++++++-- > .../arm/mve/intrinsics/vhaddq_x_s16.c | 25 +++++++++-- > .../arm/mve/intrinsics/vhaddq_x_s32.c | 25 +++++++++-- > .../arm/mve/intrinsics/vhaddq_x_s8.c | 25 +++++++++-- > .../arm/mve/intrinsics/vhaddq_x_u16.c | 25 +++++++++-- > .../arm/mve/intrinsics/vhaddq_x_u32.c | 25 +++++++++-- > .../arm/mve/intrinsics/vhaddq_x_u8.c | 25 +++++++++-- > 36 files changed, 828 insertions(+), 114 deletions(-) >=20 > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c > index e90af963697..0bd03832ff5 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s16.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t inactive, int16x8_t a, int16_t b, mve_pred16_t p) > { > return vhaddq_m_n_s16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t inactive, int16x8_t a, int16_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c > index fcce85fd1bd..42fe35dc746 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s32.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t inactive, int32x4_t a, int32_t b, mve_pred16_t p) > { > return vhaddq_m_n_s32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t inactive, int32x4_t a, int32_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c > index 56558b7033a..1f4a4016c74 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_s8.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t inactive, int8x16_t a, int8_t b, mve_pred16_t p) > { > return vhaddq_m_n_s8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t inactive, int8x16_t a, int8_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c > index d7ee0febab9..7d7ebebd638 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u16.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t inactive, uint16x8_t a, uint16_t b, mve_pred16_t p) > { > return vhaddq_m_n_u16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t inactive, uint16x8_t a, uint16_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint16x8_t > +foo2 (uint16x8_t inactive, uint16x8_t a, mve_pred16_t p) > +{ > + return vhaddq_m (inactive, a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u32.c > index 1117b9813ce..31f7ee2fa54 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u32.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t inactive, uint32x4_t a, uint32_t b, mve_pred16_t p) > { > return vhaddq_m_n_u32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t inactive, uint32x4_t a, uint32_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint32x4_t > +foo2 (uint32x4_t inactive, uint32x4_t a, mve_pred16_t p) > +{ > + return vhaddq_m (inactive, a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u8.c > index 90c66595d3f..2120472af46 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_n_u8.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t inactive, uint8x16_t a, uint8_t b, mve_pred16_t p) > { > return vhaddq_m_n_u8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t inactive, uint8x16_t a, uint8_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint8x16_t > +foo2 (uint8x16_t inactive, uint8x16_t a, mve_pred16_t p) > +{ > + return vhaddq_m (inactive, a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s16.c > index e8b87283a73..4b4ce40efb8 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s16.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vhaddq_m_s16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s32.c > index ddcfd11198e..e532055c675 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s32.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t inactive, int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vhaddq_m_s32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t inactive, int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s8.c > index ef5fcd02cc5..25b81629ec3 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_s8.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vhaddq_m_s8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u16.c > index d7b9aaab62c..4a9e9f3f438 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u16.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vhaddq_m_u16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u32.c > index c8d7f6c4cf3..1e68099ebf2 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u32.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vhaddq_m_u32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t inactive, uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u8.c > index 9792941b091..6dd75d7336e 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_m_u8.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vhaddq_m_u8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vhaddq_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c > index d0d77f5a7fd..20a999da1d2 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s16.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t a, int16_t b) > { > return vhaddq_n_s16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t a, int16_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c > index a8b4f3415a1..986cb8d3ba5 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s32.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t a, int32_t b) > { > return vhaddq_n_s32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t a, int32_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c > index 2459ba0a7ab..57a4b36f5fe 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_s8.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t a, int8_t b) > { > return vhaddq_n_s8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t a, int8_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c > index cd681e7a5f9..abed33b0e37 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u16.c > @@ -1,21 +1,45 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t a, uint16_t b) > { > return vhaddq_n_u16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t a, uint16_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u16" } } */ > +/* > +**foo2: > +** ... > +** vhadd.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint16x8_t > +foo2 (uint16x8_t a) > +{ > + return vhaddq (a, 1); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u32.c > index d2cb7f6284e..5e5204fb3a7 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u32.c > @@ -1,21 +1,45 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t a, uint32_t b) > { > return vhaddq_n_u32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t a, uint32_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u32" } } */ > +/* > +**foo2: > +** ... > +** vhadd.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint32x4_t > +foo2 (uint32x4_t a) > +{ > + return vhaddq (a, 1); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u8.c > index 509e1746259..b35221ef81b 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_n_u8.c > @@ -1,21 +1,45 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t a, uint8_t b) > { > return vhaddq_n_u8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t a, uint8_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u8" } } */ > +/* > +**foo2: > +** ... > +** vhadd.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint8x16_t > +foo2 (uint8x16_t a) > +{ > + return vhaddq (a, 1); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s16.c > index 47afc591cdb..310964f3440 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s16.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t a, int16x8_t b) > { > return vhaddq_s16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t a, int16x8_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s32.c > index fdc6476d0ee..d8222645c21 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s32.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t a, int32x4_t b) > { > return vhaddq_s32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t a, int32x4_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s8.c > index 3321765e909..85b2feee346 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_s8.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t a, int8x16_t b) > { > return vhaddq_s8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t a, int8x16_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.s8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u16.c > index ad46355feab..2da0aa053e5 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u16.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t a, uint16x8_t b) > { > return vhaddq_u16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t a, uint16x8_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u32.c > index 7477585fe55..49b865a123b 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u32.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t a, uint32x4_t b) > { > return vhaddq_u32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t a, uint32x4_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u8.c > index 9edf8e5eb90..5ecd3cbf6ec 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_u8.c > @@ -1,21 +1,33 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vhadd.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t a, uint8x16_t b) > { > return vhaddq_u8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vhadd.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t a, uint8x16_t b) > { > return vhaddq (a, b); > } >=20 > -/* { dg-final { scan-assembler "vhadd.u8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s16.c > index 5a9302129c7..a4e277d4e1f 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s16.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t a, int16_t b, mve_pred16_t p) > { > return vhaddq_x_n_s16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t a, int16_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s32.c > index 0a4ef00afa1..c79b88d6ced 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s32.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t a, int32_t b, mve_pred16_t p) > { > return vhaddq_x_n_s32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t a, int32_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s8.c > index ae6c27a8878..61893536231 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_s8.c > @@ -1,23 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t a, int8_t b, mve_pred16_t p) > { > return vhaddq_x_n_s8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t a, int8_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u16.c > index ddc99a82f79..146d226f36f 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u16.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t a, uint16_t b, mve_pred16_t p) > { > return vhaddq_x_n_u16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t a, uint16_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint16x8_t > +foo2 (uint16x8_t a, mve_pred16_t p) > +{ > + return vhaddq_x (a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u32.c > index dce9bc212e2..b70014fb6a5 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u32.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t a, uint32_t b, mve_pred16_t p) > { > return vhaddq_x_n_u32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t a, uint32_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint32x4_t > +foo2 (uint32x4_t a, mve_pred16_t p) > +{ > + return vhaddq_x (a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u8.c > index 262c5937a91..03978dfa28a 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_n_u8.c > @@ -1,23 +1,57 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t a, uint8_t b, mve_pred16_t p) > { > return vhaddq_x_n_u8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t a, uint8_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ > +/* > +**foo2: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +*/ > +uint8x16_t > +foo2 (uint8x16_t a, mve_pred16_t p) > +{ > + return vhaddq_x (a, 1, p); > +} > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s16.c > index 65df0093401..c3c787583dd 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s16.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vhaddq_x_s16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s32.c > index 7ff76e7170a..a1ab196d3d2 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s32.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vhaddq_x_s32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s8.c > index 23f545c45cd..061ae89315e 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_s8.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo (int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vhaddq_x_s8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int8x16_t > foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u16.c > index 97674c1f73c..0ee88520f8f 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u16.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vhaddq_x_u16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u32.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u32.c > index b6404ce9d17..0a0e512c5fc 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u32.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vhaddq_x_u32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u8.c > index 7c2d74a2662..c495641c532 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vhaddq_x_u8.c > @@ -1,22 +1,41 @@ > /* { 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 "**" "" } } */ >=20 > #include "arm_mve.h" >=20 > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vhaddq_x_u8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vhaddt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vhaddt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint8x16_t > foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vhaddq_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > -- > 2.25.1