From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80077.outbound.protection.outlook.com [40.107.8.77]) by sourceware.org (Postfix) with ESMTPS id 895AA385740B for ; Wed, 5 May 2021 12:39:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 895AA385740B Received: from AM0PR02CA0178.eurprd02.prod.outlook.com (2603:10a6:20b:28e::15) by AM0PR08MB4211.eurprd08.prod.outlook.com (2603:10a6:208:101::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24; Wed, 5 May 2021 12:39:37 +0000 Received: from AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:28e:cafe::3d) by AM0PR02CA0178.outlook.office365.com (2603:10a6:20b:28e::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4087.32 via Frontend Transport; Wed, 5 May 2021 12:39:37 +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 AM5EUR03FT058.mail.protection.outlook.com (10.152.17.48) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25 via Frontend Transport; Wed, 5 May 2021 12:39:36 +0000 Received: ("Tessian outbound 8ca198b738d3:v91"); Wed, 05 May 2021 12:39:36 +0000 X-CR-MTA-TID: 64aa7808 Received: from 5c8784733a97.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 481C8BEE-C0A8-4C9C-83DC-B75B71268030.1; Wed, 05 May 2021 12:39:25 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 5c8784733a97.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 05 May 2021 12:39:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WiJChbtMGKC7RQ40yHMwTajSrAc9lyVwlyALDyYzR3q0ZV8N5gh10IYeVOMesteMLIvoolGYmLfDsjEj7eEGOe4kdkauXaU1/tXGj+PwkHUI3vkYq0KaQnBvGJnUJ6vYW8jIgUVdpeUcPKeU2uSPM5gk5gqQcO69W/zr5C7iTiBtub7IrMDQvdO6BjBwz10v0eU0P7BNALvTOSC/lL1B/fjf2WHRXUVImZKLAnaGzOo/CkWJ9nY/ymPIqRJdPO8pW5nSZ2w23mj/DesF/Z4iZOOVBuoNnCZb+LY5r1TUhMQwCo3c2EUXFdmfUjdO0OJivXQthewePA/NUUPpILMoFQ== 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=Fi5Wd/24PZp0Qe90YkAnne4rTIlS5dNC2TZtMHkpv5k=; b=fvGrzbszOkXfU+kSO1SepCDyilugJ1odDUO3Rs0jZrPas/8GMWEKXYyc6npvGs8sYEceBiAs/ePUc1Oo2j/dBop09SnZ4cenrjP9m5o5zwqNvmPxmv7Ena9qZxqCMTtPkg1KQr+9Y0pmB8oRfpG85rKiyhRXjQL8hyFQmH+DAhEYg/EOBZddeJElXhupZUld6ZdCtU9pt8UPnVxHKk1h/Gkj7OaDi/iuky6OrJbHqM+U8PwL55rJjVp3OvRs7HPV2Ag9/0KUuAziKlu65VrLVAX1LN2WAVc0rcKH04SpaAm2jvJsVL1WqQ66YlOnwmAx1DXau0jzRL2pSqhxm8JKmw== 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 VI1PR0802MB2368.eurprd08.prod.outlook.com (2603:10a6:800:9d::10) by VE1PR08MB5822.eurprd08.prod.outlook.com (2603:10a6:800:1a7::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.25; Wed, 5 May 2021 12:39:23 +0000 Received: from VI1PR0802MB2368.eurprd08.prod.outlook.com ([fe80::f1fd:229a:89be:eca]) by VI1PR0802MB2368.eurprd08.prod.outlook.com ([fe80::f1fd:229a:89be:eca%7]) with mapi id 15.20.4087.044; Wed, 5 May 2021 12:39:22 +0000 From: Srinath Parvathaneni To: Richard Earnshaw , "gcc-patches@gcc.gnu.org" CC: Srinath Parvathaneni , Kyrylo Tkachov , Richard Earnshaw Subject: RE: [GCC][PATCH] arm: Remove duplicate definitions from arm_mve.h (pr100419). Thread-Topic: [GCC][PATCH] arm: Remove duplicate definitions from arm_mve.h (pr100419). Thread-Index: AQHXQZUeMSTKfCjovUOERTSYxhy9lqrUq/MAgAAmGBA= Date: Wed, 5 May 2021 12:39:22 +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: AA64539EC19673479CF8B222395A760E.0 x-checkrecipientchecked: true Authentication-Results-Original: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; x-originating-ip: [90.242.183.228] x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 49c91abd-3140-4abc-705a-08d90fc2d7b0 x-ms-traffictypediagnostic: VE1PR08MB5822:|AM0PR08MB4211: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:9508;OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: La95+LMtEyBV79DpEFj2yaLpyC70KrWbQznQHlmR/NCGIaRNx6HYbnv4TLmNiICZyT5aP9MJL5wu5Ja4KOz8m2W+n8owN0yBBL80UGxE/AYprCfU2tKvRVYjj+wENs7Twsd/c1NlC8NgeeRKEfuDqy8trkDqKf0r6oQ/r6MmRjeX+JFtTO4TpJ1yzO4aH9LvOK6EpJf1oNwL0woGkci3F7VKmUoTAIFQbtqPMyYif9Y8Lulq+ppVl+wbOn+X6Lc1MRbWkNkqzID8bYMJMTfuuO4A0ReOiDAdykBymeBoyAzERjCndcBTvPcUUlR9qRaKeLBibprr45w772AfDuFLus7taOX3Y9XshMAVGUi3NE1S5uuGsPbpz2HysDD6isXKgW2tea9Sx5XBTBmAnNbwgMGTCRkqCF2Y9C/g9esnF+3eDTxDIa/w2xuWxVgWSm3r8vfLYUUnhzF7gwwGmIugKAuRtMW/0IOHSYJCqUEaB/Jjwe8lKjC0uYElH+zIBFUcYRn8dblejbpTnZsyOBYSEiE0cuIsLRc7pX6kBBjmxE9x5ap0QTDFQFEBu/EYuVQGVcK9kdxoJII/bKJE7Y3g2xjM5QddY9rGH0KLGNxqDn4= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR0802MB2368.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(346002)(136003)(366004)(39860400002)(396003)(86362001)(54906003)(55016002)(8676002)(316002)(186003)(33656002)(4326008)(110136005)(66446008)(66946007)(66556008)(64756008)(66476007)(9686003)(52536014)(5660300002)(2906002)(76116006)(30864003)(71200400001)(478600001)(7696005)(38100700002)(122000001)(26005)(8936002)(53546011)(83380400001)(6506007)(579004)(559001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?us-ascii?Q?0CKbHb2gXyzYQNjty5Y1odVv3Rl4B7+tXmUehlgqdLOlKaLuU/CyjnRZj1Yc?= =?us-ascii?Q?N3uy4YMhd0Z/sClnyuW7TBqSvMJdAS6rXGTAd58+OWbl4bYoTLUThFEVj7Ra?= =?us-ascii?Q?/RA9z3HAtd5qqVZzmwN34gyik91Yfo74lTqUFq48hXXrT0joBNqjTODbIpp4?= =?us-ascii?Q?7ndLOw8Fev2XwVNPkENxosUjuv1NpiWMJ0xR2GuJ6suotKNFiTiLY6oHHqtt?= =?us-ascii?Q?ccxQ7FA7Z+2yePIA8y/47zrboMt0exkTmz7Z75I4kocEn8fH5Ni1rafmrhM2?= =?us-ascii?Q?ICPvGx5TfR0FCmHOsjXEZSxk8DKBDoVZXqUmtBUbLJ5pCza5mqlOiC6C7uV1?= =?us-ascii?Q?IsslqgkghiDj7sewkQVc6SiCXIu8Rbc4Ms2VscWbbRu+O7yI3VkJEp09UCkk?= =?us-ascii?Q?mDK4EyBhj3QhnDqWA3dQ+6VhOsPQcgqBVu6A6JWF1rJpNbNgboZsvFUe1UZM?= =?us-ascii?Q?vl0yCfpMoS2rIwVEOOcjDiynhzNOSk721mqp/Dj5+Nd5wRQ6CTftMXeYiYGO?= =?us-ascii?Q?dg1oVLSsFLuQlMpLnIORCpUYjZpUx276zG0iy2nQhxfWk6MUrIjDs5SvKRN/?= =?us-ascii?Q?azL3FErcNhJnU3ojsTXwKu6rSn7XPL5dDLxcj1IhnAjlIZVn6yL2uitcV365?= =?us-ascii?Q?BcjaE1mWsubwgDcviMJNV6x1pB+DI//oAvrOPKI5cqxbFJqLxYisBBS2UW4h?= =?us-ascii?Q?RGd6EkoMDva4z+KPyo1pextNFgE9KqwFpmw0aabm2vYNchu0/6gWX2rmxIFm?= =?us-ascii?Q?Op3O8KX0AJRqkTYBlF7JjZysTkzYC9kuvla+PCOk5lAfn5W5ligc/f1mafi9?= =?us-ascii?Q?qp0Xpsp4dhTZrRvadeAyAcHlMNgkiCU99bwDFZqHBza5ewpeoH0Jm/FUz6EK?= =?us-ascii?Q?9ql+VqewP43NCD752xtbHtFLdKEfNYzH8uNlWHXD9aF51ZWq4ovYfPNUhqlK?= =?us-ascii?Q?G7n61R8WcOwd9TalyJYzQ9DGzJi4HOhCFL0d/n2XP258yx7r5zIw7rEwdT+5?= =?us-ascii?Q?V3f/GDg/+eV5IYjXfCnGRCSaIgzrAOpWQ/kSo+Ba/UXMqUgC6Qx0N03vwoE5?= =?us-ascii?Q?hnR+cleji8HHQ2ihnKwbxRR9cc3flx700BbzdrScSq1WV/YHFDoLWsgbIW38?= =?us-ascii?Q?VfgJz/3Y8Bk+25EuQrRsEPfEtjJYs/dGy4U5vmwfsvMxk5jGb9WpnRIW0I7t?= =?us-ascii?Q?LhUmL8xNcvHUO77IILDnq1b3Vx7SZ9ovfs9eF5NUxqAwGXJhFLGQLNXQajHX?= =?us-ascii?Q?ajqEtzsrgUYiXiltRFh8QP2X3I0jUIQW1Er+W9tC09iKkoUua762+ZD4jHaM?= =?us-ascii?Q?cWc=3D?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5822 Original-Authentication-Results: foss.arm.com; dkim=none (message not signed) header.d=none; foss.arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: cb83a15d-ba76-4dce-58ed-08d90fc2cf7c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: j5OP4lBvK4+VSWIfH9hFqlj8vEQMIeImJEylT+yUzXT56ZXWFCej/IDEkQtn4CmbEJZC+5PoRQtw+dLT7Qynk3tFAfI5xbPKRPrgd0OmU0yRoIdSZhR/ez4WtLt+0YxGZ/hGMOBirEvr6CwEeW0qkv61O15oRMaYr3D1c2uCPR81+xHb1oZ7K3am7teG5hQBFPUR4CT3M3/Gm9EXuByGo+0IYjUCNpqyVs5uDOh7gCJ387Tf9KILm/EQZ8oZUzaSGYfWbZyT3pU++xkgwQApnJwKQCz4E/MdusgOAnfmcBmboyWq+89OrjAdVfHSM0wVBaMtAbHPQsb+LkjQBSC+chLKdELck3LEPIcGhyvduI5ZSNT8YenucGaneKmM8j0KVddm7M+b6N4pE7vGzvQk5o8k6IeGHz+JEs+vZC8Ua3ug3KNfVlbuQmuSv1ToPQgltG2XTCd1nIJBCp71le4W+h+afRI4un9BXh/4j8PwavHwawl1QLSqGL5yI+QWnP1Uj0GaueMslF0HZtu7AOtyGqemlz31RDTeADQPRwtMVU1oyAzRaPW7gev/pZn//sOWH1pRzP6MX6MYIKiIK0UAOSl1IiLf2BVJdanZKZYVsM7j5muz1qX53GYDRd4fj9iOEemcOkb9adUTqKr61LWfz/XRFjIXYRfHKtCnANo16XA= 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)(376002)(346002)(136003)(396003)(39860400002)(36840700001)(46966006)(33656002)(55016002)(4326008)(8676002)(86362001)(9686003)(83380400001)(336012)(53546011)(6506007)(26005)(356005)(478600001)(110136005)(186003)(7696005)(2906002)(82310400003)(70586007)(70206006)(52536014)(47076005)(5660300002)(316002)(8936002)(36860700001)(82740400003)(54906003)(30864003)(81166007)(579004)(559001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 May 2021 12:39:36.5592 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 49c91abd-3140-4abc-705a-08d90fc2d7b0 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: AM5EUR03FT058.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4211 X-Spam-Status: No, score=-14.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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: Wed, 05 May 2021 12:39:48 -0000 Hi Richard, > -----Original Message----- > From: Richard Earnshaw > Sent: 05 May 2021 11:15 > To: Srinath Parvathaneni ; gcc- > patches@gcc.gnu.org > Cc: Richard Earnshaw > Subject: Re: [GCC][PATCH] arm: Remove duplicate definitions from > arm_mve.h (pr100419). >=20 >=20 >=20 > On 05/05/2021 10:56, Srinath Parvathaneni via Gcc-patches wrote: > > Hi All, > > > > This patch removes several duplicated intrinsic definitions from > > arm_mve.h mentioned in PR100419 and also fixes the wrong arguments > > in few of intrinsics polymorphic variants. > > > > Regression tested and found no issues. > > > > Ok for master ? GCC-11 and GCC-10 branch backports? > > gcc/ChangeLog: > > > > 2021-05-04 Srinath Parvathaneni > > > > PR target/100419 > > * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wron= g > arguments. > > (__arm_vcmpneq): Remove duplicate definition. > > (__arm_vstrwq_scatter_offset_p): Likewise. > > (__arm_vmaxq_x): Likewise. > > (__arm_vmlsdavaq): Likewise. > > (__arm_vmlsdavaxq): Likewise. > > (__arm_vmlsdavq_p): Likewise. > > (__arm_vmlsdavxq_p): Likewise. > > (__arm_vrmlaldavhaq): Likewise. > > (__arm_vstrbq_p): Likewise. > > (__arm_vstrbq_scatter_offset): Likewise. > > (__arm_vstrbq_scatter_offset_p): Likewise. > > (__arm_vstrdq_scatter_offset): Likewise. > > (__arm_vstrdq_scatter_offset_p): Likewise. > > (__arm_vstrdq_scatter_shifted_offset): Likewise. > > (__arm_vstrdq_scatter_shifted_offset_p): Likewise. > > > > Co-authored-by: Joe Ramsay >=20 > Let's take this example: >=20 > -#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > +#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > __typeof(p2) __p2 =3D (p2); \ > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, \ > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(p0, int32_t *), __p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, > __ARM_mve_coerce(__p2, uint32x4_t)));}) > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > + int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(__p0, int32_t *), p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > + int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(__p0, uint32_t *), > p1, > __ARM_mve_coerce(__p2, uint32x4_t)));}) >=20 > It removes the safe shadow copy of p1 but adds a safe shadow copy of p0. > Why? Isn't it better (and safer) to just create shadow copies of all > the arguments and let the compiler worry about when it's safe to > eliminate them? As you already know polymorphic variants are used to select the intrinsics = based on type of their arguments. Consider the following code from arm_mve.h: __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vstrwq_scatter_offset_s32 (int32_t * __base, uint32x4_t __offset, int= 32x4_t __value) { __builtin_mve_vstrwq_scatter_offset_sv4si ((__builtin_neon_si *) __base, = __offset, __value); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vstrwq_scatter_offset_u32 (uint32_t * __base, uint32x4_t __offset, ui= nt32x4_t __value) { __builtin_mve_vstrwq_scatter_offset_uv4si ((__builtin_neon_si *) __base, = __offset, __value); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __arm_vstrwq_scatter_offset_f32 (float32_t * __base, uint32x4_t __offset, f= loat32x4_t __value) { __builtin_mve_vstrwq_scatter_offset_fv4sf ((__builtin_neon_si *) __base, = __offset, __value); } Of above 3 functions, which function is to be called from the following pol= ymorphic variant is decided based on type of arguments p0, p1 and p2. #define __arm_vstrwq_scatter_offset(p0,p1,p2) For the 3 function definitions mentioned above, only type of arguments 1 (p= 0) and 3 (p2) varies whereas type of second argument (p1) is same (uint32x4_t). This is the reason we need only shadow copy of p0 and p2 to determine the a= ctual function to be called and type of p1 is irrelevant. Previously p1 was wrongly used to determine t= he function instead of p0 and that is a bug, which got fixed in this patch. Since type of p1 is irrelevant in deciding the function to be called and I = believe adding shadow copy for p1 (__typeof(p1) __p1 =3D (p1) ) in this macro expansion is of no use. = Considering we have more than 250 polymorphic variants defined in arm_mve.h headers, this results in more= than 250 lines of extra code. Regards, Srinath. > R. >=20 > > > > > > ############### Attachment also inlined for ease of reply > ############### > > > > > > diff --git a/gcc/config/arm/arm_mve.h b/gcc/config/arm/arm_mve.h > > index > 3a40c6e68161b64319b071f57a5b0d8393303cfd..dc1d874a6366eb5fe755a70c > 72ed371c915bd04b 100644 > > --- a/gcc/config/arm/arm_mve.h > > +++ b/gcc/config/arm/arm_mve.h > > @@ -37808,33 +37808,19 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_base_p_u32(p0, p1, __ARM_mve_coerce(__p2, > uint32x4_t), p3), \ > > int (*)[__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_base_p_f32(p0, p1, __ARM_mve_coerce(__p2, > float32x4_t), p3));}) > > > > -#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > +#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(p0, int32_t *), __p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t)), \ > > - int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_f32 (__ARM_mve_coerce(p0, float32_t *), > __p1, __ARM_mve_coerce(__p2, float32x4_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(__p0, int32_t *), p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > + int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(__p0, uint32_t *), > p1, __ARM_mve_coerce(__p2, uint32x4_t)), \ > > + int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_f32 (__ARM_mve_coerce(__p0, float32_t *), > p1, __ARM_mve_coerce(__p2, float32x4_t)));}) > > > > -#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p1) __p= 1 > =3D (p1); \ > > +#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) > __p0 =3D (p0); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(p0, int32_t *), > __p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t), p3), \ > > - int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_p_f32 (__ARM_mve_coerce(p0, float32_t *), > __p1, __ARM_mve_coerce(__p2, float32x4_t), p3));}) > > - > > -#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p1) __p= 1 > =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(p0, int32_t *), > __p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t), p3), \ > > - int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_p_f32 (__ARM_mve_coerce(p0, float32_t *), > __p1, __ARM_mve_coerce(__p2, float32x4_t), p3));}) > > - > > -#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(p0, int32_t *), __p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t)), \ > > - int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_f32 (__ARM_mve_coerce(p0, float32_t *), > __p1, __ARM_mve_coerce(__p2, float32x4_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(__p0, int32_t *), > p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > + int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(__p0, uint32_t *), > p1, __ARM_mve_coerce(__p2, uint32x4_t), p3), \ > > + int (*)[__ARM_mve_type_float32_t_ptr][__ARM_mve_type_float32x4_t]: > __arm_vstrwq_scatter_offset_p_f32 (__ARM_mve_coerce(__p0, float32_t *), > p1, __ARM_mve_coerce(__p2, float32x4_t), p3));}) > > > > #define __arm_vstrwq_scatter_shifted_offset(p0,p1,p2) ({ __typeof(p1) > __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > @@ -38422,6 +38408,12 @@ extern void *__ARM_undef; > > #define __arm_vcmpneq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t)), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t)), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t)), \ > > + int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint8_t)), \ > > + int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16_t)), \ > > + int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32_t)), \ > > int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpneq_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t)), \ > > int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpneq_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpneq_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t)), \ > > @@ -38871,23 +38863,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpeqq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16_t)), \ > > int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpeqq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32_t)));}) > > > > -#define __arm_vcmpneq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpneq_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpneq_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpneq_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vcmpneq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vcmpneq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vcmpneq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t)), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint8_t)), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16_t)), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32_t)));}) > > - > > - > > #define __arm_vqmovntq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > @@ -39036,22 +39011,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vcmpneq_m_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vcmpneq_m_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > > > -#define __arm_vcmpneq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpneq_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpneq_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpneq_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vcmpneq_u8 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vcmpneq_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vcmpneq_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32x4_t)), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t)), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u8 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint8_t)), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint16_t)), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpneq_n_u32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, uint32_t)));}) > > - > > #define __arm_vshlcq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > > int (*)[__ARM_mve_type_int8x16_t]: __arm_vshlcq_s8 > (__ARM_mve_coerce(__p0, int8x16_t), p1, p2), \ > > @@ -39367,52 +39326,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vminaq_m_s16 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vminaq_m_s32 (__ARM_mve_coerce(__p0, uint32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > > > -#define __arm_vrmlaldavhaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpltq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpltq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpltq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpltq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpltq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpltq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t), p2));}) > > - > > -#define __arm_vmlsdavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpleq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpleq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpleq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpleq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpleq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpleq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t), p2));}) > > - > > -#define __arm_vmlsdavq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vcmpgtq_m_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vcmpgtq_m_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vcmpgtq_m_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vcmpgtq_m_n_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vcmpgtq_m_n_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vcmpgtq_m_n_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32_t), p2));}) > > - > > -#define __arm_vmlsdavaxq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: > __arm_vshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: > __arm_vshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: > __arm_vshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: > __arm_vshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > - > > -#define __arm_vmlsdavaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int16x8_t]: > __arm_vrshrntq_n_s16 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int32x4_t]: > __arm_vrshrntq_n_s32 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint16x8_t]: > __arm_vrshrntq_n_u16 (__ARM_mve_coerce(__p0, uint8x16_t), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint32x4_t]: > __arm_vrshrntq_n_u32 (__ARM_mve_coerce(__p0, uint16x8_t), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > - > > #define __arm_vmovlbq_m(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > @@ -39711,26 +39624,6 @@ extern void *__ARM_undef; > > int > (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_uint16x8_t]: __arm_vmulq_m_u16 (__ARM_mve_coerce(__p0, > uint16x8_t), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > int > (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_uint32x4_t]: __arm_vmulq_m_u32 (__ARM_mve_coerce(__p0, > uint32x4_t), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > > > -#define __arm_vstrbq(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_int8x16_t]: > __arm_vstrbq_s8 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int8x16_t)), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int16x8_t]: > __arm_vstrbq_s16 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrbq_s32 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vstrbq_u8 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t)), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vstrbq_u16 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrbq_u32 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) > > - > > -#define __arm_vstrbq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_s8 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_s16 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_s32 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_u8 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_u16 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_u32 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));}) > > - > > #define __arm_vstrwq_scatter_base(p0,p1,p2) ({ __typeof(p2) __p2 =3D = (p2); > \ > > _Generic( (int (*)[__ARM_mve_typeid(__p2)])0, \ > > int (*)[__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_base_s32(p0, p1, __ARM_mve_coerce(__p2, > int32x4_t)), \ > > @@ -39745,27 +39638,6 @@ extern void *__ARM_undef; > > 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)));}) > > > > -#define __arm_vstrbq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __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_int8x16_t]: > __arm_vstrbq_p_s8 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int16x8_t]: > __arm_vstrbq_p_s16 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrbq_p_s32 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vstrbq_p_u8 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vstrbq_p_u16 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrbq_p_u32 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > - > > -#define __arm_vstrbq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) __p= 0 > =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_p_s8 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_p_s16 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_p_s32 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_p_u8 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_p_u16 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_p_u32 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > - > > #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), \ > > @@ -39921,34 +39793,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int64x2_t]: __arm_vstrdq_scatter_base_s64 > (p0, p1, __ARM_mve_coerce(__p2, int64x2_t)), \ > > int (*)[__ARM_mve_type_uint64x2_t]: __arm_vstrdq_scatter_base_u64 > (p0, p1, __ARM_mve_coerce(__p2, uint64x2_t)));}) > > > > -#define __arm_vstrdq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) __p= 0 > =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_p_s64 (__ARM_mve_coerce(__p0, int64_t *), > __p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_p_u64 (__ARM_mve_coerce(__p0, uint64_t *), > __p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > - > > -#define __arm_vstrdq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_s64 (__ARM_mve_coerce(__p0, int64_t *), > __p1, __ARM_mve_coerce(__p2, int64x2_t)), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_u64 (__ARM_mve_coerce(__p0, uint64_t *), > __p1, __ARM_mve_coerce(__p2, uint64x2_t)));}) > > - > > -#define __arm_vstrdq_scatter_shifted_offset_p(p0,p1,p2,p3) > ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_s64 (__ARM_mve_coerce(__p0, > int64_t *), __p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_u64 (__ARM_mve_coerce(__p0, > uint64_t *), __p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > - > > -#define __arm_vstrdq_scatter_shifted_offset(p0,p1,p2) ({ __typeof(p0) > __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_s64 (__ARM_mve_coerce(__p0, > int64_t *), __p1, __ARM_mve_coerce(__p2, int64x2_t)), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_u64 (__ARM_mve_coerce(__p0, > uint64_t *), __p1, __ARM_mve_coerce(__p2, uint64x2_t)));}) > > - > > #define __arm_vstrhq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 = =3D > (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > _Generic( (int > (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typei > d(__p2)])0, \ > > @@ -39981,29 +39825,17 @@ extern void *__ARM_undef; > > int > (*)[__ARM_mve_type_uint16_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrhq_scatter_shifted_offset_p_u16 > (__ARM_mve_coerce(p0, uint16_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > int > (*)[__ARM_mve_type_uint16_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrhq_scatter_shifted_offset_p_u32 > (__ARM_mve_coerce(p0, uint16_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > > > -#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > +#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(p0, int32_t *), __p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(__p0, int32_t *), p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > + int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(__p0, uint32_t *), > p1, __ARM_mve_coerce(__p2, uint32x4_t)));}) > > > > -#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p1) __p= 1 > =3D (p1); \ > > +#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) > __p0 =3D (p0); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(p0, int32_t *), > __p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t)));}) > > - > > -#define __arm_vstrwq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p1) __p= 1 > =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(p0, int32_t *), > __p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > - > > -#define __arm_vstrwq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_s32 (__ARM_mve_coerce(p0, int32_t *), __p1, > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_u32 (__ARM_mve_coerce(p0, uint32_t *), > __p1, __ARM_mve_coerce(__p2, uint32x4_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int32_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrwq_scatter_offset_p_s32 (__ARM_mve_coerce(__p0, int32_t *), > p1, __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > + int (*)[__ARM_mve_type_uint32_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrwq_scatter_offset_p_u32 (__ARM_mve_coerce(__p0, uint32_t *), > p1, __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > > > #define __arm_vstrwq_scatter_shifted_offset(p0,p1,p2) ({ __typeof(p1) > __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > @@ -40160,32 +39992,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_veorq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_veorq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > > > -#define __arm_vmaxq_x(p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmulq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmulq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmulq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_s8 (__ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_s16 (__ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_s32 (__ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32_t), p3), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vmulq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vmulq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vmulq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_u8 (__ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8_t), p3), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_u16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16_t), p3), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_int_n]: > __arm_vmulq_x_n_u32 (__ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32_t), p3));}) > > - > > -#define __arm_vminq_x(p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vminq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vminq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vminq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vminq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vminq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vminq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > - > > #define __arm_vmovlbq_x(p1,p2) ({ __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int (*)[__ARM_mve_typeid(__p1)])0, \ > > int (*)[__ARM_mve_type_int8x16_t]: __arm_vmovlbq_x_s8 > (__ARM_mve_coerce(__p1, int8x16_t), p2), \ > > @@ -41013,13 +40819,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsldavaxq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsldavaxq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3));}) > > > > -#define __arm_vrmlaldavhaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0= ); > \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_typ > e_int32x4_t]: __arm_vrmlaldavhaq_p_s32 (__ARM_mve_coerce(__p0, > int64_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, > int32x4_t), p3), \ > > - int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_ty > pe_uint32x4_t]: __arm_vrmlaldavhaq_p_u32 (__ARM_mve_coerce(__p0, > uint64_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, > uint32x4_t), p3));}) > > - > > #define __arm_vrmlaldavhaxq_p(p0,p1,p2,p3) > __arm_vrmlaldavhaxq_p_s32(p0,p1,p2,p3) > > > > #define __arm_vrmlsldavhaq_p(p0,p1,p2,p3) > __arm_vrmlsldavhaq_p_s32(p0,p1,p2,p3) > > @@ -41343,21 +41142,47 @@ extern void *__ARM_undef; > > int > (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t][__ARM_mve > _type_int16x8_t]: __arm_vqrdmladhxq_m_s16 (__ARM_mve_coerce(__p0, > int16x8_t), __ARM_mve_coerce(__p1, int16x8_t), __ARM_mve_coerce(__p2, > int16x8_t), p3), \ > > int > (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t][__ARM_mve > _type_int32x4_t]: __arm_vqrdmladhxq_m_s32 (__ARM_mve_coerce(__p0, > int32x4_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, > int32x4_t), p3));}) > > > > -#define __arm_vmlsdavaxq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0);= \ > > - __typeof(p1) __p1 =3D (p1); \ > > +#define __arm_vmlsdavaxq_p(p0,p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1);= \ > > __typeof(p2) __p2 =3D (p2); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaxq_p_s8 (__p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaxq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaxq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3));}) > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaxq_p_s8 (p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaxq_p_s16 (p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaxq_p_s32 (p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3));}) > > + > > +#define __arm_vmlsdavaq(p0,p1,p2) ({ __typeof(p1) __p1 =3D (p1); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaq_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaq_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaq_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)));}) > > + > > +#define __arm_vmlsdavaxq(p0,p1,p2) ({ __typeof(p2) __p2 =3D (p2); \ > > + __typeof(p1) __p1 =3D (p1); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaxq_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaxq_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaxq_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)));}) > > > > -#define __arm_vmlsdavaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0); = \ > > +#define __arm_vmlsdavq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > + > > +#define __arm_vmlsdavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > + __typeof(p1) __p1 =3D (p1); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavxq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > + > > +#define __arm_vmlsdavaq_p(p0,p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); = \ > > __typeof(p2) __p2 =3D (p2); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaq_p_s8(__p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaq_p_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaq_p_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3));}) > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaq_p_s8(p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaq_p_s16(p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaq_p_s32(p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3));}) > > > > #define __arm_vmladavaxq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0)= ; \ > > __typeof(p1) __p1 =3D (p1); \ > > @@ -41445,8 +41270,8 @@ extern void *__ARM_undef; > > > > #define __arm_viwdupq_u16(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > > - int (*)[__ARM_mve_type_int_n]: __arm_viwdupq_n_u16 > (__ARM_mve_coerce(__p0, uint32_t), p1, p2), \ > > - int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_viwdupq_wb_u16 > (__ARM_mve_coerce(__p0, uint32_t *), p1, p2));}) > > + int (*)[__ARM_mve_type_int_n]: __arm_viwdupq_n_u16 > (__ARM_mve_coerce(__p0, uint32_t), p1, (const int) p2), \ > > + int (*)[__ARM_mve_type_uint32_t_ptr]: __arm_viwdupq_wb_u16 > (__ARM_mve_coerce(__p0, uint32_t *), p1, (const int) p2));}) > > > > #define __arm_viwdupq_u32(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > _Generic( (int (*)[__ARM_mve_typeid(__p0)])0, \ > > @@ -41628,16 +41453,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: > __arm_vmaxavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: > __arm_vmaxavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > > > -#define __arm_vmaxq_x(p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmaxq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmaxq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmaxq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vmaxq_x_u8( __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > - int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vmaxq_x_u16( __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > - int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vmaxq_x_u32( __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > - > > #define __arm_vmaxvq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > @@ -41672,6 +41487,16 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int16x8_t]: > __arm_vminavq_p_s16 (__p0, __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > int (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t]: > __arm_vminavq_p_s32 (__p0, __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > > > +#define __arm_vmaxq_x(p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmaxq_x_s8 (__ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > + int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmaxq_x_s16 (__ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > + int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmaxq_x_s32 (__ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > + int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vmaxq_x_u8 (__ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > + int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vmaxq_x_u16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > + int (*)[__ARM_mve_type_uint32x4_t][__ARM_mve_type_uint32x4_t]: > __arm_vmaxq_x_u32 (__ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > + > > #define __arm_vminq_x(p1,p2,p3) ({ __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > @@ -41810,22 +41635,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlaldavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlaldavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > > > -#define __arm_vmlsdavaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaq_s8(__p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaq_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaq_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)));}) > > - > > -#define __arm_vmlsdavaxq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p1)][__ARM_mve_typeid(__p2)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavaxq_s8(__p0, __ARM_mve_coerce(__p1, int8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavaxq_s16(__p0, __ARM_mve_coerce(__p1, int16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavaxq_s32(__p0, __ARM_mve_coerce(__p1, int32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)));}) > > - > > #define __arm_vmlsdavq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > @@ -41833,13 +41642,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavq_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavq_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t)));}) > > > > -#define __arm_vmlsdavq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > - > > #define __arm_vmlsdavxq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > @@ -41847,13 +41649,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavxq_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t)), \ > > int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavxq_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t)));}) > > > > -#define __arm_vmlsdavxq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)])0, \ > > - int (*)[__ARM_mve_type_int8x16_t][__ARM_mve_type_int8x16_t]: > __arm_vmlsdavxq_p_s8 (__ARM_mve_coerce(__p0, int8x16_t), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int16x8_t][__ARM_mve_type_int16x8_t]: > __arm_vmlsdavxq_p_s16 (__ARM_mve_coerce(__p0, int16x8_t), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int32x4_t][__ARM_mve_type_int32x4_t]: > __arm_vmlsdavxq_p_s32 (__ARM_mve_coerce(__p0, int32x4_t), > __ARM_mve_coerce(__p1, int32x4_t), p2));}) > > - > > #define __arm_vmlsldavaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > @@ -41948,13 +41743,6 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint8x16_t][__ARM_mve_type_uint8x16_t]: > __arm_vmulltq_poly_x_p8 (__ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > int (*)[__ARM_mve_type_uint16x8_t][__ARM_mve_type_uint16x8_t]: > __arm_vmulltq_poly_x_p16 (__ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3));}) > > > > -#define __arm_vrmlaldavhaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > - __typeof(p1) __p1 =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_typ > e_int32x4_t]: __arm_vrmlaldavhaq_s32 (__ARM_mve_coerce(__p0, int64_t), > __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), > \ > > - int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_ty > pe_uint32x4_t]: __arm_vrmlaldavhaq_u32 (__ARM_mve_coerce(__p0, > uint64_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, > uint32x4_t)));}) > > - > > #define __arm_vrmlaldavhaxq(p0,p1,p2) > __arm_vrmlaldavhaxq_s32(p0,p1,p2) > > > > #define __arm_vrmlaldavhq(p0,p1) ({ __typeof(p0) __p0 =3D (p0); \ > > @@ -41994,35 +41782,15 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vstrbq_u16 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t)), \ > > int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrbq_u32 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t)));}) > > > > -#define __arm_vstrbq_p(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_int8x16_t]: > __arm_vstrbq_p_s8 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int16x8_t]: > __arm_vstrbq_p_s16 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > - int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrbq_p_s32 (__ARM_mve_coerce(p0, int8_t *), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vstrbq_p_u8 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vstrbq_p_u16 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > - int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrbq_p_u32 (__ARM_mve_coerce(p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > - > > -#define __arm_vstrbq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typei > d(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_s8 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_s16 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_s32 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_u8 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_u16 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t)), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_u32 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t)));}) > > - > > - > > -#define __arm_vstrbq_scatter_offset_p(p0,p1,p2,p3) ({__typeof(p1) __p1 > =3D (p1); \ > > - __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int > (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typei > d(__p2)])0, \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_p_s8 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_p_s16 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > - int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_p_s32 > (__ARM_mve_coerce(p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_p_u8 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_p_u16 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > - int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_p_u32 > (__ARM_mve_coerce(p0, uint8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > +#define __arm_vstrbq_p(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > + __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_int8x16_t]: > __arm_vstrbq_p_s8 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int8x16_t), p2), \ > > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int16x8_t]: > __arm_vstrbq_p_s16 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int16x8_t), p2), \ > > + int (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_int32x4_t]: > __arm_vstrbq_p_s32 (__ARM_mve_coerce(__p0, int8_t *), > __ARM_mve_coerce(__p1, int32x4_t), p2), \ > > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t]: > __arm_vstrbq_p_u8 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint8x16_t), p2), \ > > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t]: > __arm_vstrbq_p_u16 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint16x8_t), p2), \ > > + int (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t]: > __arm_vstrbq_p_u32 (__ARM_mve_coerce(__p0, uint8_t *), > __ARM_mve_coerce(__p1, uint32x4_t), p2));}) > > > > #define __arm_vstrdq_scatter_base(p0,p1,p2) ({ __typeof(p2) __p2 =3D = (p2); > \ > > _Generic( (int (*)[__ARM_mve_typeid(__p2)])0, \ > > @@ -42034,29 +41802,65 @@ extern void *__ARM_undef; > > int (*)[__ARM_mve_type_int64x2_t]: __arm_vstrdq_scatter_base_p_s64 > (p0, p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > int (*)[__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_base_p_u64 (p0, p1, __ARM_mve_coerce(__p2, > uint64x2_t), p3));}) > > > > -#define __arm_vstrdq_scatter_offset(p0,p1,p2) ({ __typeof(p1) __p1 =3D > (p1); \ > > +#define __arm_vrmlaldavhaq(p0,p1,p2) ({ __typeof(p0) __p0 =3D (p0); \ > > + __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_s64 (__ARM_mve_coerce(p0, int64_t *), __p1, > __ARM_mve_coerce(__p2, int64x2_t)), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_u64 (__ARM_mve_coerce(p0, uint64_t *), __p1, > __ARM_mve_coerce(__p2, uint64x2_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > + int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_typ > e_int32x4_t]: __arm_vrmlaldavhaq_s32 (__ARM_mve_coerce(__p0, int64_t), > __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, int32x4_t)), > \ > > + int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_ty > pe_uint32x4_t]: __arm_vrmlaldavhaq_u32 (__ARM_mve_coerce(__p0, > uint64_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, > uint32x4_t)));}) > > > > -#define __arm_vstrdq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p1) __p= 1 > =3D (p1); \ > > +#define __arm_vrmlaldavhaq_p(p0,p1,p2,p3) ({ __typeof(p0) __p0 =3D (p0= ); > \ > > + __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_p_s64 (__ARM_mve_coerce(p0, int64_t *), > __p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_p_u64 (__ARM_mve_coerce(p0, uint64_t *), > __p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > + int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_int32x4_t][__ARM_mve_typ > e_int32x4_t]: __arm_vrmlaldavhaq_p_s32 (__ARM_mve_coerce(__p0, > int64_t), __ARM_mve_coerce(__p1, int32x4_t), __ARM_mve_coerce(__p2, > int32x4_t), p3), \ > > + int > (*)[__ARM_mve_type_int_n][__ARM_mve_type_uint32x4_t][__ARM_mve_ty > pe_uint32x4_t]: __arm_vrmlaldavhaq_p_u32 (__ARM_mve_coerce(__p0, > uint64_t), __ARM_mve_coerce(__p1, uint32x4_t), __ARM_mve_coerce(__p2, > uint32x4_t), p3));}) > > > > -#define __arm_vstrdq_scatter_shifted_offset(p0,p1,p2) ({ __typeof(p1) > __p1 =3D (p1); \ > > +#define __arm_vstrbq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > + __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_s64 (__ARM_mve_coerce(p0, int64_t > *), __p1, __ARM_mve_coerce(__p2, int64x2_t)), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_u64 (__ARM_mve_coerce(p0, uint64_t > *), __p1, __ARM_mve_coerce(__p2, uint64x2_t)));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_s8 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t)), \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_s16 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t)), \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_s32 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t)), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_u8 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t)), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_u16 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t)), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_u32 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t)));}) > > > > -#define __arm_vstrdq_scatter_shifted_offset_p(p0,p1,p2,p3) > ({ __typeof(p1) __p1 =3D (p1); \ > > +#define __arm_vstrbq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) __p= 0 > =3D (p0); \ > > + __typeof(p1) __p1 =3D (p1); \ > > __typeof(p2) __p2 =3D (p2); \ > > - _Generic( (int (*)[__ARM_mve_typeid(p0)][__ARM_mve_typeid(__p2)])0, > \ > > - int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_s64 (__ARM_mve_coerce(p0, > int64_t *), __p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > - int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_u64 (__ARM_mve_coerce(p0, > uint64_t *), __p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p1)][__ARM_mve_typ > eid(__p2)])0, \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_m > ve_type_int8x16_t]: __arm_vstrbq_scatter_offset_p_s8 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint8x16_t), > __ARM_mve_coerce(__p2, int8x16_t), p3), \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_m > ve_type_int16x8_t]: __arm_vstrbq_scatter_offset_p_s16 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint16x8_t), > __ARM_mve_coerce(__p2, int16x8_t), p3), \ > > + int > (*)[__ARM_mve_type_int8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_m > ve_type_int32x4_t]: __arm_vstrbq_scatter_offset_p_s32 > (__ARM_mve_coerce(__p0, int8_t *), __ARM_mve_coerce(__p1, uint32x4_t), > __ARM_mve_coerce(__p2, int32x4_t), p3), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint8x16_t][__ARM_ > mve_type_uint8x16_t]: __arm_vstrbq_scatter_offset_p_u8 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint8x16_t), __ARM_mve_coerce(__p2, uint8x16_t), p3), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint16x8_t][__ARM_ > mve_type_uint16x8_t]: __arm_vstrbq_scatter_offset_p_u16 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint16x8_t), __ARM_mve_coerce(__p2, uint16x8_t), p3), \ > > + int > (*)[__ARM_mve_type_uint8_t_ptr][__ARM_mve_type_uint32x4_t][__ARM_ > mve_type_uint32x4_t]: __arm_vstrbq_scatter_offset_p_u32 > (__ARM_mve_coerce(__p0, uint8_t *), __ARM_mve_coerce(__p1, > uint32x4_t), __ARM_mve_coerce(__p2, uint32x4_t), p3));}) > > + > > +#define __arm_vstrdq_scatter_offset_p(p0,p1,p2,p3) ({ __typeof(p0) __p= 0 > =3D (p0); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_p_s64 (__ARM_mve_coerce(__p0, int64_t *), > p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > + int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_p_u64 (__ARM_mve_coerce(__p0, uint64_t *), > p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > + > > +#define __arm_vstrdq_scatter_offset(p0,p1,p2) ({ __typeof(p0) __p0 =3D > (p0); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_offset_s64 (__ARM_mve_coerce(__p0, int64_t *), p1, > __ARM_mve_coerce(__p2, int64x2_t)), \ > > + int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_offset_u64 (__ARM_mve_coerce(__p0, uint64_t *), p1, > __ARM_mve_coerce(__p2, uint64x2_t)));}) > > + > > +#define __arm_vstrdq_scatter_shifted_offset_p(p0,p1,p2,p3) > ({ __typeof(p0) __p0 =3D (p0); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_s64 (__ARM_mve_coerce(__p0, > int64_t *), p1, __ARM_mve_coerce(__p2, int64x2_t), p3), \ > > + int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_p_u64 (__ARM_mve_coerce(__p0, > uint64_t *), p1, __ARM_mve_coerce(__p2, uint64x2_t), p3));}) > > + > > +#define __arm_vstrdq_scatter_shifted_offset(p0,p1,p2) ({ __typeof(p0) > __p0 =3D (p0); \ > > + __typeof(p2) __p2 =3D (p2); \ > > + _Generic( (int > (*)[__ARM_mve_typeid(__p0)][__ARM_mve_typeid(__p2)])0, \ > > + int (*)[__ARM_mve_type_int64_t_ptr][__ARM_mve_type_int64x2_t]: > __arm_vstrdq_scatter_shifted_offset_s64 (__ARM_mve_coerce(__p0, > int64_t *), p1, __ARM_mve_coerce(__p2, int64x2_t)), \ > > + int (*)[__ARM_mve_type_uint64_t_ptr][__ARM_mve_type_uint64x2_t]: > __arm_vstrdq_scatter_shifted_offset_u64 (__ARM_mve_coerce(__p0, > uint64_t *), p1, __ARM_mve_coerce(__p2, uint64x2_t)));}) > > > > #endif /* __cplusplus */ > > #endif /* __ARM_FEATURE_MVE */ > >