From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30079.outbound.protection.outlook.com [40.107.3.79]) by sourceware.org (Postfix) with ESMTPS id 2E5633945050 for ; Fri, 11 Jun 2021 16:39:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2E5633945050 Received: from DU2PR04CA0016.eurprd04.prod.outlook.com (2603:10a6:10:3b::21) by AM6PR08MB4549.eurprd08.prod.outlook.com (2603:10a6:20b:b6::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21; Fri, 11 Jun 2021 16:39:15 +0000 Received: from DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:3b:cafe::c5) by DU2PR04CA0016.outlook.office365.com (2603:10a6:10:3b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Fri, 11 Jun 2021 16:39:15 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DB5EUR03FT016.mail.protection.outlook.com (10.152.20.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.21 via Frontend Transport; Fri, 11 Jun 2021 16:39:15 +0000 Received: ("Tessian outbound a5ae8c02e74f:v93"); Fri, 11 Jun 2021 16:39:15 +0000 X-CR-MTA-TID: 64aa7808 Received: from b23a6a2c3f41.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 89C2EE4D-096D-4B54-B67C-F4FA8B9BBB7C.1; Fri, 11 Jun 2021 16:39:09 +0000 Received: from FRA01-MR2-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id b23a6a2c3f41.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 11 Jun 2021 16:39:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ekkjGpm0lasZ/QK203mx80jKIK7HFr2xSSYlLIS9ubUd9L79gjrWoab9/VImFy5sEkINHFFPOQd/7eRsimtxLSAG8vX3Ssu6G2lEV66ULX1hy61m+x8YoO/Vchhcr1TyJY0APGn3XmEpolWrfbwgxp7hrjGxbrqe76Y6S53XuL+ax00QCs2tRuslcdvTWG7oTJbYu25l8zuRqTqyrB3UbTiYhLU7YxmsP5TNFGOIY2spe5HzQjkBjOY9uXKZuEk1L3c9D6LFQ1q7qrtmt/6REmsheunr1fE3KavgopAQopHQIgNS9IFeqmuxlTOgPXRFgObqrUdhE0nySON10cyMYQ== 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-SenderADCheck; bh=9rCb3tRibhXIuBPNTJ5qh45V0rgiQAMBHFO/nmFdGIU=; b=af4INBF3GrK/ecRojonFc1sRZQ7Gw7Ej7fqTp9WLPDK5MJ7ptGJp/DOZqDGChT0kRw9LrJdHRcrp5yDT9YsP1LMNmriEOpAiUXNfGx5z9R36i5RuD24+5IqqWISSywqmxHQc8evnwpQbtOn7ZpJzmJaqAGjdkCwS0yDQ526QIYarPx5jABEUIPmFEU2pJuoAp5xk5Cz0DNMlgqTJX1v9qIkvllRrrajeIKI9+dBW43AR3KvlmAEfqJG1pVjW17ToLamoqlBuA5G696TWlrwJtT6TipwZ9PcUOO5VgLjh5iSSpN8GrxGpRVoR7glraGNmlotC630eXa5OqnUfLqGKKQ== 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 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by PR2PR08MB4668.eurprd08.prod.outlook.com (2603:10a6:101:1e::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.24; Fri, 11 Jun 2021 16:38:58 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::842d:9c78:f6df:c267]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::842d:9c78:f6df:c267%5]) with mapi id 15.20.4219.023; Fri, 11 Jun 2021 16:38:58 +0000 From: Kyrylo Tkachov To: Srinath Parvathaneni , "gcc-patches@gcc.gnu.org" CC: Richard Earnshaw Subject: RE: [GCC][PATCH] arm: Fix polymorphic variants failing with undefined reference to `__ARM_undef` error. Thread-Topic: [GCC][PATCH] arm: Fix polymorphic variants failing with undefined reference to `__ARM_undef` error. Thread-Index: AQHXXhPTz9wU4RgtGUmiR5PBAUR6j6sPBEdA Date: Fri, 11 Jun 2021 16:38:57 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 36E091DE3A6B6B4A964872DFFB6B142B.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [86.31.103.53] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 587fec5d-3e54-4d3e-97af-08d92cf77370 x-ms-traffictypediagnostic: PR2PR08MB4668:|AM6PR08MB4549: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:8273;OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: JYHXCuSFbswezQnzEXwM4UXZBTIe8dzo/wRh2mRz0Z0RLf4QjVXEoZxReHQa9vBMvgAWCafw2ADcciIE9EBcpzScVg+U8DmomP1LnpQyKepbMONZfU6WKGPUJiExj9k5kM6d7O4d2G6rFnpXiI0VD68/xxWCXyxF3ia9cXgdLNVykmpxpBXkG+eBBK2y5c8Z46aReqh0fsqOv+Mpi5gx2mSBjpeo5Rn5E+0fF2PH7DuS57WEnNZx+4/mRn4w2/tK9gtSfe1JvE3HXIYHvc2qkvM9B0Ye8t7LrdDaZa7M1l0cIbGux61S6EfB51hKOhATCxGbwOmSuLueX1l1P92ykI3gYkYyuiXKMxucYUuf6zbCnIQq24IjMTz3P0UnvXT44YMXHMzxQ66OQbvkB0+ex7UVXx4tO5TDrv4iurCP8yqGI58aW1nDN7eUQUMklyC5AOXOWTKp0KEibbnpWRnFH2mKFMw1OO3T2Jfvk7ezdKXPo/VG/ToEYZEhEZe5+R0B8V0QqCzfBky1N0v+vPukZf32jjd4YlBQw0QqCNkLFBokyrTm9pBx9u0ueZXBJ3KJpg3GMGScvAh6QhhnU3XKAO1s9/XMvLHL7zcidriuepv1JHtZb2q4r1DOurRJHVko8zl5rFhpqwCqIv9nzeSbOYDAQPwIR8SlrRynqz3C3Ic6jwC+/5ly4DeLRJrmnRFI 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:(4636009)(39850400004)(136003)(396003)(346002)(376002)(366004)(66946007)(110136005)(76116006)(2906002)(55016002)(316002)(4326008)(9686003)(478600001)(83380400001)(66446008)(86362001)(122000001)(5660300002)(33656002)(30864003)(53546011)(26005)(71200400001)(52536014)(6506007)(66556008)(186003)(8936002)(66476007)(8676002)(55236004)(7696005)(64756008)(38100700002)(81973001)(579004)(559001)(357404004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?G14JzCAXIp6d1aiaDoRgNoG7AyjP/eiTbM1FPEkpiAtqcUuUigkJdu6PAHJm?= =?us-ascii?Q?jU0ped0/AmPxiY4fhd9OYr3X7JYPzHl9WRW/bp3D7/n3x7DHqao8kJP4mFYh?= =?us-ascii?Q?QhpyJPyXq5pGJ3Bx1iErUgmf2kTOOD8psZVstDce6CYqBCJ4W4h9DruFdoMo?= =?us-ascii?Q?xv+npjfoVkIcI/KkhIKnVSMi3XRCTMA6Cpb+Y34p+oTxgKRlq4SuQ9Dickys?= =?us-ascii?Q?UwXT0hf5idagd/oJW0C4dUitRoPXUVSbufiFpYex+KUHiD3I/We4kosRhZdE?= =?us-ascii?Q?PHIX80TPdD9ZAfFDtWk9ado5maqLXex9OW6toDHogzlg8jh/4ei9pFLCi4FB?= =?us-ascii?Q?huv02KRGuML39P665qVpvLTISvMak5yu8WiUKJ9zUxkuYjEC1/aZjUn/LZnY?= =?us-ascii?Q?R7Ovrb1gs2DpwRmIAk3nx7ifEGUjM7Rd3A6yhg+1qHRttZ2bkyy+RF43aAON?= =?us-ascii?Q?ZpjCnY7NRtR8XBMSg92zDFsESJVig3r+UP9ljhCp1gbqJPsr5uw67c03fUW6?= =?us-ascii?Q?gVzXSmx2UUMXzxwgfMy1kzeJ+TCQl7ldhSPRcEj7NN2hX2NlmDjfMURqQA3y?= =?us-ascii?Q?G2TOUodHnlNU1UH7l8798b+dz3U+zPNCPzSahVBaQ9g6pJ7VX9lQfNaj062Q?= =?us-ascii?Q?eREtLWnyQRYmj09QbLHG1ylVohhSmxPNjkwyuOhbe09d1PKITSJmZjuhx7Fu?= =?us-ascii?Q?VFweJHgu3zYV/aSzZPxNlsWtfdHbZ2mj9LtmlrTxU7GMRU4jmiMEsJ3LFNry?= =?us-ascii?Q?LwzwDVXXg10wH1t8FS/flOWh5Ekt5ugMOk6s5R8WtpJ27okUrH79FuZhkfkW?= =?us-ascii?Q?oYw5LIwwNFzOlmlcJ7VqmI6Tz1sW/QgQZLvy3pC7vK99OFraYCVpGIbJuE3f?= =?us-ascii?Q?CvB/RsQVimuFKRTBxyKH0IgDDJYdYtr9QfQEtf/H4owzFHX4c7WQO5ONAm9L?= =?us-ascii?Q?cbTxtMRYklaYjgXykcUamE3Z6RpmriEv2hGFjZCbLGpGEGfCrIaG5/X/cJSC?= =?us-ascii?Q?DYWhQwEzloZNQGuopHwAwP0F+CNTpCGUS9j0LKWZVMocYXtBOv5URhQDuKVb?= =?us-ascii?Q?NTng6BNISJ2pRrWm7Q1H2FLXaJupVc8ZMso6h+dqjzFn04gWpUQtO23SoBF/?= =?us-ascii?Q?7mSuERwrLe4s63bbEGTFc89+nYLt9IuU4qshXSngJ/f4xt/MgZo3a7PfBfZH?= =?us-ascii?Q?4072elXSjiueR3dtxPcefbPDN9vMDTQ/5quV2m3r7Dkr3+urOsoLBNFFCzg0?= =?us-ascii?Q?6mqYEpT3ZF9YvnAp2+2Mmmre82GDcDo9myl5wWFcFLKOIlM7LW1Zdoa5aFRb?= =?us-ascii?Q?TS3C3BdN23AhyIHg73miS3r3?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4668 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: a4c48edc-e6b0-49a6-9130-08d92cf76920 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7g94MLoHduxoFEM3Cg6y8tSJoT38aYzLjc2NfLWi8FrzzNa2ps+nS3Q3nzPWP3/X1YOIonzdBaqEJWJBtAI9q8m3gIM3p9MwW42iqT2kN/QFM1QFkt3MqnZtEKWD6+YC+D1PzCy20yuE1nJJ+WW1K4PhvVrcgSuZtrIO6sty6RyOT/KaMiI3IcsATuwiZwBSPRvKhBDGDyj4X9R8x0JqckGEN5j9mrPLB+pLjQlqqYZVaE+c2qBnajVQmLlBM3IoOUu085efNZjP7mBtkJ15Vmf4f20a1gyfYp1EncJpJhphC0TQ4WgomwpSeRXH7iWEKBtjwy8MYMoZHvX907etBc+VcoOrN/I31tFDEemH2acW1Y75zzyUVCuu634HRAU2guxWtao8Ox1XE5qQ+x4Tn0mHrJA9D8qPg3+rOCnthK8Wuv8jyM6Y7HlFwbSdelR7ztD1e4rteuBEzhR4lsY6CdwNNZCNnKB76ilh1RZaLKw1LdOVqKQly9NRTchdjePC3ovL1STSIC44PHk1yiHQbVpm7wIBAu1ulPWhs1dimYaXgzEb52CJ08/KtVa5BQw7TEaNsQt5Hq5QMHaB97v/hyOoaoRh52YUI65SFER8Tyh07hWUzZyLzdpUg910T1kE9nvqpsJFbOfMgzs+whDfgfCcGHjAOrx6v3BjfJFn+2LOxUSXCzeW6YVjYD3P9ojSdvMaYUhrbDcqAwyB8HkW8g== 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:(4636009)(46966006)(36840700001)(336012)(70586007)(81166007)(5660300002)(53546011)(52536014)(47076005)(82310400003)(70206006)(186003)(2906002)(33656002)(356005)(83380400001)(6506007)(86362001)(55236004)(30864003)(498600001)(4326008)(9686003)(55016002)(8676002)(36860700001)(110136005)(8936002)(26005)(7696005)(81973001)(357404004); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2021 16:39:15.4868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 587fec5d-3e54-4d3e-97af-08d92cf77370 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: DB5EUR03FT016.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4549 X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2021 16:39:22 -0000 > -----Original Message----- > From: Srinath Parvathaneni > Sent: 10 June 2021 17:14 > To: gcc-patches@gcc.gnu.org > Cc: Kyrylo Tkachov ; Richard Earnshaw > > Subject: [GCC][PATCH] arm: Fix polymorphic variants failing with undefine= d > reference to `__ARM_undef` error. >=20 > Hi, >=20 > This patch fixes the issue mentioned in PR101016, which is mve polymorphi= c > variants > failing at linking with undefined reference to "__ARM_undef" error. >=20 > Regression tested on arm-none-eabi and found no regressions. >=20 > Ok for master? Ok. Thanks, Kyrill >=20 > Regards, > Srinath. >=20 > gcc/ChangeLog: >=20 > 2021-06-10 Srinath Parvathaneni >=20 > PR target/101016 > * config/arm/arm_mve.h (__arm_vld1q): Change > __ARM_mve_coerce(p0, > int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument > for > the polymorphic variants matching code. > (__arm_vld1q_z): Likewise. > (__arm_vld2q): Likewise. > (__arm_vld4q): Likewise. > (__arm_vldrbq_gather_offset): Likewise. > (__arm_vldrbq_gather_offset_z): Likewise. >=20 > gcc/testsuite/ChangeLog: >=20 > 2021-06-10 Srinath Parvathaneni >=20 > PR target/101016 > * gcc.target/arm/mve/intrinsics/pr101016.c: New test. >=20 >=20 >=20 > ############### Attachment also inlined for ease of reply > ############### >=20 >=20 > diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h > index > 1380f3acbfe64026bc882c308bb1c243e27ac4b3..83f10036990fc3df956fb2fa > 4818d1304138b485 100644 > --- a/gcc/config/arm/arm_mve.h > +++ b/gcc/config/arm/arm_mve.h > @@ -37565,47 +37565,47 @@ extern void *__ARM_undef; >=20 > #define __arm_vld1q(p0) (\ > _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)), \ > - int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld1q_f16 > (__ARM_mve_coerce(p0, float16_t const *)), \ > - int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld1q_f32 > (__ARM_mve_coerce(p0, float32_t const *)))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)), \ > + int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld1q_f16 > (__ARM_mve_coerce1(p0, float16_t *)), \ > + int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld1q_f32 > (__ARM_mve_coerce1(p0, float32_t *)))) >=20 > #define __arm_vld1q_z(p0,p1) ( \ > _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 > (__ARM_mve_coerce(p0, int8_t const *), p1), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_z_s16 > (__ARM_mve_coerce(p0, int16_t const *), p1), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_z_s32 > (__ARM_mve_coerce(p0, int32_t const *), p1), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_z_u8 > (__ARM_mve_coerce(p0, uint8_t const *), p1), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_z_u16 > (__ARM_mve_coerce(p0, uint16_t const *), p1), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_z_u32 > (__ARM_mve_coerce(p0, uint32_t const *), p1), \ > - int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld1q_z_f16 > (__ARM_mve_coerce(p0, float16_t const *), p1), \ > - int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld1q_z_f32 > (__ARM_mve_coerce(p0, float32_t const *), p1))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 > (__ARM_mve_coerce1(p0, int8_t *), p1), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_z_s16 > (__ARM_mve_coerce1(p0, int16_t *), p1), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_z_s32 > (__ARM_mve_coerce1(p0, int32_t *), p1), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_z_u8 > (__ARM_mve_coerce1(p0, uint8_t *), p1), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_z_u16 > (__ARM_mve_coerce1(p0, uint16_t *), p1), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_z_u32 > (__ARM_mve_coerce1(p0, uint32_t *), p1), \ > + int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld1q_z_f16 > (__ARM_mve_coerce1(p0, float16_t *), p1), \ > + int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld1q_z_f32 > (__ARM_mve_coerce1(p0, float32_t *), p1))) >=20 > #define __arm_vld2q(p0) ( \ > _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld2q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld2q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld2q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld2q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld2q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld2q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)), \ > - int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld2q_f16 > (__ARM_mve_coerce(p0, float16_t const *)), \ > - int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld2q_f32 > (__ARM_mve_coerce(p0, float32_t const *)))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld2q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld2q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld2q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld2q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld2q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld2q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)), \ > + int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld2q_f16 > (__ARM_mve_coerce1(p0, float16_t *)), \ > + int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld2q_f32 > (__ARM_mve_coerce1(p0, float32_t *)))) >=20 > #define __arm_vld4q(p0) ( \ > _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld4q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld4q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld4q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld4q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld4q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld4q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)), \ > - int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld4q_f16 > (__ARM_mve_coerce(p0, float16_t const *)), \ > - int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld4q_f32 > (__ARM_mve_coerce(p0, float32_t const *)))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld4q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld4q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld4q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld4q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld4q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld4q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)), \ > + int (*)[__ARM_mve_type_float16_t_ptr]: __arm_vld4q_f16 > (__ARM_mve_coerce1(p0, float16_t *)), \ > + int (*)[__ARM_mve_type_float32_t_ptr]: __arm_vld4q_f32 > (__ARM_mve_coerce1(p0, float32_t *)))) >=20 > #define __arm_vldrhq_gather_offset(p0,p1) ({ __typeof(p1) __p1 =3D (p1);= \ > _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \ > @@ -39631,25 +39631,26 @@ extern void *__ARM_undef; >=20 > #define __arm_vldrbq_gather_offset(p0,p1) ({ __typeof(p1) __p1 =3D (p1);= \ > _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_s8 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_s16 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_s32 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_u8 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_u16 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_u32 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_s8 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_s16 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_s32 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_u8 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_u16 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_u32 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) >=20 > #define __arm_vstrwq_scatter_base_p(p0,p1,p2,p3) ({ __typeof(p2) __p2 = =3D > (p2); \ > _Generic( (int (*)[__ARM_mve_typeid(__p2)])0, \ > int (*)[__ARM_mve_type_int32x4_t]: __arm_vstrwq_scatter_base_p_s32 > (p0, p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > int (*)[__ARM_mve_type_uint32x4_t]: __arm_vstrwq_scatter_base_p_u32 > (p0, p1, __ARM_mve_coerce(__p2, uint32x4_t), p3));}) >=20 > -#define __arm_vld1q(p0) (_Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)))) > +#define __arm_vld1q(p0) (\ > + _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)))) >=20 > #define __arm_vldrhq_gather_offset(p0,p1) ({ __typeof(p1) __p1 =3D (p1);= \ > _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \ > @@ -40146,29 +40147,29 @@ extern void *__ARM_undef; > int (*)[__ARM_mve_type_uint32x4_t]: __arm_vbrsrq_x_n_u32 > (__ARM_mve_coerce(__p1, uint32x4_t), p2, p3));}) >=20 > #define __arm_vld1q_z(p0,p1) ( _Generic( (int (*)[__ARM_mve_typeid(p0)])= 0, > \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 > (__ARM_mve_coerce(p0, int8_t const *), p1), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_z_s16 > (__ARM_mve_coerce(p0, int16_t const *), p1), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_z_s32 > (__ARM_mve_coerce(p0, int32_t const *), p1), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_z_u8 > (__ARM_mve_coerce(p0, uint8_t const *), p1), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_z_u16 > (__ARM_mve_coerce(p0, uint16_t const *), p1), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_z_u32 > (__ARM_mve_coerce(p0, uint32_t const *), p1))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld1q_z_s8 > (__ARM_mve_coerce1(p0, int8_t *), p1), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld1q_z_s16 > (__ARM_mve_coerce1(p0, int16_t *), p1), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld1q_z_s32 > (__ARM_mve_coerce1(p0, int32_t *), p1), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld1q_z_u8 > (__ARM_mve_coerce1(p0, uint8_t *), p1), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld1q_z_u16 > (__ARM_mve_coerce1(p0, uint16_t *), p1), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld1q_z_u32 > (__ARM_mve_coerce1(p0, uint32_t *), p1))) >=20 > #define __arm_vld2q(p0) ( _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld2q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld2q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld2q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld2q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld2q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld2q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld2q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld2q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld2q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld2q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld2q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld2q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)))) >=20 >=20 > #define __arm_vld4q(p0) ( _Generic( (int (*)[__ARM_mve_typeid(p0)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld4q_s8 > (__ARM_mve_coerce(p0, int8_t const *)), \ > - int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld4q_s16 > (__ARM_mve_coerce(p0, int16_t const *)), \ > - int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld4q_s32 > (__ARM_mve_coerce(p0, int32_t const *)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld4q_u8 > (__ARM_mve_coerce(p0, uint8_t const *)), \ > - int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld4q_u16 > (__ARM_mve_coerce(p0, uint16_t const *)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld4q_u32 > (__ARM_mve_coerce(p0, uint32_t const *)))) > + int (*)[__ARM_mve_type_int8_t_ptr]: __arm_vld4q_s8 > (__ARM_mve_coerce1(p0, int8_t *)), \ > + int (*)[__ARM_mve_type_int16_t_ptr]: __arm_vld4q_s16 > (__ARM_mve_coerce1(p0, int16_t *)), \ > + int (*)[__ARM_mve_type_int32_t_ptr]: __arm_vld4q_s32 > (__ARM_mve_coerce1(p0, int32_t *)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr]: __arm_vld4q_u8 > (__ARM_mve_coerce1(p0, uint8_t *)), \ > + int (*)[__ARM_mve_type_uint16_t_ptr]: __arm_vld4q_u16 > (__ARM_mve_coerce1(p0, uint16_t *)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_vld4q_u32 > (__ARM_mve_coerce1(p0, uint32_t *)))) >=20 > #define __arm_vgetq_lane(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > @@ -40515,12 +40516,12 @@ extern void *__ARM_undef; >=20 > #define __arm_vldrbq_gather_offset_z(p0,p1,p2) ({ __typeof(p1) __p1 =3D = (p1); > \ > _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_z_s8 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_z_s16 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_z_s32 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint32x4_t), p2), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_z_u8 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_z_u16 (__ARM_mve_coerce(p0, uint8_t const > *), __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_z_u32 (__ARM_mve_coerce(p0, uint8_t const > *), __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_z_s8 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_z_s16 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_z_s32 (__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint32x4_t), p2), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_z_u8 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_z_u16 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_z_u32 (__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) >=20 > #define __arm_vqrdmlahq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0); \ > __typeof(p1) __p1 =3D (p1); \ > @@ -41201,12 +41202,12 @@ extern void *__ARM_undef; >=20 > #define __arm_vldrbq_gather_offset(p0,p1) ({ __typeof(p1) __p1 =3D (p1);= \ > _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)])0, \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_s8 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_s16 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_s32 (__ARM_mve_coerce(p0, int8_t const *), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_u8 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_u16 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_u32 (__ARM_mve_coerce(p0, uint8_t const *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_s8(__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_s16(__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_s32(__ARM_mve_coerce1(p0, int8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vldrbq_gather_offset_u8(__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vldrbq_gather_offset_u16(__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vldrbq_gather_offset_u32(__ARM_mve_coerce1(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) >=20 > #define __arm_vidupq_m(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0); \ > __typeof(p1) __p1 =3D (p1); \ > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c > new file mode 100644 > index > 0000000000000000000000000000000000000000..b12786d04f558474ed9b3 > df9998663c7f9bc4d1a > --- /dev/null > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/pr101016.c > @@ -0,0 +1,136 @@ > +/* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ > +/* { dg-add-options arm_v8_1m_mve_fp } */ > + > +#include "arm_mve.h" > + > +void > +foo (void) > +{ > + mve_pred16_t p; > + int8x16_t a; > + int8_t a1[10]; > + int16x8_t b; > + int16_t b1[10]; > + int32x4_t c; > + int32_t c1[10]; > + uint8x16_t ua; > + uint8_t ua1[10]; > + uint16x8_t ub; > + uint16_t ub1[10]; > + uint32x4_t uc; > + uint32_t uc1[10]; > + float16x8_t fb; > + float16_t fb1[10]; > + float32x4_t fc; > + float32_t fc1[10]; > + > + fb =3D vld1q (fb1); > + fc =3D vld1q (fc1); > + b =3D vld1q (b1); > + c =3D vld1q (c1); > + a =3D vld1q (a1); > + ub =3D vld1q (ub1); > + uc =3D vld1q (uc1); > + ua =3D vld1q (ua1); > + fb =3D vld1q_z (fb1, p); > + fc =3D vld1q_z (fc1, p); > + b =3D vld1q_z (b1, p); > + c =3D vld1q_z (c1, p); > + a =3D vld1q_z (a1, p); > + ub =3D vld1q_z (ub1, p); > + uc =3D vld1q_z (uc1, p); > + ua =3D vld1q_z (ua1, p); > +} > + > +void > +foo1 (void) > +{ > + mve_pred16_t p; > + int8x16x2_t a; > + int8_t a1[10]; > + int16x8x2_t b; > + int16_t b1[10]; > + int32x4x2_t c; > + int32_t c1[10]; > + uint8x16x2_t ua; > + uint8_t ua1[10]; > + uint16x8x2_t ub; > + uint16_t ub1[10]; > + uint32x4x2_t uc; > + uint32_t uc1[10]; > + float16x8x2_t fb; > + float16_t fb1[10]; > + float32x4x2_t fc; > + float32_t fc1[10]; > + > + fb =3D vld2q (fb1); > + fc =3D vld2q (fc1); > + b =3D vld2q (b1); > + c =3D vld2q (c1); > + a =3D vld2q (a1); > + ub =3D vld2q (ub1); > + uc =3D vld2q (uc1); > + ua =3D vld2q (ua1); > +} > + > +void > +foo2 (void) > +{ > + mve_pred16_t p; > + int8x16x4_t a; > + int8_t a1[10]; > + int16x8x4_t b; > + int16_t b1[10]; > + int32x4x4_t c; > + int32_t c1[10]; > + uint8x16x4_t ua; > + uint8_t ua1[10]; > + uint16x8x4_t ub; > + uint16_t ub1[10]; > + uint32x4x4_t uc; > + uint32_t uc1[10]; > + float16x8x4_t fb; > + float16_t fb1[10]; > + float32x4x4_t fc; > + float32_t fc1[10]; > + > + fb =3D vld4q (fb1); > + fc =3D vld4q (fc1); > + b =3D vld4q (b1); > + c =3D vld4q (c1); > + a =3D vld4q (a1); > + ub =3D vld4q (ub1); > + uc =3D vld4q (uc1); > + ua =3D vld4q (ua1); > +} > + > +void > +foo3 (void) > +{ > + mve_pred16_t p; > + int16x8_t a; > + uint16x8_t ua; > + int8_t a1[10]; > + uint8_t ua1[10]; > + uint16x8_t offset_a; > + int8x16_t b; > + uint8x16_t ub; > + uint8x16_t offset_b; > + int32x4_t c; > + uint32x4_t uc; > + uint32x4_t offset_c; > + > + a =3D vldrbq_gather_offset (a1, offset_a); > + ua =3D vldrbq_gather_offset (ua1, offset_a); > + b =3D vldrbq_gather_offset (a1, offset_b); > + ub =3D vldrbq_gather_offset (ua1, offset_b); > + c =3D vldrbq_gather_offset (a1, offset_c); > + uc =3D vldrbq_gather_offset (ua1, offset_c); > + a =3D vldrbq_gather_offset_z (a1, offset_a, p); > + ua =3D vldrbq_gather_offset_z (ua1, offset_a, p); > + b =3D vldrbq_gather_offset_z (a1, offset_b, p); > + ub =3D vldrbq_gather_offset_z (ua1, offset_b, p); > + c =3D vldrbq_gather_offset_z (a1, offset_c, p); > + uc =3D vldrbq_gather_offset_z (ua1, offset_c, p); > +} > +/* { dg-final { scan-assembler-not "__ARM_undef" } } */