From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2072.outbound.protection.outlook.com [40.107.22.72]) by sourceware.org (Postfix) with ESMTPS id 498E8385C32E for ; Wed, 29 Jun 2022 12:33:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 498E8385C32E ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=OaaPr71wmv3ABmUxzA1e9yOQezlN3EHuIOIZJnsyNaNBA1jQLnnGZZBgA6QqkBu9lb1N3SqDUgCMdJ/d0i0AjFZrmdX+d/wkeOfPhzNA3AULUQgbKVz/CZj23HdNa/45/pLPf+gkR+1DTV7JC/2+NBhWHv7RHgpHKX1DdjxBs7HYak6E419dRwCnUKvwuXLlq3movFXPM3CzFTRa+S/8suUV0kSZqWeYXgW8K54mwX+z/WIEGS/XqnzPvMAjURiMENoffA19WBTY/V4xHwB3af+HbcS/6Z0Ne9CgQGMpvx+jv6d5S+tHjh1J9QxJrrrvnk1u2Dq/irtfwoLS83OBrA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bd7ii4aiwk7IK5ZP5TDW23YEyY8CIWYbDWS0fuQaeFU=; b=Yb10OR2syucbmyVEXkbdne81wYMqN45XeZGZcGa6lhf140DP1OsigCcE+WdxvQC0N0fNm1av7NDKATObCGQX+H9Sw/NcqbbtXyICcspJKSi59b64myGdWSJ6lyW/j0CeGDieBzx3ZPsPo2ciTTypBUVj1vMc5qrIiEc//F34zxBWK1hgEu4sRuZy7p27lImtMPXzcJyEzYR6Y/LEOMBPA+R9/xr1Q4GfJkl4kCx+YfV/cxiYH4/eEouZizFuL/ScWIh8zkLfLzpB0AmPVb8MW8qgz0xvJY6dw0OjtduPlZ/oUPS2OIBCISCG5gqX1vvgnZkKirBXQtK0BUVUDYaP2w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DU2PR04CA0231.eurprd04.prod.outlook.com (2603:10a6:10:2b1::26) by DBBPR08MB4727.eurprd08.prod.outlook.com (2603:10a6:10:f2::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.17; Wed, 29 Jun 2022 12:32:55 +0000 Received: from DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:2b1:cafe::28) by DU2PR04CA0231.outlook.office365.com (2603:10a6:10:2b1::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14 via Frontend Transport; Wed, 29 Jun 2022 12:32:55 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT024.mail.protection.outlook.com (100.127.142.163) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15 via Frontend Transport; Wed, 29 Jun 2022 12:32:55 +0000 Received: ("Tessian outbound 3c5325c30453:v121"); Wed, 29 Jun 2022 12:32:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8fd4ac3ca00f1d4b X-CR-MTA-TID: 64aa7808 Received: from bdd6cd096206.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id D01FCA86-DACA-49AE-B6E8-FA4B5054EDD2.1; Wed, 29 Jun 2022 12:32:48 +0000 Received: from EUR01-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id bdd6cd096206.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 29 Jun 2022 12:32:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GvBhuP+mCurpJKCzsnNxoW2bh4uELl0P39TjdpZmhtyUH3RJ+XGBn6qI6syiniA1kSMaVjIEFSbLZFLISO3QxJvEycKDkfg/cb73PQCWzOal6e6Zdv74gOmHg+wXqjKKOeuypTIiU8IxxR4nlZS0UFxqV0J6wtIKQyFAPrYlG0wxCP8eijnq4GuO3w4zG1DSsNgJDjfMteC3DWXpJNOiERSUGRH1QhUlq6Gpf70wB9DxMrGOU2aKzr2F5cJN03PgCGgKd+fDUzBaXDqKb0j92SZII9YOkAnxhgeaJPPyb0o20xhOJ6tfmatd8Fa8wvv3StQbOPa3Q4jUqJgL/mHkZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Bd7ii4aiwk7IK5ZP5TDW23YEyY8CIWYbDWS0fuQaeFU=; b=ClbLcw0Y6JStpviVRVkiagWlqxzmAkDV6wflUgxSB01fuLs3J2nu6bZw6ql4BuzcLhqKF4GXpG2Vs+PX132PISVzzYtsmPhg1AYSWwfqOUt6HV3+C/5L38NP7Zj0SrQ7vcupJkHU0QQ+V5xV/yrLv0F+LIa9GdIrY3cidoBShVT3TJgpZOOoDUK/aYZeAAbnIOZw8OwSGclnI4NFrs/1AQ6fvyQnxBwfRahVZVqAH2pJIay1k9FisZ+fKUrf6TqygwEJNeQl8Ev/ZRrVU1FxdbiKQ1K3lTMg3c83CgCmJIbaMLlnfTy0QDXtTILL8jfoHYkjR/kuy+SQ21P98sfiNA== 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 AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by AM6PR08MB3687.eurprd08.prod.outlook.com (2603:10a6:20b:90::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.18; Wed, 29 Jun 2022 12:32:36 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::90e1:2317:2ab:bd1e%8]) with mapi id 15.20.5373.018; Wed, 29 Jun 2022 12:32:36 +0000 From: Andrew Carlotti To: "gcc-patches@gcc.gnu.org" Subject: [PATCH] aarch64: Move vreinterpret definitions into the compiler Thread-Topic: [PATCH] aarch64: Move vreinterpret definitions into the compiler Thread-Index: AQHYi7KAL6AwalEYMUSqRCejy8Vl1A== Date: Wed, 29 Jun 2022 12:32:36 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: suggested_attachment_session_id: 0874ef91-acf5-795c-17c8-cbff1988d5a3 Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: bebed490-f784-4bcf-8150-08da59cb7dd2 x-ms-traffictypediagnostic: AM6PR08MB3687:EE_|DBAEUR03FT024:EE_|DBBPR08MB4727:EE_ x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: bUCA+QU1K60DJlZNDfwoT2r9o6dH0ynouUHjUwoFC+XmeBG8sanishrQDaeCCqQEck+1xhcF1z49QItnDoss76zznn4RLSG2PZstNdoy3v0U8AE+0ShD8arWajXvNLdJgA2uW8AARGhN/JttgeTKmn17MzzSa1N+hmS9pmDikojBx+dzE26Yck4gslOnkzLu3h0DypUdO4eXnPIjz13+HzCEt3L1TLw9isWx17ykDeHB4Z04WL/Pa4GSl/4TlJ+mBXH/OTs7KIpNqaZHdG2He/JY9oGqpYIt0T8JXE5YRUCDRyy8iy9z5lEsU+2n843zR9QDNg+lA0mg3zssKq2y6+iqd5ZYMWXwbAALNrbNXnAlcsNF08f31wzK0ltDE35kb6UFD1KsbrIYbdhSR1RgrqZ2lBcD2scRpepdQq20k6HxJ3jyA3by0B9J9itCt3CvFIWSfnk95/58cxugl6U4WyTDICMZxQDtL4fxXNv1LDWZwUBiU3EloB2osanh6+b/miO2yDCQjzbDYWviPjNvuHXbIoQLDMc1zxCFkc/22mNqCCVz5nRytdF0viU/P2aQjaZ9RXlQ/WnCdwxHyqO9JhkOFX/PIxpYCfP5iDkv14S0fmzdv4pTbKNN7IAioIB7KSLNUFQvnH0+QoHBueWxnqvweHjzbwMk5kVmxBKZW6KLabWyxxeZny2DhO7RcSRfV2Z6poWJ9r71smCUUQ68Jm+/xGcqduW60iQYhhfUA1iqdFEK7vfaJ9noZ1MDBQ/nqVE3ttuLNdPfpMyT9f2QTR6zQPC6pl0dMjUdT2xF4qo= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(39860400002)(346002)(376002)(366004)(136003)(396003)(8676002)(52536014)(66556008)(38070700005)(71200400001)(66946007)(9686003)(86362001)(64756008)(66476007)(478600001)(41300700001)(26005)(66446008)(6506007)(91956017)(76116006)(7696005)(6916009)(33656002)(186003)(30864003)(2906002)(8936002)(55016003)(122000001)(38100700002)(316002)(5660300002)(83380400001)(579004)(559001); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3687 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 6c1e6e0b-d6e8-488f-32ce-08da59cb72f7 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SL0w17OXEEsGBMyPcy+CdNOz0srGizRsYvaIDpZeSkfDo60HcHIlPZR4XZSI5T7S53iY1d/yRO+AOG/PSYuYVxV/62aLn8pGaflHzLc/LoqHhfOfOvYWG3TrHa+xWpxQlgZLqQKkyfdYdZ/a9pEfGP9qWUSQW+K5j8HVD5OvqJutCMi9xa8wNht8POrdFpf063a+o0zKoCnDaVp8/ilQNfn5Q9iXnKTggJ2C2Hq7fXqTM2Ob/o/bK9RS7J3Tg7sXJL9nhYiuNxq1WX5RpeCcy2hwx2I6GrAEnz4Y5DeEZ/TC47hvBn3hcXNI3nk96LYac4HupG5+RX2xWA+y8bHfmkV0v8ru7py/UrnpBNcAT7Sf/w6WFI1O8D+lTHIGRPULQCoq6QzseSwE/6yVS4SmYJubo+mAI1xNS1MNeeYm4JOaXRb3cEoiXdikZdc4kDwmASX1gcNZlC7R/4wed0fIRp/XksLG2ltDY9z1yDG2R+SQMETST1xGigHgOMfNBGRjudZqwWSebQQFdkltsE7uKctBwnJY3QkeE/44Ac/IM2zZwffaniEdiiifQzD4Zayd9EnbrbGBe3C9QLcB6F9kn0E85EK2tuTNgQU+Vza6YBVs7ysPy9J4x0gKulgobK95pzs9d6v3GXoWa2qXfNv9hTJa03IP6TpvCDFxzDUhnF0oHf+PRhU2X1R8YG18HTS44v3lGCMjGUIxttBTz0txiz4A+sTAUF0xr7LDCQgFzmhxLI7F52GZ/IXo3iECt7vx6hawRo+pj9+sqHtOnKbVmpQK4IpZnc8x1jHYBectVCU= 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:(13230016)(4636009)(396003)(136003)(346002)(39860400002)(376002)(46966006)(36840700001)(40470700004)(6916009)(186003)(33656002)(478600001)(316002)(6506007)(55016003)(81166007)(356005)(47076005)(83380400001)(82310400005)(30864003)(8936002)(86362001)(40480700001)(5660300002)(7696005)(26005)(2906002)(52536014)(36860700001)(82740400003)(70206006)(41300700001)(70586007)(9686003)(40460700003)(8676002)(336012)(579004)(559001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jun 2022 12:32:55.0527 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bebed490-f784-4bcf-8150-08da59cb7dd2 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: DBAEUR03FT024.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4727 X-Spam-Status: No, score=-13.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_LOTSOFHASH, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org 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, 29 Jun 2022 12:33:14 -0000 Hi,=0A= =0A= This removes a significant number of intrinsic definitions from the arm_neo= n.h=0A= header file, and reduces the amount of code duplication. The new macros and= =0A= data structures are intended to also facilitate moving other intrinsic=0A= definitions out of the header file in future.=0A= =0A= There is a a slight change in the behaviour of the bf16 vreinterpret intrin= sics=0A= when compiling without bf16 support. Expressions like:=0A= =0A= b =3D vreinterpretq_s32_bf16(vreinterpretq_bf16_s64(a));=0A= =0A= are now compiled successfully, instead of causing a 'target specific option= =0A= mismatch' during inlining.=0A= =0A= Bootstrapped and tested on aarch64-none-linux-gnu=0A= =0A= gcc/ChangeLog:=0A= =0A= * config/aarch64/aarch64-builtins.cc=0A= (v1di_UP): Add V1DI mode.=0A= (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)=0A= (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)=0A= (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)=0A= (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)=0A= (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)=0A= (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)=0A= (MODE_q_p128): Define macro to map to corresponding mode name.=0A= (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)=0A= (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)=0A= (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to=0A= corresponding qualifier name.=0A= (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.=0A= (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro=0A= functions for the above mappings=0A= (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)=0A= (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)=0A= (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)=0A= (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions=0A= for all vreinterpret intrinsics=0A= (enum aarch64_builtins): Add vreinterpret function codes=0A= (aarch64_init_simd_intrinsics): New=0A= (handle_arm_neon_h): Improved comment.=0A= (aarch64_general_fold_builtin): Fold vreinterpret calls=0A= * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode=0A= * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode=0A= * config/aarch64/aarch64-simd.md (vec_extractv2div1di): New=0A= * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Add V1DI mode= =0A= * config/aarch64/arm_neon.h=0A= (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)=0A= (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)=0A= (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)=0A= (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)=0A= (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)=0A= (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)=0A= (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)=0A= (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)=0A= (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)=0A= (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)=0A= (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)=0A= (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)=0A= (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)=0A= (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)=0A= (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)=0A= (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)=0A= (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)=0A= (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)=0A= (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)=0A= (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)=0A= (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)=0A= (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)=0A= (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)=0A= (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)=0A= (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)=0A= (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)=0A= (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)=0A= (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)=0A= (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)= =0A= (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)=0A= (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)=0A= (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)=0A= (vreinterpret_f16_s16): (vreinterpret_f16_s32): (vreinterpret_f16_s64):=0A= (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)=0A= (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)=0A= (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)=0A= (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)=0A= (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)=0A= (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)=0A= (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)=0A= (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)=0A= (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)=0A= (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)=0A= (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)=0A= (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)=0A= (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)=0A= (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)=0A= (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)=0A= (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)=0A= (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)=0A= (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)=0A= (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)=0A= (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)=0A= (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)=0A= (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)=0A= (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)=0A= (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)=0A= (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)=0A= (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)=0A= (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)=0A= (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)=0A= (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)=0A= (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)=0A= (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)=0A= (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)=0A= (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)=0A= (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)=0A= (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)=0A= (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)=0A= (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)=0A= (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)=0A= (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)=0A= (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)=0A= (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)=0A= (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)=0A= (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)=0A= (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)=0A= (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)=0A= (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)=0A= (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)=0A= (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)=0A= (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)=0A= (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)=0A= (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)=0A= (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)=0A= (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)=0A= (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)=0A= (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)=0A= (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)=0A= (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)=0A= (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)=0A= (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)=0A= (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)=0A= (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)=0A= (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)=0A= (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)=0A= (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)=0A= (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)=0A= (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)=0A= (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)=0A= (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)=0A= (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)=0A= (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)=0A= (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)=0A= (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)=0A= (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)=0A= (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)=0A= (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)=0A= (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)=0A= (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)=0A= (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)=0A= (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)=0A= (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)=0A= (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)=0A= (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)=0A= (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)=0A= (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)=0A= (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)=0A= (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)=0A= (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)=0A= (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)=0A= (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)=0A= (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)=0A= (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)=0A= (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)=0A= (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)=0A= (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)=0A= (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)=0A= (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)=0A= (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)=0A= (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)=0A= (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)=0A= (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)=0A= (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)=0A= (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)=0A= (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)=0A= (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)=0A= (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)= =0A= (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)=0A= (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)=0A= (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)=0A= (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)=0A= (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)=0A= (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)=0A= (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)=0A= (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)=0A= (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)=0A= (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)= =0A= (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)= =0A= (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)=0A= (vreinterpretq_p128_bf16): Delete=0A= * config/aarch64/iterators.md: Add V1DI mode to nunits=0A= =0A= ---=0A= =0A= diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aa= rch64-builtins.cc=0A= index c21476d7ae963450b12efa24418ce4004a3c74bf..57aaff3b1d5df80b1107f4a0374= 98af714516ec9 100644=0A= --- a/gcc/config/aarch64/aarch64-builtins.cc=0A= +++ b/gcc/config/aarch64/aarch64-builtins.cc=0A= @@ -55,6 +55,7 @@=0A= #define v2si_UP E_V2SImode=0A= #define v2sf_UP E_V2SFmode=0A= #define v1df_UP E_V1DFmode=0A= +#define v1di_UP E_V1DImode=0A= #define di_UP E_DImode=0A= #define df_UP E_DFmode=0A= #define v16qi_UP E_V16QImode=0A= @@ -126,6 +127,63 @@=0A= #define v4x2df_UP E_V4x2DFmode=0A= #define UP(X) X##_UP=0A= =0A= +#define MODE_d_bf16 E_V4BFmode=0A= +#define MODE_d_f16 E_V4HFmode=0A= +#define MODE_d_f32 E_V2SFmode=0A= +#define MODE_d_f64 E_V1DFmode=0A= +#define MODE_d_s8 E_V8QImode=0A= +#define MODE_d_s16 E_V4HImode=0A= +#define MODE_d_s32 E_V2SImode=0A= +#define MODE_d_s64 E_V1DImode=0A= +#define MODE_d_u8 E_V8QImode=0A= +#define MODE_d_u16 E_V4HImode=0A= +#define MODE_d_u32 E_V2SImode=0A= +#define MODE_d_u64 E_V1DImode=0A= +#define MODE_d_p8 E_V8QImode=0A= +#define MODE_d_p16 E_V4HImode=0A= +#define MODE_d_p64 E_V1DImode=0A= +#define MODE_q_bf16 E_V8BFmode=0A= +#define MODE_q_f16 E_V8HFmode=0A= +#define MODE_q_f32 E_V4SFmode=0A= +#define MODE_q_f64 E_V2DFmode=0A= +#define MODE_q_s8 E_V16QImode=0A= +#define MODE_q_s16 E_V8HImode=0A= +#define MODE_q_s32 E_V4SImode=0A= +#define MODE_q_s64 E_V2DImode=0A= +#define MODE_q_u8 E_V16QImode=0A= +#define MODE_q_u16 E_V8HImode=0A= +#define MODE_q_u32 E_V4SImode=0A= +#define MODE_q_u64 E_V2DImode=0A= +#define MODE_q_p8 E_V16QImode=0A= +#define MODE_q_p16 E_V8HImode=0A= +#define MODE_q_p64 E_V2DImode=0A= +#define MODE_q_p128 E_TImode=0A= +=0A= +#define QUAL_bf16 qualifier_none=0A= +#define QUAL_f16 qualifier_none=0A= +#define QUAL_f32 qualifier_none=0A= +#define QUAL_f64 qualifier_none=0A= +#define QUAL_s8 qualifier_none=0A= +#define QUAL_s16 qualifier_none=0A= +#define QUAL_s32 qualifier_none=0A= +#define QUAL_s64 qualifier_none=0A= +#define QUAL_u8 qualifier_unsigned=0A= +#define QUAL_u16 qualifier_unsigned=0A= +#define QUAL_u32 qualifier_unsigned=0A= +#define QUAL_u64 qualifier_unsigned=0A= +#define QUAL_p8 qualifier_poly=0A= +#define QUAL_p16 qualifier_poly=0A= +#define QUAL_p64 qualifier_poly=0A= +#define QUAL_p128 qualifier_poly=0A= +=0A= +#define LENGTH_d ""=0A= +#define LENGTH_q "q"=0A= +=0A= +#define SIMD_INTR_MODE(suffix, length) MODE_##length##_##suffix=0A= +#define SIMD_INTR_QUAL(suffix) QUAL_##suffix=0A= +#define SIMD_INTR_LENGTH_CHAR(length) LENGTH_##length=0A= +=0A= +=0A= #define SIMD_MAX_BUILTIN_ARGS 5=0A= =0A= enum aarch64_type_qualifiers=0A= @@ -523,6 +581,99 @@ static aarch64_simd_builtin_datum aarch64_simd_builtin= _data[] =3D {=0A= FCMLA_LANEQ_BUILTIN (180, v4hf, fcmla_laneq, V4HF, true) \=0A= FCMLA_LANEQ_BUILTIN (270, v4hf, fcmla_laneq, V4HF, true) \=0A= =0A= +=0A= +/* vreinterpret intrinsics are defined for any pair of element types.=0A= + { _bf16 } { _bf16 } (if bf16 is supported= )=0A= + { _f16 _f32 _f64 } { _f16 _f32 _f64 }=0A= + { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }=0A= + { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }=0A= + { _p8 _p16 _p64 } { _p8 _p16 _p64 }. */=0A= +#define VREINTERPRET_BUILTIN2(A, B) \=0A= + VREINTERPRET_BUILTIN (A, B, d)=0A= +=0A= +#define VREINTERPRET_BUILTINS1(A) \=0A= + VREINTERPRET_BUILTIN2 (A, bf16) \=0A= + VREINTERPRET_BUILTIN2 (A, f16) \=0A= + VREINTERPRET_BUILTIN2 (A, f32) \=0A= + VREINTERPRET_BUILTIN2 (A, f64) \=0A= + VREINTERPRET_BUILTIN2 (A, s8) \=0A= + VREINTERPRET_BUILTIN2 (A, s16) \=0A= + VREINTERPRET_BUILTIN2 (A, s32) \=0A= + VREINTERPRET_BUILTIN2 (A, s64) \=0A= + VREINTERPRET_BUILTIN2 (A, u8) \=0A= + VREINTERPRET_BUILTIN2 (A, u16) \=0A= + VREINTERPRET_BUILTIN2 (A, u32) \=0A= + VREINTERPRET_BUILTIN2 (A, u64) \=0A= + VREINTERPRET_BUILTIN2 (A, p8) \=0A= + VREINTERPRET_BUILTIN2 (A, p16) \=0A= + VREINTERPRET_BUILTIN2 (A, p64)=0A= +=0A= +#define VREINTERPRET_BUILTINS \=0A= + VREINTERPRET_BUILTINS1 (bf16) \=0A= + VREINTERPRET_BUILTINS1 (f16) \=0A= + VREINTERPRET_BUILTINS1 (f32) \=0A= + VREINTERPRET_BUILTINS1 (f64) \=0A= + VREINTERPRET_BUILTINS1 (s8) \=0A= + VREINTERPRET_BUILTINS1 (s16) \=0A= + VREINTERPRET_BUILTINS1 (s32) \=0A= + VREINTERPRET_BUILTINS1 (s64) \=0A= + VREINTERPRET_BUILTINS1 (u8) \=0A= + VREINTERPRET_BUILTINS1 (u16) \=0A= + VREINTERPRET_BUILTINS1 (u32) \=0A= + VREINTERPRET_BUILTINS1 (u64) \=0A= + VREINTERPRET_BUILTINS1 (p8) \=0A= + VREINTERPRET_BUILTINS1 (p16) \=0A= + VREINTERPRET_BUILTINS1 (p64)=0A= +=0A= +/* vreinterpretq intrinsics are additionally defined for p128.=0A= + { _bf16 } { _bf16 }=0A= + { _f16 _f32 _f64 } { _f16 _f32 _f64 }=0A= + { _s8 _s16 _s32 _s64 } x { _s8 _s16 _s32 _s64 }=0A= + { _u8 _u16 _u32 _u64 } { _u8 _u16 _u32 _u64 }=0A= + { _p8 _p16 _p64 _p128 } { _p8 _p16 _p64 _p128 }. */=0A= +#define VREINTERPRETQ_BUILTIN2(A, B) \=0A= + VREINTERPRET_BUILTIN (A, B, q)=0A= +=0A= +#define VREINTERPRETQ_BUILTINS1(A) \=0A= + VREINTERPRETQ_BUILTIN2 (A, bf16) \=0A= + VREINTERPRETQ_BUILTIN2 (A, f16) \=0A= + VREINTERPRETQ_BUILTIN2 (A, f32) \=0A= + VREINTERPRETQ_BUILTIN2 (A, f64) \=0A= + VREINTERPRETQ_BUILTIN2 (A, s8) \=0A= + VREINTERPRETQ_BUILTIN2 (A, s16) \=0A= + VREINTERPRETQ_BUILTIN2 (A, s32) \=0A= + VREINTERPRETQ_BUILTIN2 (A, s64) \=0A= + VREINTERPRETQ_BUILTIN2 (A, u8) \=0A= + VREINTERPRETQ_BUILTIN2 (A, u16) \=0A= + VREINTERPRETQ_BUILTIN2 (A, u32) \=0A= + VREINTERPRETQ_BUILTIN2 (A, u64) \=0A= + VREINTERPRETQ_BUILTIN2 (A, p8) \=0A= + VREINTERPRETQ_BUILTIN2 (A, p16) \=0A= + VREINTERPRETQ_BUILTIN2 (A, p64) \=0A= + VREINTERPRETQ_BUILTIN2 (A, p128)=0A= +=0A= +#define VREINTERPRETQ_BUILTINS \=0A= + VREINTERPRETQ_BUILTINS1 (bf16) \=0A= + VREINTERPRETQ_BUILTINS1 (f16) \=0A= + VREINTERPRETQ_BUILTINS1 (f32) \=0A= + VREINTERPRETQ_BUILTINS1 (f64) \=0A= + VREINTERPRETQ_BUILTINS1 (s8) \=0A= + VREINTERPRETQ_BUILTINS1 (s16) \=0A= + VREINTERPRETQ_BUILTINS1 (s32) \=0A= + VREINTERPRETQ_BUILTINS1 (s64) \=0A= + VREINTERPRETQ_BUILTINS1 (u8) \=0A= + VREINTERPRETQ_BUILTINS1 (u16) \=0A= + VREINTERPRETQ_BUILTINS1 (u32) \=0A= + VREINTERPRETQ_BUILTINS1 (u64) \=0A= + VREINTERPRETQ_BUILTINS1 (p8) \=0A= + VREINTERPRETQ_BUILTINS1 (p16) \=0A= + VREINTERPRETQ_BUILTINS1 (p64) \=0A= + VREINTERPRETQ_BUILTINS1 (p128)=0A= +=0A= +#define AARCH64_SIMD_VREINTERPRET_BUILTINS \=0A= + VREINTERPRET_BUILTINS \=0A= + VREINTERPRETQ_BUILTINS=0A= +=0A= typedef struct=0A= {=0A= const char *name;=0A= @@ -541,12 +692,27 @@ typedef struct=0A= bool lane;=0A= } aarch64_fcmla_laneq_builtin_datum;=0A= =0A= +/* Hold information about how to declare SIMD intrinsics. */=0A= +typedef struct=0A= +{=0A= + const char *name;=0A= + unsigned int fcode;=0A= + unsigned int op_count;=0A= + machine_mode op_modes[SIMD_MAX_BUILTIN_ARGS];=0A= + enum aarch64_type_qualifiers qualifiers[SIMD_MAX_BUILTIN_ARGS];=0A= + unsigned int flags;=0A= + bool skip;=0A= +} aarch64_simd_intrinsic_datum;=0A= +=0A= #define CRC32_BUILTIN(N, M) \=0A= AARCH64_BUILTIN_##N,=0A= =0A= #define FCMLA_LANEQ_BUILTIN(I, N, X, M, T) \=0A= AARCH64_SIMD_BUILTIN_FCMLA_LANEQ##I##_##M,=0A= =0A= +#define VREINTERPRET_BUILTIN(A, B, L) \=0A= + AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B,=0A= +=0A= #undef VAR1=0A= #define VAR1(T, N, MAP, FLAG, A) \=0A= AARCH64_SIMD_BUILTIN_##T##_##N##A,=0A= @@ -580,6 +746,8 @@ enum aarch64_builtins=0A= AARCH64_CRC32_BUILTIN_BASE,=0A= AARCH64_CRC32_BUILTINS=0A= AARCH64_CRC32_BUILTIN_MAX,=0A= + /* SIMD intrinsic builtins. */=0A= + AARCH64_SIMD_VREINTERPRET_BUILTINS=0A= /* ARMv8.3-A Pointer Authentication Builtins. */=0A= AARCH64_PAUTH_BUILTIN_AUTIA1716,=0A= AARCH64_PAUTH_BUILTIN_PACIA1716,=0A= @@ -636,6 +804,22 @@ static aarch64_fcmla_laneq_builtin_datum aarch64_fcmla= _lane_builtin_data[] =3D {=0A= AARCH64_SIMD_FCMLA_LANEQ_BUILTINS=0A= };=0A= =0A= +#undef VREINTERPRET_BUILTIN=0A= +#define VREINTERPRET_BUILTIN(A, B, L) \=0A= + {"vreinterpret" SIMD_INTR_LENGTH_CHAR(L) "_" #A "_" #B, \=0A= + AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B, \=0A= + 2, \=0A= + { SIMD_INTR_MODE(A, L), SIMD_INTR_MODE(B, L) }, \=0A= + { SIMD_INTR_QUAL(A), SIMD_INTR_QUAL(B) }, \=0A= + FLAG_AUTO_FP, \=0A= + !strcmp(#A, #B) \=0A= + },=0A= +=0A= +static aarch64_simd_intrinsic_datum aarch64_simd_intrinsic_data[] =3D {=0A= + AARCH64_SIMD_VREINTERPRET_BUILTINS=0A= +};=0A= +=0A= +=0A= #undef CRC32_BUILTIN=0A= =0A= static GTY(()) tree aarch64_builtin_decls[AARCH64_BUILTIN_MAX];=0A= @@ -1127,6 +1311,58 @@ aarch64_init_fcmla_laneq_builtins (void)=0A= }=0A= }=0A= =0A= +void=0A= +aarch64_init_simd_intrinsics (void)=0A= +{=0A= + unsigned int i =3D 0;=0A= +=0A= + for (i =3D 0; i < ARRAY_SIZE (aarch64_simd_intrinsic_data); ++i)=0A= + {=0A= + aarch64_simd_intrinsic_datum* d =3D &aarch64_simd_intrinsic_data[i];= =0A= +=0A= + if (d->skip)=0A= + continue;=0A= +=0A= + tree return_type =3D void_type_node;=0A= + tree args =3D void_list_node;=0A= +=0A= + for (int op_num =3D d->op_count - 1; op_num >=3D 0; op_num--)=0A= + {=0A= + machine_mode op_mode =3D d->op_modes[op_num];=0A= + enum aarch64_type_qualifiers qualifiers =3D d->qualifiers[op_num];=0A= +=0A= + /* For pointers, we want a pointer to the basic type=0A= + of the vector. */=0A= + if (qualifiers & qualifier_pointer && VECTOR_MODE_P (op_mode))=0A= + op_mode =3D GET_MODE_INNER (op_mode);=0A= +=0A= + tree eltype =3D aarch64_simd_builtin_type=0A= + (op_mode,=0A= + (qualifiers & qualifier_unsigned) !=3D 0,=0A= + (qualifiers & qualifier_poly) !=3D 0);=0A= + gcc_assert (eltype !=3D NULL);=0A= +=0A= + /* Add qualifiers. */=0A= + if (qualifiers & qualifier_const)=0A= + eltype =3D build_qualified_type (eltype, TYPE_QUAL_CONST);=0A= +=0A= + if (qualifiers & qualifier_pointer)=0A= + eltype =3D build_pointer_type (eltype);=0A= +=0A= + if (op_num =3D=3D 0)=0A= + return_type =3D eltype;=0A= + else=0A= + args =3D tree_cons (NULL_TREE, eltype, args);=0A= + }=0A= +=0A= + tree ftype =3D build_function_type (return_type, args);=0A= + tree attrs =3D aarch64_get_attributes (FLAG_AUTO_FP, d->op_modes[0])= ;=0A= + unsigned int code =3D (d->fcode << AARCH64_BUILTIN_SHIFT | AARCH64_B= UILTIN_GENERAL);=0A= + tree fndecl =3D simulate_builtin_function_decl (input_location, d->n= ame, ftype, code, NULL, attrs);=0A= + aarch64_builtin_decls[d->fcode] =3D fndecl;=0A= + }=0A= +}=0A= +=0A= void=0A= aarch64_init_simd_builtin_functions (bool called_from_pragma)=0A= {=0A= @@ -1346,7 +1582,10 @@ aarch64_simd_switcher::~aarch64_simd_switcher ()=0A= aarch64_isa_flags =3D m_old_isa_flags;=0A= }=0A= =0A= -/* Implement #pragma GCC aarch64 "arm_neon.h". */=0A= +/* Implement #pragma GCC aarch64 "arm_neon.h".=0A= +=0A= + The types and functions defined here need to be available internally=0A= + during LTO as well. */=0A= void=0A= handle_arm_neon_h (void)=0A= {=0A= @@ -1359,6 +1598,7 @@ handle_arm_neon_h (void)=0A= register_tuple_type (count, i);=0A= =0A= aarch64_init_simd_builtin_functions (true);=0A= + aarch64_init_simd_intrinsics ();=0A= }=0A= =0A= void=0A= @@ -2709,6 +2949,11 @@ aarch64_fold_builtin_lane_check (tree arg0, tree arg= 1, tree arg2)=0A= #define VAR1(T, N, MAP, FLAG, A) \=0A= case AARCH64_SIMD_BUILTIN_##T##_##N##A:=0A= =0A= +#undef VREINTERPRET_BUILTIN=0A= +#define VREINTERPRET_BUILTIN(A, B, L) \=0A= + case AARCH64_SIMD_BUILTIN_VREINTERPRET##L##_##A##_##B:=0A= +=0A= +=0A= /* Try to fold a call to the built-in function with subcode FCODE. The=0A= function is passed the N_ARGS arguments in ARGS and it returns a value= =0A= of type TYPE. Return the new expression on success and NULL_TREE on=0A= @@ -2725,6 +2970,8 @@ aarch64_general_fold_builtin (unsigned int fcode, tre= e type,=0A= VAR1 (UNOP, floatv4si, 2, ALL, v4sf)=0A= VAR1 (UNOP, floatv2di, 2, ALL, v2df)=0A= return fold_build1 (FLOAT_EXPR, type, args[0]);=0A= + AARCH64_SIMD_VREINTERPRET_BUILTINS=0A= + return fold_build1 (VIEW_CONVERT_EXPR, type, args[0]);=0A= case AARCH64_SIMD_BUILTIN_LANE_CHECK:=0A= gcc_assert (n_args =3D=3D 3);=0A= if (aarch64_fold_builtin_lane_check (args[0], args[1], args[2]))=0A= diff --git a/gcc/config/aarch64/aarch64-modes.def b/gcc/config/aarch64/aarc= h64-modes.def=0A= index 8f399225a8048d93108e33e9d49c736aeb5612ce..d3c9b74434cd2c0d0cb1a2fd26a= f8c0bf38a4cfa 100644=0A= --- a/gcc/config/aarch64/aarch64-modes.def=0A= +++ b/gcc/config/aarch64/aarch64-modes.def=0A= @@ -70,6 +70,7 @@ VECTOR_MODES (INT, 8); /* V8QI V4HI V2SI. *= /=0A= VECTOR_MODES (INT, 16); /* V16QI V8HI V4SI V2DI. */=0A= VECTOR_MODES (FLOAT, 8); /* V2SF. */=0A= VECTOR_MODES (FLOAT, 16); /* V4SF V2DF. */=0A= +VECTOR_MODE (INT, DI, 1); /* V1DI. */=0A= VECTOR_MODE (FLOAT, DF, 1); /* V1DF. */=0A= VECTOR_MODE (FLOAT, HF, 2); /* V2HF. */=0A= =0A= diff --git a/gcc/config/aarch64/aarch64-simd-builtin-types.def b/gcc/config= /aarch64/aarch64-simd-builtin-types.def=0A= index 248e51e96549fb640817d79c099a3f5e62c71317..40545581408e2ee2be84f08abb5= 801058c4ea42e 100644=0A= --- a/gcc/config/aarch64/aarch64-simd-builtin-types.def=0A= +++ b/gcc/config/aarch64/aarch64-simd-builtin-types.def=0A= @@ -24,7 +24,7 @@=0A= ENTRY (Int16x8_t, V8HI, none, 11)=0A= ENTRY (Int32x2_t, V2SI, none, 11)=0A= ENTRY (Int32x4_t, V4SI, none, 11)=0A= - ENTRY (Int64x1_t, DI, none, 11)=0A= + ENTRY (Int64x1_t, V1DI, none, 11)=0A= ENTRY (Int64x2_t, V2DI, none, 11)=0A= ENTRY (Uint8x8_t, V8QI, unsigned, 11)=0A= ENTRY (Uint8x16_t, V16QI, unsigned, 12)=0A= @@ -32,7 +32,7 @@=0A= ENTRY (Uint16x8_t, V8HI, unsigned, 12)=0A= ENTRY (Uint32x2_t, V2SI, unsigned, 12)=0A= ENTRY (Uint32x4_t, V4SI, unsigned, 12)=0A= - ENTRY (Uint64x1_t, DI, unsigned, 12)=0A= + ENTRY (Uint64x1_t, V1DI, unsigned, 12)=0A= ENTRY (Uint64x2_t, V2DI, unsigned, 12)=0A= ENTRY (Poly8_t, QI, poly, 9)=0A= ENTRY (Poly16_t, HI, poly, 10)=0A= @@ -42,7 +42,7 @@=0A= ENTRY (Poly8x16_t, V16QI, poly, 12)=0A= ENTRY (Poly16x4_t, V4HI, poly, 12)=0A= ENTRY (Poly16x8_t, V8HI, poly, 12)=0A= - ENTRY (Poly64x1_t, DI, poly, 12)=0A= + ENTRY (Poly64x1_t, V1DI, poly, 12)=0A= ENTRY (Poly64x2_t, V2DI, poly, 12)=0A= ENTRY (Float16x4_t, V4HF, none, 13)=0A= ENTRY (Float16x8_t, V8HF, none, 13)=0A= diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch6= 4-simd.md=0A= index a00e1c6ef8d6b43d8b1a0fe4701e6b8c1f0f622f..a3f8f20e5fb20eeb9b9f48a27d8= 3343638ba3c93 100644=0A= --- a/gcc/config/aarch64/aarch64-simd.md=0A= +++ b/gcc/config/aarch64/aarch64-simd.md=0A= @@ -8039,6 +8039,20 @@=0A= DONE;=0A= })=0A= =0A= +;; And same for V1DI (this should probably be merged with the above patter= n)=0A= +(define_expand "vec_extractv2div1di"=0A= + [(match_operand:V1DI 0 "register_operand")=0A= + (match_operand:V2DI 1 "register_operand")=0A= + (match_operand 2 "immediate_operand")]=0A= + "TARGET_SIMD"=0A= +{=0A= + /* V1DI is rarely used by other patterns, so it should be better to hide= =0A= + it in a subreg destination of a normal DI op. */=0A= + rtx scalar0 =3D gen_lowpart (DImode, operands[0]);=0A= + emit_insn (gen_vec_extractv2didi (scalar0, operands[1], operands[2]));= =0A= + DONE;=0A= +})=0A= +=0A= ;; aes=0A= =0A= (define_insn "aarch64_crypto_aesv16qi"=0A= diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc= =0A= index f650abbc4ce49cf0947049931f86bad1130c3428..278910af0a38c0203a962d34c67= 92191f0fe9e31 100644=0A= --- a/gcc/config/aarch64/aarch64.cc=0A= +++ b/gcc/config/aarch64/aarch64.cc=0A= @@ -3568,7 +3568,7 @@ aarch64_classify_vector_mode (machine_mode mode)=0A= case E_V8QImode:=0A= case E_V4HImode:=0A= case E_V2SImode:=0A= - /* ...E_V1DImode doesn't exist. */=0A= + case E_V1DImode:=0A= case E_V4HFmode:=0A= case E_V4BFmode:=0A= case E_V2SFmode:=0A= diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h= =0A= index 85d03c58d2a98c1b8b84f007a82bb976601b424e..cf6af728ca99dae1cb6ab647466= cfec32f7e913e 100644=0A= --- a/gcc/config/aarch64/arm_neon.h=0A= +++ b/gcc/config/aarch64/arm_neon.h=0A= @@ -2827,2753 +2827,6 @@ vgetq_lane_u64 (uint64x2_t __a, const int __b)=0A= return __aarch64_vget_lane_any (__a, __b);=0A= }=0A= =0A= -/* vreinterpret */=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_f16 (float16x4_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_f64 (float64x1_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_s8 (int8x8_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_s16 (int16x4_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_s32 (int32x2_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_s64 (int64x1_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_f32 (float32x2_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_u8 (uint8x8_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_u16 (uint16x4_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_u32 (uint32x2_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_u64 (uint64x1_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_p16 (poly16x4_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_p64 (poly64x1_t __a)=0A= -{=0A= - return (poly8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_f64 (float64x2_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_s8 (int8x16_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_s16 (int16x8_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_s32 (int32x4_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_s64 (int64x2_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_f16 (float16x8_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_f32 (float32x4_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_u8 (uint8x16_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_u16 (uint16x8_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_u32 (uint32x4_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_u64 (uint64x2_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_p16 (poly16x8_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_p64 (poly64x2_t __a)=0A= -{=0A= - return (poly8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_p128 (poly128_t __a)=0A= -{=0A= - return (poly8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_f16 (float16x4_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_f64 (float64x1_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_s8 (int8x8_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_s16 (int16x4_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_s32 (int32x2_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_s64 (int64x1_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_f32 (float32x2_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_u8 (uint8x8_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_u16 (uint16x4_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_u32 (uint32x2_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_u64 (uint64x1_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_p8 (poly8x8_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_p64 (poly64x1_t __a)=0A= -{=0A= - return (poly16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_f64 (float64x2_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_s8 (int8x16_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_s16 (int16x8_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_s32 (int32x4_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_s64 (int64x2_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_f16 (float16x8_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_f32 (float32x4_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_u8 (uint8x16_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_u16 (uint16x8_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_u32 (uint32x4_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_u64 (uint64x2_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_p8 (poly8x16_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_p64 (poly64x2_t __a)=0A= -{=0A= - return (poly16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_p128 (poly128_t __a)=0A= -{=0A= - return (poly16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_f16 (float16x4_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_f64 (float64x1_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_s8 (int8x8_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_s16 (int16x4_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_s32 (int32x2_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_s64 (int64x1_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_f32 (float32x2_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_u8 (uint8x8_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_u16 (uint16x4_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_u32 (uint32x2_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_u64 (uint64x1_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_p8 (poly8x8_t __a)=0A= -{=0A= - return (poly64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_p16 (poly16x4_t __a)=0A= -{=0A= - return (poly64x1_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_f64 (float64x2_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_s8 (int8x16_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_s16 (int16x8_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_s32 (int32x4_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_s64 (int64x2_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_f16 (float16x8_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_f32 (float32x4_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_p128 (poly128_t __a)=0A= -{=0A= - return (poly64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_u8 (uint8x16_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_u16 (uint16x8_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_p16 (poly16x8_t __a)=0A= -{=0A= - return (poly64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_u32 (uint32x4_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_u64 (uint64x2_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_p8 (poly8x16_t __a)=0A= -{=0A= - return (poly64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_p8 (poly8x16_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_p16 (poly16x8_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_f16 (float16x8_t __a)=0A= -{=0A= - return (poly128_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_f32 (float32x4_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_p64 (poly64x2_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_s64 (int64x2_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_u64 (uint64x2_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_s8 (int8x16_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_s16 (int16x8_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_s32 (int32x4_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_u8 (uint8x16_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_u16 (uint16x8_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_u32 (uint32x4_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_f64 (float64x1_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_s8 (int8x8_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_s16 (int16x4_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_s32 (int32x2_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_s64 (int64x1_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_f32 (float32x2_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_u8 (uint8x8_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_u16 (uint16x4_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_u32 (uint32x2_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_u64 (uint64x1_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_p8 (poly8x8_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_p16 (poly16x4_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_p64 (poly64x1_t __a)=0A= -{=0A= - return (float16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_f64 (float64x2_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_s8 (int8x16_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_s16 (int16x8_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_s32 (int32x4_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_s64 (int64x2_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_f32 (float32x4_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_u8 (uint8x16_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_u16 (uint16x8_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_u32 (uint32x4_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_u64 (uint64x2_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_p8 (poly8x16_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_p128 (poly128_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_p16 (poly16x8_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_p64 (poly64x2_t __a)=0A= -{=0A= - return (float16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_f16 (float16x4_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_f64 (float64x1_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_s8 (int8x8_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_s16 (int16x4_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_s32 (int32x2_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_s64 (int64x1_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_u8 (uint8x8_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_u16 (uint16x4_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_u32 (uint32x2_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_u64 (uint64x1_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_p8 (poly8x8_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_p16 (poly16x4_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_p64 (poly64x1_t __a)=0A= -{=0A= - return (float32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_f16 (float16x8_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_f64 (float64x2_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_s8 (int8x16_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_s16 (int16x8_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_s32 (int32x4_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_s64 (int64x2_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_u8 (uint8x16_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_u16 (uint16x8_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_u32 (uint32x4_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_u64 (uint64x2_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_p8 (poly8x16_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_p16 (poly16x8_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_p64 (poly64x2_t __a)=0A= -{=0A= - return (float32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_p128 (poly128_t __a)=0A= -{=0A= - return (float32x4_t)__a;=0A= -}=0A= -=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_f16 (float16x4_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_f32 (float32x2_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_p8 (poly8x8_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_p16 (poly16x4_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_p64 (poly64x1_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_s8 (int8x8_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_s16 (int16x4_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_s32 (int32x2_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_s64 (int64x1_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_u8 (uint8x8_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_u16 (uint16x4_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_u32 (uint32x2_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_u64 (uint64x1_t __a)=0A= -{=0A= - return (float64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_f16 (float16x8_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_f32 (float32x4_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_p8 (poly8x16_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_p16 (poly16x8_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_p64 (poly64x2_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_s8 (int8x16_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_s16 (int16x8_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_s32 (int32x4_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_s64 (int64x2_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_u8 (uint8x16_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_u16 (uint16x8_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_u32 (uint32x4_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_u64 (uint64x2_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_f16 (float16x4_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_f64 (float64x1_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_s8 (int8x8_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_s16 (int16x4_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_s32 (int32x2_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_f32 (float32x2_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_u8 (uint8x8_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_u16 (uint16x4_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_u32 (uint32x2_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_u64 (uint64x1_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_p8 (poly8x8_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_p16 (poly16x4_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_p64 (poly64x1_t __a)=0A= -{=0A= - return (int64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_f64 (float64x2_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_s8 (int8x16_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_s16 (int16x8_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_s32 (int32x4_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_f16 (float16x8_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_f32 (float32x4_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_u8 (uint8x16_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_u16 (uint16x8_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_u32 (uint32x4_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_u64 (uint64x2_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_p8 (poly8x16_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_p16 (poly16x8_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_p64 (poly64x2_t __a)=0A= -{=0A= - return (int64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_p128 (poly128_t __a)=0A= -{=0A= - return (int64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_f16 (float16x4_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_f64 (float64x1_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_s8 (int8x8_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_s16 (int16x4_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_s32 (int32x2_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_s64 (int64x1_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_f32 (float32x2_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_u8 (uint8x8_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_u16 (uint16x4_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_u32 (uint32x2_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_p8 (poly8x8_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_p16 (poly16x4_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_p64 (poly64x1_t __a)=0A= -{=0A= - return (uint64x1_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_f64 (float64x2_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_s8 (int8x16_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_s16 (int16x8_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_s32 (int32x4_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_s64 (int64x2_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_f16 (float16x8_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_f32 (float32x4_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_u8 (uint8x16_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_u16 (uint16x8_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_u32 (uint32x4_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_p8 (poly8x16_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_p16 (poly16x8_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_p64 (poly64x2_t __a)=0A= -{=0A= - return (uint64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_p128 (poly128_t __a)=0A= -{=0A= - return (uint64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_f16 (float16x4_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_f64 (float64x1_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_s16 (int16x4_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_s32 (int32x2_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_s64 (int64x1_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_f32 (float32x2_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_u8 (uint8x8_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_u16 (uint16x4_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_u32 (uint32x2_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_u64 (uint64x1_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_p8 (poly8x8_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_p16 (poly16x4_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_p64 (poly64x1_t __a)=0A= -{=0A= - return (int8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_f64 (float64x2_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_s16 (int16x8_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_s32 (int32x4_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_s64 (int64x2_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_f16 (float16x8_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_f32 (float32x4_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_u8 (uint8x16_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_u16 (uint16x8_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_u32 (uint32x4_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_u64 (uint64x2_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_p8 (poly8x16_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_p16 (poly16x8_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_p64 (poly64x2_t __a)=0A= -{=0A= - return (int8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_p128 (poly128_t __a)=0A= -{=0A= - return (int8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_f16 (float16x4_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_f64 (float64x1_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_s8 (int8x8_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_s32 (int32x2_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_s64 (int64x1_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_f32 (float32x2_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_u8 (uint8x8_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_u16 (uint16x4_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_u32 (uint32x2_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_u64 (uint64x1_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_p8 (poly8x8_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_p16 (poly16x4_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_p64 (poly64x1_t __a)=0A= -{=0A= - return (int16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_f64 (float64x2_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_s8 (int8x16_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_s32 (int32x4_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_s64 (int64x2_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_f16 (float16x8_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_f32 (float32x4_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_u8 (uint8x16_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_u16 (uint16x8_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_u32 (uint32x4_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_u64 (uint64x2_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_p8 (poly8x16_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_p16 (poly16x8_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_p64 (poly64x2_t __a)=0A= -{=0A= - return (int16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_p128 (poly128_t __a)=0A= -{=0A= - return (int16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_f16 (float16x4_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_f64 (float64x1_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_s8 (int8x8_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_s16 (int16x4_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_s64 (int64x1_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_f32 (float32x2_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_u8 (uint8x8_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_u16 (uint16x4_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_u32 (uint32x2_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_u64 (uint64x1_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_p8 (poly8x8_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_p16 (poly16x4_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_p64 (poly64x1_t __a)=0A= -{=0A= - return (int32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_f64 (float64x2_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_s8 (int8x16_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_s16 (int16x8_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_s64 (int64x2_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_f16 (float16x8_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_f32 (float32x4_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_u8 (uint8x16_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_u16 (uint16x8_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_u32 (uint32x4_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_u64 (uint64x2_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_p8 (poly8x16_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_p16 (poly16x8_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_p64 (poly64x2_t __a)=0A= -{=0A= - return (int32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_p128 (poly128_t __a)=0A= -{=0A= - return (int32x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_f16 (float16x4_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_f64 (float64x1_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_s8 (int8x8_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_s16 (int16x4_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_s32 (int32x2_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_s64 (int64x1_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_f32 (float32x2_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_u16 (uint16x4_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_u32 (uint32x2_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_u64 (uint64x1_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_p8 (poly8x8_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_p16 (poly16x4_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_p64 (poly64x1_t __a)=0A= -{=0A= - return (uint8x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_f64 (float64x2_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_s8 (int8x16_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_s16 (int16x8_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_s32 (int32x4_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_s64 (int64x2_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_f16 (float16x8_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_f32 (float32x4_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_u16 (uint16x8_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_u32 (uint32x4_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_u64 (uint64x2_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_p8 (poly8x16_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_p16 (poly16x8_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_p64 (poly64x2_t __a)=0A= -{=0A= - return (uint8x16_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_p128 (poly128_t __a)=0A= -{=0A= - return (uint8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_f16 (float16x4_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_f64 (float64x1_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_s8 (int8x8_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_s16 (int16x4_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_s32 (int32x2_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_s64 (int64x1_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_f32 (float32x2_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_u8 (uint8x8_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_u32 (uint32x2_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_u64 (uint64x1_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_p8 (poly8x8_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_p16 (poly16x4_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_p64 (poly64x1_t __a)=0A= -{=0A= - return (uint16x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_f64 (float64x2_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_s8 (int8x16_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_s16 (int16x8_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_s32 (int32x4_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_s64 (int64x2_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_f16 (float16x8_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_f32 (float32x4_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_u8 (uint8x16_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_u32 (uint32x4_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_u64 (uint64x2_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_p8 (poly8x16_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_p16 (poly16x8_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_p64 (poly64x2_t __a)=0A= -{=0A= - return (uint16x8_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_p128 (poly128_t __a)=0A= -{=0A= - return (uint16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_f16 (float16x4_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_f64 (float64x1_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_s8 (int8x8_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_s16 (int16x4_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_s32 (int32x2_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_s64 (int64x1_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_f32 (float32x2_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_u8 (uint8x8_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_u16 (uint16x4_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_u64 (uint64x1_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_p8 (poly8x8_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_p16 (poly16x4_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_p64 (poly64x1_t __a)=0A= -{=0A= - return (uint32x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_f64 (float64x2_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_s8 (int8x16_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_s16 (int16x8_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_s32 (int32x4_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_s64 (int64x2_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_f16 (float16x8_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_f32 (float32x4_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_u8 (uint8x16_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_u16 (uint16x8_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_u64 (uint64x2_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_p8 (poly8x16_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_p16 (poly16x8_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_p64 (poly64x2_t __a)=0A= -{=0A= - return (uint32x4_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_p128 (poly128_t __a)=0A= -{=0A= - return (uint32x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_p128 (poly128_t __a)=0A= -{=0A= - return (float64x2_t) __a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_f64 (float64x2_t __a)=0A= -{=0A= - return (poly128_t) __a;=0A= -}=0A= -=0A= /* vset_lane */=0A= =0A= __extension__ extern __inline float16x4_t=0A= @@ -30988,414 +28241,6 @@ vst4q_bf16 (bfloat16_t * __a, bfloat16x8x4_t __va= l)=0A= __builtin_aarch64_st4v8bf ((__builtin_aarch64_simd_bf *) __a, __val);=0A= }=0A= =0A= -/* vreinterpret */=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_u8 (uint8x8_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_u16 (uint16x4_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_u32 (uint32x2_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_u64 (uint64x1_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_s8 (int8x8_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_s16 (int16x4_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_s32 (int32x2_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_s64 (int64x1_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_p8 (poly8x8_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_p16 (poly16x4_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_p64 (poly64x1_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_f16 (float16x4_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_f32 (float32x2_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_bf16_f64 (float64x1_t __a)=0A= -{=0A= - return (bfloat16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_u8 (uint8x16_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_u16 (uint16x8_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_u32 (uint32x4_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_u64 (uint64x2_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_s8 (int8x16_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_s16 (int16x8_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_s32 (int32x4_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_s64 (int64x2_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_p8 (poly8x16_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_p16 (poly16x8_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_p64 (poly64x2_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_p128 (poly128_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_f16 (float16x8_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_f32 (float32x4_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline bfloat16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_bf16_f64 (float64x2_t __a)=0A= -{=0A= - return (bfloat16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s8_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (int8x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s16_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (int16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s32_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (int32x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_s64_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (int64x1_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u8_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (uint8x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u16_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (uint16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u32_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (uint32x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_u64_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (uint64x1_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f16_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (float16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f32_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (float32x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_f64_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (float64x1_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p8_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (poly8x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p16_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (poly16x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x1_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpret_p64_bf16 (bfloat16x4_t __a)=0A= -{=0A= - return (poly64x1_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s8_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (int8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s16_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (int16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s32_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (int32x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline int64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_s64_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (int64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u8_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (uint8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u16_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (uint16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u32_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (uint32x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline uint64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_u64_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (uint64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f16_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (float16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float32x4_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f32_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (float32x4_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline float64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_f64_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (float64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly8x16_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p8_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (poly8x16_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly16x8_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p16_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (poly16x8_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly64x2_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p64_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (poly64x2_t)__a;=0A= -}=0A= -=0A= -__extension__ extern __inline poly128_t=0A= -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= -vreinterpretq_p128_bf16 (bfloat16x8_t __a)=0A= -{=0A= - return (poly128_t)__a;=0A= -}=0A= -=0A= __extension__ extern __inline float32x2_t=0A= __attribute__ ((__always_inline__, __gnu_inline__, __artificial__))=0A= vbfdot_f32 (float32x2_t __r, bfloat16x4_t __a, bfloat16x4_t __b)=0A= diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators= .md=0A= index e72fdf35a82e596844bbdbbcb23a13f763aac775..52f696d9f8cfdc3d847c6c9d889= a45794f1f319d 100644=0A= --- a/gcc/config/aarch64/iterators.md=0A= +++ b/gcc/config/aarch64/iterators.md=0A= @@ -1060,12 +1060,13 @@=0A= (define_mode_attr nunits [(V8QI "8") (V16QI "16")=0A= (V4HI "4") (V8HI "8")=0A= (V2SI "2") (V4SI "4")=0A= - (V2DI "2") (V8DI "8")=0A= + (V1DI "1") (V2DI "2")=0A= (V4HF "4") (V8HF "8")=0A= (V4BF "4") (V8BF "8")=0A= (V2SF "2") (V4SF "4")=0A= (V1DF "1") (V2DF "2")=0A= - (DI "1") (DF "1")])=0A= + (DI "1") (DF "1")=0A= + (V8DI "8")])=0A= =0A= ;; Map a mode to the number of bits in it, if the size of the mode=0A= ;; is constant.=0A=