From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2085.outbound.protection.outlook.com [40.107.105.85]) by sourceware.org (Postfix) with ESMTPS id 0BDFA385840C for ; Fri, 20 Jan 2023 17:52:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0BDFA385840C 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=qfyCY7uL39dpznY1fk11maSus/GQpeBVpj/Qv2Iy7WM=; b=uHNsTFrzMdVwVPgUTkCAeY/w3ver4WDE5uJqEDo34KCTYGDXLUUwFEsqibEJEM4BjiptqM2xybfOdcSKTS7rsgdymqCBGGf/S34ucV54PUNa188LSZJalUCDUgJlwcMOcb8Nqi2KKLvCTalEZiGu7HNiOAeeR7rujNVVzxGMWuw= Received: from DB7PR05CA0070.eurprd05.prod.outlook.com (2603:10a6:10:2e::47) by DU0PR08MB10327.eurprd08.prod.outlook.com (2603:10a6:10:474::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.24; Fri, 20 Jan 2023 17:52:24 +0000 Received: from DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:2e:cafe::b6) by DB7PR05CA0070.outlook.office365.com (2603:10a6:10:2e::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27 via Frontend Transport; Fri, 20 Jan 2023 17:52:24 +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 DBAEUR03FT038.mail.protection.outlook.com (100.127.143.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6023.16 via Frontend Transport; Fri, 20 Jan 2023 17:52:24 +0000 Received: ("Tessian outbound 3ad958cd7492:v132"); Fri, 20 Jan 2023 17:52:24 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fc4639e852536710 X-CR-MTA-TID: 64aa7808 Received: from 53a19035a0ad.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 52CD96AE-C219-409F-B9A3-A786C2F2A603.1; Fri, 20 Jan 2023 17:52:15 +0000 Received: from EUR04-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 53a19035a0ad.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 20 Jan 2023 17:52:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZvVDt1RcAmDprlTUinzrAvBP7Z7bOGA/h6gsPvhSCaiRie4Op2x3tVf3g6JNGM2PKGuyzbU2iquTP6P1UtOMcxnD4PaLOioAwQXpQsjRhYgbWczbqhZy7IEpv1hYMTEpeR99LOgQIIJlAHJlxQ8ykp7oU6SPdniMHxRhCD6laTD0LsLf50PvDUW9cGaDLEpCm22zMcKnJHDgymuFv+Eiqw7+e73yAiTRN3Tki6DRosfvALXK0zcV7s23nA8HNy4goDpwUgdVyZr0plpU2D1i0x1s8GXF/1D2nFeGAc2EijOKt+FIY63DPaY3NygsFWfwge7ZXrYz6WDYre89FoS9hQ== 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=qfyCY7uL39dpznY1fk11maSus/GQpeBVpj/Qv2Iy7WM=; b=RIVKcO6/6hOv40EUFpzjY2apLjXLC0vuMU2sykxTYhtBVU89+boh0L89eAWLdlA/cUsNeVqykr2zYKrh/nB2JFQi1nre5ltqiFXjyWTennCSQDHrkyYRP+I6XKl4XWG7NUra3wrxzZxkGMcAYIsCFFLeJLwnr+WTAj4wP7Spq/WN35LF+dS462JmBi8ljOdOJfrcvdtMfC8s25RHi8tdKiMyHc6cIew5d8tUC2wjjg4qBFbGjWtfTqJ6KHGHycuvVQiaPO4VOJy0OiB+aqDOPC0KF6CpBd7lTqLeoUgxv/7eQhwpLT3EA1Q/0EWMxQT07M38T6wUYWjje4Un7NjeVg== 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=qfyCY7uL39dpznY1fk11maSus/GQpeBVpj/Qv2Iy7WM=; b=uHNsTFrzMdVwVPgUTkCAeY/w3ver4WDE5uJqEDo34KCTYGDXLUUwFEsqibEJEM4BjiptqM2xybfOdcSKTS7rsgdymqCBGGf/S34ucV54PUNa188LSZJalUCDUgJlwcMOcb8Nqi2KKLvCTalEZiGu7HNiOAeeR7rujNVVzxGMWuw= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by AM9PR08MB6195.eurprd08.prod.outlook.com (2603:10a6:20b:284::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.27; Fri, 20 Jan 2023 17:52:10 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a7d2:445d:606d:7046]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::a7d2:445d:606d:7046%2]) with mapi id 15.20.6002.024; Fri, 20 Jan 2023 17:52:10 +0000 From: Kyrylo Tkachov To: Andrea Corallo , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw , Andrea Corallo Subject: RE: [PATCH 06/23] arm: improve tests for vmulltq* Thread-Topic: [PATCH 06/23] arm: improve tests for vmulltq* Thread-Index: AQHZLO3qiS/ILpsXk0eZaetbkQx5la6nlekQ Date: Fri, 20 Jan 2023 17:52:10 +0000 Message-ID: References: <20230120163948.752531-1-andrea.corallo@arm.com> <20230120163948.752531-7-andrea.corallo@arm.com> In-Reply-To: <20230120163948.752531-7-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_|AM9PR08MB6195:EE_|DBAEUR03FT038:EE_|DU0PR08MB10327:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d0f0c5e-470a-4306-20a2-08dafb0f1676 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: Bayz9f6OeKwZpMoLjICzsZRMPhP+kW5b0EowKs9ycMyXE6Y4XpHSEyUFHqTaeHhi+WAEqvmcGS9jaaQL4tz8K1v8rQe5axDX4/KhvkkWgkN6ekbFRZqMj+pAF89FXV09opzjc8AXFXgr7LZ6F5wX/nkM4S2970zRpnzaydoo7hZIYrJMdPI13OMmtbVG8VxTnMeAXa4Gzr8Cs0XE1coc/t5J5qpdscLuSjM6XHUqm6yy2BrINvWMTiGrC3pxBsUE00iBf3gTiXV85E+Fmlt8K0Rjr/MNNoc1WPK1FBg3PoPUg1wV3dk0Ob2M7OWvBGxofUxPemoTpUqXCB4Rqtcdjga09qrwUrchsjJ+TxlpDoBsNCcmUE5+RxBXZuRF/Luo7F/8Iu3jo7YCOl42GNK8QCTuap6vmjpApDqjWlWP/1QRAvQxyWxW3hUrKXeoSWTIQ37gcbq/IfUbJsM01Ju/WwjVkpXmYyv6a8PgAoN0a9A4uyoua6I1fqNWBCDbeEicUvMUZE6KqexQ/JpMSZTqf123QEa5J8X5mfdYk55RUQBJ/hkCrBAoyfdjF5cx1avJCzwDkMS1rIrvcY1q/yY4/jB7E/5I87X0ekaiOg7zkXWp1JFwzRvqUug9uVD/aCvQr3NhZ0ZXx5naSO2tK8m7GxuTcCnfo2r2aPnJLj4Tg/MR841uPVPvbRvuhhITTyWz+4HWhb5RbKVS1t0qZ6JUqNW+nSBhc4VGjMudttSVQNbZa5K4+bECNf6p1cyjTJXXO0dtohsliawagRyaL7zthw== 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)(346002)(39860400002)(376002)(136003)(396003)(366004)(451199015)(30864003)(52536014)(5660300002)(2906002)(8936002)(4326008)(64756008)(8676002)(41300700001)(84970400001)(71200400001)(38070700005)(478600001)(66446008)(7696005)(66946007)(83380400001)(110136005)(54906003)(33656002)(76116006)(66476007)(66556008)(316002)(186003)(86362001)(26005)(55016003)(9686003)(38100700002)(6506007)(53546011)(122000001)(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: AM9PR08MB6195 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: DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c40a4cc1-7175-4dc7-53ac-08dafb0f0dcf X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oCuxqx4Pfg1uWi85FSTGZzq4RlEjVKeQWDJ+VLgFcnI8J+/qWnqp88qKUPWiUDSG5W9nYyvYjgHStiNvhwvYIgAfMIF5ysRWsBIVqv+Nr2xIyjcp5v+VTplRjzJ7wvtbETE6eh4KW7V568SuBk+pPGXdfJLCFKGJTHbqcYbi39aKIvV/G99J2nAcZQsv1zGHLOoxrJMDzIsG0r7Y06CDY5Mqat9qSWlNKuYTSolkqdAh7SfNvR7ZyHMUcESuJk0KeEVC4ZoBQm/Ncflh5eVfLm3HnhTtDaW5pMtHM9j+9mPYjBAsOoTERRghlrc/bMTbdib+Fl3+fRna7QY5E8DZO+MzCNoOLGTswAJaYoYf+Q/4YNFnMPyX27Q0gq40U4tEIt/pglaT9/PF9JpUOVBanCDYTLazLHvtivGvWyiIOfUZZctv9UlF6/RlssjRV57XICzaKKPsDTpjkJZgu7WGNBbT8rhAr4cyxgmzQdFLvKBmHcrNPSbLUDByKq9GwhaqwmXQm6jmv8XsI0/qC0IA5zyfdq2S8r53pjbuk+w7pT1us5HdG13ug6MtZVLNb7S8dk+UtCIKjcDB3ZjMuTC+cSrbhJ3dMtn/vrMkH/QGb7XVSoDDm/i3whaV0Q54MJJQREtuKg1inYECe9UhVmEIqq9pCroqDngsZAFyMZBm1pG4qT1PI6XWT7gTM1nMQTldk8NuQQ+b6yWRiV+gRsMBkloXFiZSXcY3S0+XTF3lsaCpXRmmKURTLFCaWSIGlQ4X6Caxs88p6J4p2ZTJkIvNFg== 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)(39860400002)(136003)(376002)(346002)(396003)(451199015)(40470700004)(46966006)(36840700001)(70206006)(82310400005)(84970400001)(4326008)(52536014)(8676002)(41300700001)(6506007)(9686003)(53546011)(186003)(26005)(40480700001)(86362001)(30864003)(2906002)(55016003)(478600001)(70586007)(36860700001)(336012)(47076005)(33656002)(83380400001)(316002)(82740400003)(8936002)(54906003)(7696005)(356005)(5660300002)(81166007)(40460700003)(110136005)(579004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jan 2023 17:52:24.6268 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4d0f0c5e-470a-4306-20a2-08dafb0f1676 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: DBAEUR03FT038.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB10327 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,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: Friday, January 20, 2023 4:40 PM > To: gcc-patches@gcc.gnu.org > Cc: Kyrylo Tkachov ; Richard Earnshaw > ; Andrea Corallo > Subject: [PATCH 06/23] arm: improve tests for vmulltq* >=20 > gcc/testsuite/ChangeLog: >=20 > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s16.c: Improve test. > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_m_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_s16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_s32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_s8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_u16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_u32.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_int_x_u8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_p16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p16.c: Likewise. > * gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p8.c: Likewise. Ok. Thanks, Kyrill > --- > .../arm/mve/intrinsics/vmulltq_int_m_s16.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_m_s32.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_m_s8.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_m_u16.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_m_u32.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_m_u8.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_int_s16.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_s32.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_s8.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_u16.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_u32.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_u8.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_s16.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_s32.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_s8.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_u16.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_u32.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_int_x_u8.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_poly_m_p16.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_poly_m_p8.c | 34 ++++++++++++++++--- > .../arm/mve/intrinsics/vmulltq_poly_p16.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_poly_p8.c | 24 +++++++++++-- > .../arm/mve/intrinsics/vmulltq_poly_x_p16.c | 33 ++++++++++++++++-- > .../arm/mve/intrinsics/vmulltq_poly_x_p8.c | 33 ++++++++++++++++-- > 24 files changed, 656 insertions(+), 72 deletions(-) >=20 > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s1= 6.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s16.c > index 25ecf7a2c51..7f573e9109e 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s16.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int32x4_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vmulltq_int_m_s16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int32x4_t inactive, int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s3= 2.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s32.c > index f8d02880ea0..da440dd1365 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s32.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo (int64x2_t inactive, int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vmulltq_int_m_s32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo1 (int64x2_t inactive, int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s32" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8= .c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8.c > index 3f2fc333a65..ceb8e1d5a94 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_s8.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int16x8_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vmulltq_int_m_s8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int16x8_t inactive, int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u1= 6.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u16.c > index b7ab408d53c..a751546ae13 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u16.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_int_m_u16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u3= 2.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u32.c > index e43ad98d933..a6c4d272968 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u32.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo (uint64x2_t inactive, uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vmulltq_int_m_u32 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo1 (uint64x2_t inactive, uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u32" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u8= .c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u8.c > index 7f4b90b08dd..1a7466bb5b8 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_m_u8.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_int_m_u8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_int_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s16.= c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s16.c > index 34b75d4abc8..cd907f6224c 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s16.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int16x8_t a, int16x8_t b) > { > return vmulltq_int_s16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int16x8_t a, int16x8_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s32.= c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s32.c > index 7e09bf93e0e..dbc4c80b440 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s32.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo (int32x4_t a, int32x4_t b) > { > return vmulltq_int_s32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo1 (int32x4_t a, int32x4_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s32" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s8.c > index b6eb1f5e7f2..0fef6a21207 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_s8.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int8x16_t a, int8x16_t b) > { > return vmulltq_int_s8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int8x16_t a, int8x16_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.s8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u16.= c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u16.c > index f4fc9c0c634..91b6fb4595d 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u16.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint16x8_t a, uint16x8_t b) > { > return vmulltq_int_u16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint16x8_t a, uint16x8_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u32.= c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u32.c > index d1bc3a8f990..71c62a12afb 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u32.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo (uint32x4_t a, uint32x4_t b) > { > return vmulltq_int_u32 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo1 (uint32x4_t a, uint32x4_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u32" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u8.c > index 87f3c4e386a..7506adce33e 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_u8.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint8x16_t a, uint8x16_t b) > { > return vmulltq_int_u8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint8x16_t a, uint8x16_t b) > { > return vmulltq_int (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.u8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s1= 6.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s16.c > index c13ef50147e..c2376abe268 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s16.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo (int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vmulltq_int_x_s16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int32x4_t > foo1 (int16x8_t a, int16x8_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s3= 2.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s32.c > index e82321ecb79..788789db120 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s32.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo (int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vmulltq_int_x_s32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int64x2_t > foo1 (int32x4_t a, int32x4_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s8= .c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s8.c > index 7f093c26080..3935741d041 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_s8.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo (int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vmulltq_int_x_s8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.s8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.s8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > int16x8_t > foo1 (int8x16_t a, int8x16_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u1= 6.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u16.c > index d0f6461448b..32ee5b2e4e8 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u16.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_int_x_u16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u3= 2.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u32.c > index 55e19cb204a..cc3105650a1 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u32.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u32.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo (uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vmulltq_int_x_u32 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u32" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u32 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint64x2_t > foo1 (uint32x4_t a, uint32x4_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u8= .c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u8.c > index 650c9471c7e..01713fba245 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_int_x_u8.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_int_x_u8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.u8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.u8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_int_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p16.c > index 944db4c2fab..6d368e2ba68 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p16.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint32x4_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_poly_m_p16 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint32x4_t inactive, uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_poly_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p= 8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p8.c > index d07311943c2..75b8811fdd9 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_m_p8.c > @@ -1,23 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint16x8_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_poly_m_p8 (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint16x8_t inactive, uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_poly_m (inactive, a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p16= .c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p16.c > index 121de8e9c0e..9f08d57eef9 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p16.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint16x8_t a, uint16x8_t b) > { > return vmulltq_poly_p16 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.p16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint16x8_t a, uint16x8_t b) > { > return vmulltq_poly (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.p16" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.= c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.c > index c7d9548a8ab..59e6e1bb6e0 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_p8.c > @@ -1,21 +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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmullt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint8x16_t a, uint8x16_t b) > { > return vmulltq_poly_p8 (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.p8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmullt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint8x16_t a, uint8x16_t b) > { > return vmulltq_poly (a, b); > } >=20 > -/* { dg-final { scan-assembler "vmullt.p8" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p= 16.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p16.c > index fb4b849b8b0..f3d3de2d1d6 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p16.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p16.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_poly_x_p16 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p16" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p16 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint32x4_t > foo1 (uint16x8_t a, uint16x8_t b, mve_pred16_t p) > { > return vmulltq_poly_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p= 8.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p8.c > index 1e79b2987c9..2c7a6294540 100644 > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p8.c > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/vmulltq_poly_x_p8.c > @@ -1,22 +1,49 @@ > /* { 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 > +#ifdef __cplusplus > +extern "C" { > +#endif > + > +/* > +**foo: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_poly_x_p8 (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > -/* { dg-final { scan-assembler "vmulltt.p8" } } */ >=20 > +/* > +**foo1: > +** ... > +** vmsr p0, (?:ip|fp|r[0-9]+)(?: @.*|) > +** ... > +** vpst(?: @.*|) > +** ... > +** vmulltt.p8 q[0-9]+, q[0-9]+, q[0-9]+(?: @.*|) > +** ... > +*/ > uint16x8_t > foo1 (uint8x16_t a, uint8x16_t b, mve_pred16_t p) > { > return vmulltq_poly_x (a, b, p); > } >=20 > -/* { dg-final { scan-assembler "vpst" } } */ > +#ifdef __cplusplus > +} > +#endif > + > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */ > \ No newline at end of file > -- > 2.25.1