From patchwork Wed Oct 9 09:41:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ricardo Jesus X-Patchwork-Id: 1994700 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=Nvidia.com header.i=@Nvidia.com header.a=rsa-sha256 header.s=selector2 header.b=faAHYIKW; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4XNnvz0853z1xsc for ; Wed, 9 Oct 2024 20:41:35 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 15E5938650E5 for ; Wed, 9 Oct 2024 09:41:33 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on20613.outbound.protection.outlook.com [IPv6:2a01:111:f403:2409::613]) by sourceware.org (Postfix) with ESMTPS id 6252B385DC1E; Wed, 9 Oct 2024 09:41:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 6252B385DC1E Authentication-Results: sourceware.org; dmarc=fail (p=reject dis=none) header.from=nvidia.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=nvidia.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 6252B385DC1E Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2409::613 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728466870; cv=pass; b=E5WYAbJhmN5M9olynyaCI40RjXGX3vuAXROElSVonlFDqczEU/jjuuivIl4upjuKq/w7ooASHXyEJgSsWgjMbzGLaLZq4BWOjyE1QOqn+A02NSHDVCoOvmMyjb0MVU7NHHnlJbJhEcHpNKgg/dKWvLS6ypSxORfyy7RuATbKnEQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1728466870; c=relaxed/simple; bh=xvlHMjk84wP9tE5ajiKGgxxyfYPF/njW26b3+Rt7S2I=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=qhE9VBYrUYfpQJgwyWfuJgOG5VIG3o0p8fncmS4WReudtMfmMJKotHx1zj5tOUV25klXnhPQ0ro154S0Y2Mx3YbCBU7DJCgqdedviONbxRsRo3dw81EV+7dR/4hksnnzEACmCzv6PQ0vJfJYRg/APm9teyIRBAL1af7lRlZqVMI= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JL3I+op/btVg0XG9Qt5ARkFGgj+Pfe/te2d6u/wsbsfr8S7fdYm+stcyqnEho8GCtUCgRqmi3QJYo3PI3I8vhbiKZTPmgN4a6mtxAHkrWhOnkOsqTCJF1u+IY0eEzWhJOovVmEI04BTeFBn4bBd3hBlMo+8v2gAInHYDuplEoxoT7tuxqm1rm9qJb+zmxD2Di8z7gBFlcp9u0o/ic/ak/leEORS7z+7X87Np/KaBKQXomL1/p2M6VhWq5IhNCBEYETR+gErgicCHkJD//ipiNLJUYFNg3w2nc8qDXDvl91pyTV/qVE+m56Bprk9M9/J3Ic/E2ldSJdNyig3aSXspEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YYzFlSbjiEKuh4xVp/MKaO/9q5mj9/YOzPSjkqRaRxU=; b=aB45A6R2mUIHKRPzCdqypYa5BStzThp6fS5mEzg+1mPiN1SUxlGLHVikcJnHS/161tHmjzTDYIBTzmAo1s6EgcPH8qjgAETm17S3D7H84etz9cpMVunrlt6EMxtf8X0OqbTJ5NmWa7USaCVnZ6iLcvaQ4V854SkeBZ71b/2LKlKlwVgBOpKcUDv+JWsAD4cX9AKP/8T7iu0mknHtQIwgMZdam7WcvALDOJdMd1VtSLAgv08nCggdfXIBtbUoKcHiGLj9rA4CedSffhWSvkcpNOV6g4O5PJg2z0WkO/49UYjqxp5PhgYxCTStMYCqetjHDQcuFaVbqDmr8bQGETw2MA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YYzFlSbjiEKuh4xVp/MKaO/9q5mj9/YOzPSjkqRaRxU=; b=faAHYIKWMb9iJIZeoy0s1N7WcLqSzIw0//TATCK23gVrcEiaHqs0MsIESm9dGSgkYasXVuSmRQ2K9DNqFDCU+kiGp+HNRzFtomTZWLoCCoaZi/CoIiYrqJs21wLZihKgE8DGQCDqc1yhEdacGdFvePKZ/3fpFuXmNoFUe8n/RpTiwNNWmbXNuvE7/mtaY3S3hmRkfzkLx3UthYOrOqRBsjgSSkEVUpNiT7DIM0QuJpl8qXbB3SKCiHVaQVb+2Gzc27aqfzT7g+0m+AACQddd/zjnnHSXx82UZoFILJvUcUP4twdsAQ7XsF9T+6k8M8P3ujDohXgxBEipwh1ifWueIQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH3PR12MB8933.namprd12.prod.outlook.com (2603:10b6:610:17a::22) by CY8PR12MB8266.namprd12.prod.outlook.com (2603:10b6:930:79::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.18; Wed, 9 Oct 2024 09:41:04 +0000 Received: from CH3PR12MB8933.namprd12.prod.outlook.com ([fe80::9f5b:39f1:3299:bb63]) by CH3PR12MB8933.namprd12.prod.outlook.com ([fe80::9f5b:39f1:3299:bb63%5]) with mapi id 15.20.8026.019; Wed, 9 Oct 2024 09:41:03 +0000 Message-ID: Date: Wed, 9 Oct 2024 10:41:00 +0100 User-Agent: Mozilla Thunderbird Subject: [PATCH][aarch64][libstdc++] Use shufflevector instead of shuffle in opt_random.h Content-Language: en-GB, pt-PT References: To: gcc-patches@gcc.gnu.org, libstdc++@gcc.gnu.org Cc: jwakely@redhat.com From: Ricardo Jesus In-Reply-To: X-Forwarded-Message-Id: X-ClientProxiedBy: LO3P123CA0009.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:ba::14) To CH3PR12MB8933.namprd12.prod.outlook.com (2603:10b6:610:17a::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8933:EE_|CY8PR12MB8266:EE_ X-MS-Office365-Filtering-Correlation-Id: 51239ec3-4bd3-4025-5d43-08dce8467dd3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|376014|366016|10070799003; X-Microsoft-Antispam-Message-Info: =?utf-8?q?/+Kl606GDCeVbke24ZVTIQbm0igOxHv?= =?utf-8?q?8vEnRH8d39HNufCOdh2ZRQctAWDot3UTwBnpvTOqACk0JthjIaavsts4mBpBhwDtY?= =?utf-8?q?Coax6eeX1PTgOfkY8K8mDyJx/xs0JiYtJtxN56v16APrhoeY7qQcGpt44nZVtAMGy?= =?utf-8?q?730XTgSFK3XKuZNIM61g+g46Png6G4y1ldVLvH20KPOaXwHAYh49iPqD2ltwI8mHH?= =?utf-8?q?vHgOrcj4dhoaC2Psl22TDHjJeydcksXIfCsv/9zm7yVCP4nh42htg7q4OaszFreC2?= =?utf-8?q?7NRq8EdVkXfDBZ4IozzUUwLXPGgAd8PU0S0bMmpR4e508MFGJvOYp1WVYQXquIoWJ?= =?utf-8?q?LVoZGXRVi5bjgnIjrg1qBWaQBVqc1GxqguU5mpqJRGwlxHstn89Y0Lhmhueq+cnjW?= =?utf-8?q?cLdNGyIzVDGyRRnJwKF8zmaXVfBii4DOHAcK5EhDAVb/mpQPkbXs8opI88qQk0zwE?= =?utf-8?q?TKUs/5JaZhjDQKxV4XqC1hL8Ec5Rry5qFWr3Jfzr9JHLo7gcxcD56kpdMpsEZBGn9?= =?utf-8?q?xriWINOpjY+xhhMQ0wFLc8QRxZGUKN+uxzo+C/jnvcKvgIhTWVbnCVN1gzOYJaQ+6?= =?utf-8?q?afWae4UgYu69Fq/C/1f708j+Lo+QTRSz+IjWRzj/bpBkmedXkdq2grjjGYGwM+P6i?= =?utf-8?q?cldC/CtmL34jLlstOZy4PJeOdxuvgemQzCAjlcJ1G33dxkEBqnpMi36Au5ifgfq2U?= =?utf-8?q?dGl8nBOp8q8UqjueZZURP7ChkMJ1rh7NxSnGMhdAr7IKVvEZQnHnqjf+1G6tjnopp?= =?utf-8?q?53eMJM9rx0FVX9HDfmKHawiVolNmzLK46Ng6uRlYzsBUYRnRtP1EiUlFVYvLFnqoN?= =?utf-8?q?fkPi5X+ym2iQErDCbuJSNdbiCDJJPGwOqzATajU3vA8FjmSbKKBg12n1HDUIrROoz?= =?utf-8?q?BfbVKpDrzIN54fBuTFDvOqnSNJgqu91Xev+PwhZDGnRtHPvBJGL8lpTPLvVG6hBKm?= =?utf-8?q?JqM2m8GthE+Q5k65Ajxjulfg1yXxop0FwZNchiuj0gsndF7yG2X3KlWQaVupbHpxO?= =?utf-8?q?WsXNRIIauol3og5uT+tlUSDJXfF0p8/ODQ1ZZO/LM3ekiV3wTYIKv57cXKbv8oeGr?= =?utf-8?q?f7z1+9egXODgNrNrMU282a7sKGIDkU7Yxdq0qxo9J8YTPl/sUqoAyeIdkvIFtXOCF?= =?utf-8?q?oXDFpVMrFdmN0LuloxNnQFwbzvcuTpufmb6Zzn27hZYbt3NaWlIl7siWyb5yuQUvT?= =?utf-8?q?z19cS/0cbdorZqDhCYxVnq06kax6blY9XeAA=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH3PR12MB8933.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(376014)(366016)(10070799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?fiF76fvWFYrLLtXRgv5OgP/5UvKr?= =?utf-8?q?icGSxKsamuLFPzcgnv5pTdhEulAOokb1Tj6A82ftOdQs78nJod7L+OHbAIG3JEA0H?= =?utf-8?q?MNNOKlDnphUmqchJU9A1zsyukEXSrFrtKURWM8QoYio+JUnNzD+iiAz+CNa/kwDk2?= =?utf-8?q?V7HYXvLp5Dr09QzjsHX6OMxuUD0ZdkWWpDNsBIWuXvtQY1MPdyi59gYZZTZfwSRCe?= =?utf-8?q?LdCxKGJ2Qdo0zz5LxN/ZyhRu6MYN7Bb3K9TImlaEBgNZuwgVLKVPxzhqyZPFFqx90?= =?utf-8?q?DmXvutyrusz7e7ZyH76sP0Y4/l3L8KadZzQJZ8tAjBQuILTp3I2xKBiKhXiSibxug?= =?utf-8?q?q66SuppSu8p6EM+AIF3UUrZ2DfJd8vGyMBrfEoJsViULTlx5wMI6VYS5NjBmyR3DZ?= =?utf-8?q?nvUl2Kk1h99jZa/m8dAm+DDN6wH0shPNc1xs+GDmGK0I8h/ugJ8qUmWoynqlHZ6bf?= =?utf-8?q?zDVAb1cLyUT6RTXXTbF8NvUTk3NnN4ino85cpeXEdpR8Z2Z54Tf5TIREOdL2MBrHW?= =?utf-8?q?+6Pslui8IIjjpYO3nO6Kw5sZl94oC9vQqIpMxvonvrhZQtZafMUCndzJyEi9kp29+?= =?utf-8?q?l6gsgggZ/CVaSklOshT8XMzc6pucpzsUmOroBVwKvurw79Ppf3UpnzwzBluHalnBu?= =?utf-8?q?OcVYKely2tzqIixP77IS/Okij6bd8AvfAt255ZvjZ7SvgH/9U15JB4IOk4G0QeSO6?= =?utf-8?q?uzfqFegWQLcJH+Acon46kahtJ2DJZ51srnZKQlQinvWvcALVxO28LxNXnXhezDsPx?= =?utf-8?q?rM3oynbH9YAgvA2lTqt2IUPoDaIWqJGRhAIDIk/LK/gBsDg71/dpPxkyqvMdCK0kU?= =?utf-8?q?0ns2UY81vUHB1FbpzOMB11VX5gwIxGFfi/vSS0CD0k9ADZpr0qBI95flAn9mm67Ay?= =?utf-8?q?K3kzMwlgYJMbXU6p7kIohvjVQZNTWBjaeMIH3FSAEIOMEAnFQw3G/nQVJpi7eAR9i?= =?utf-8?q?olF936Ea3eq1Wog8T9F0NNpVXY+e/jPtiEYbttD9+PbYwx4DS57tblI2U0xh4mmia?= =?utf-8?q?e3/LWAd938DiFmyyiOWqPA/QTg3L9TxJZ1QBWnB0aKjKZiUhd7Uw3cZPzgAhdoHkW?= =?utf-8?q?Whn8F4gbo5xRML10HYJ8JN5lbi4g/bN/gByqp8ZnHZTjwrqLiJhG5bDrU72sEq+P+?= =?utf-8?q?Zns3wrhFhxEzyuUejgYvzzUa8PMQ+zktk8zVM5B7R51dozsJm7zFcgGNpvmmvWVSX?= =?utf-8?q?z7jEHdpmIOyH887rRcqUnk0T2QqKJ9t/L7v+R5nnOehtxqq4cyFECnqXQeGv+I1Q+?= =?utf-8?q?V66aHbRaLGCCZVQSmP/1+Hos+44rTpR2Gchk8SDCmFkWH79yZftn/HntHrxl3l5n6?= =?utf-8?q?eIU1azjGj7PWyAv62V4U8+4VVrJgAbRWrkh7KkPHJCqwuXgKe05iCLXMXjgPtYtdx?= =?utf-8?q?exkZaU+h+u7VAc5xlHhs4jCWFFKBiMJM1OyKAQMg9elfG2Dig99EecE1yPdBKgONm?= =?utf-8?q?stV7sfL+QekYzL51ZOycgE1lVFsuchKgcxEahePGy8oynDZ2Voxcnu7c/VUVVDSO6?= =?utf-8?q?n3J7mHL04cKCPg7ZkJgkwNk/nAS+w0m02Kc3vUsdAM0YBCPLocd0PjHEEXH8XaNqk?= =?utf-8?q?+cVoruSsUTC?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 51239ec3-4bd3-4025-5d43-08dce8467dd3 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8933.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2024 09:41:03.8223 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 6/IRwHsL3y5lIKUzB0XP5506SX32txOpS6trAcHFHe6mOMX/R5ERL6nAXqIUBe4l X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB8266 X-Spam-Status: No, score=-10.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, SCC_5_SHORT_WORD_LINES, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org This patch modifies the implementation of the vectorized Mersenne Twister random number generator to use __builtin_shufflevector instead of __builtin_shuffle. This makes it (almost) compatible with Clang. To make the implementation fully compatible with Clang, Clang will need to support internal Neon types like __Uint8x16_t and __Uint32x4_t, which currently it does not. This looks like an oversight in Clang and so will be addressed separately. I see no codegen change with this patch. Bootstrapped and tested on aarch64-none-linux-gnu. Signed-off-by: Ricardo Jesus 2024-09-05 Ricardo Jesus * config/cpu/aarch64/opt/ext/opt_random.h (__VEXT): Replace uses of __builtin_shuffle with __builtin_shufflevector. (__aarch64_lsl_128): Move shift amount to a template parameter. (__aarch64_lsr_128): Move shift amount to a template parameter. (__aarch64_recursion): Update call sites of __aarch64_lsl_128 and __aarch64_lsr_128. --- .../config/cpu/aarch64/opt/ext/opt_random.h | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h index 7f756d1572f..7eb816abcd0 100644 --- a/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h +++ b/libstdc++-v3/config/cpu/aarch64/opt/ext/opt_random.h @@ -35,13 +35,13 @@ #ifdef __ARM_NEON #ifdef __ARM_BIG_ENDIAN -# define __VEXT(_A,_B,_C) __builtin_shuffle (_A, _B, (__Uint8x16_t) \ - {16-_C, 17-_C, 18-_C, 19-_C, 20-_C, 21-_C, 22-_C, 23-_C, \ - 24-_C, 25-_C, 26-_C, 27-_C, 28-_C, 29-_C, 30-_C, 31-_C}) +# define __VEXT(_A,_B,_C) __builtin_shufflevector (_A, _B, \ + 16-_C, 17-_C, 18-_C, 19-_C, 20-_C, 21-_C, 22-_C, 23-_C, \ + 24-_C, 25-_C, 26-_C, 27-_C, 28-_C, 29-_C, 30-_C, 31-_C) #else -# define __VEXT(_A,_B,_C) __builtin_shuffle (_B, _A, (__Uint8x16_t) \ - {_C, _C+1, _C+2, _C+3, _C+4, _C+5, _C+6, _C+7, \ - _C+8, _C+9, _C+10, _C+11, _C+12, _C+13, _C+14, _C+15}) +# define __VEXT(_A,_B,_C) __builtin_shufflevector (_B, _A, \ + _C, _C+1, _C+2, _C+3, _C+4, _C+5, _C+6, _C+7, \ + _C+8, _C+9, _C+10, _C+11, _C+12, _C+13, _C+14, _C+15) #endif #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ @@ -52,9 +52,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION namespace { // Logical Shift right 128-bits by c * 8 bits - __extension__ extern __inline __Uint32x4_t + __extension__ + template + extern __inline __Uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) - __aarch64_lsr_128 (__Uint8x16_t __a, __const int __c) + __aarch64_lsr_128 (__Uint8x16_t __a) { const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; @@ -64,9 +66,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION // Logical Shift left 128-bits by c * 8 bits - __extension__ extern __inline __Uint32x4_t + __extension__ + template + extern __inline __Uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) - __aarch64_lsl_128 (__Uint8x16_t __a, __const int __c) + __aarch64_lsl_128 (__Uint8x16_t __a) { const __Uint8x16_t __zero = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; @@ -82,14 +86,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __Uint32x4_t __e) { __Uint32x4_t __y = (__b >> __sr1); - __Uint32x4_t __z = __aarch64_lsr_128 ((__Uint8x16_t) __c, __sr2); + __Uint32x4_t __z = __aarch64_lsr_128<__sr2> ((__Uint8x16_t) __c); __Uint32x4_t __v = __d << __sl1; __z = __z ^ __a; __z = __z ^ __v; - __Uint32x4_t __x = __aarch64_lsl_128 ((__Uint8x16_t) __a, __sl2); + __Uint32x4_t __x = __aarch64_lsl_128<__sl2> ((__Uint8x16_t) __a); __y = __y & __e; __z = __z ^ __x;