From patchwork Thu Feb 4 13:26:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jonathan Wright X-Patchwork-Id: 1436012 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=gcc-patches-bounces@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=epXxijqc; dkim-atps=neutral Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4DWfVW0KjHz9sXV for ; Fri, 5 Feb 2021 00:27:28 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E16FB3835429; Thu, 4 Feb 2021 13:27:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E16FB3835429 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1612445244; bh=fnqiDzZAxxsRSnIRxjTeaJ1KrGd4ha8j0HETnotPOqE=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=epXxijqc7Px+4g3R3U/HUjJ7T1hNBrobPdmxfsPZu/GZENOalpIEg7SQPVuJXY/CJ bUn5qq5rw3gI1AwzswGdFQNJ+GrCXBOuln/KDy7IarCOPoSCWsnczGu3X02l20lqDq pHbKb7Ys96CcMhvuvVham2GkL7L22WVVP/TxNlwI= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2089.outbound.protection.outlook.com [40.107.22.89]) by sourceware.org (Postfix) with ESMTPS id B099F383540B for ; Thu, 4 Feb 2021 13:27:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B099F383540B Received: from AM5PR0601CA0025.eurprd06.prod.outlook.com (2603:10a6:203:68::11) by VI1PR0802MB2543.eurprd08.prod.outlook.com (2603:10a6:800:b5::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.20; Thu, 4 Feb 2021 13:27:18 +0000 Received: from AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com (2603:10a6:203:68:cafe::b9) by AM5PR0601CA0025.outlook.office365.com (2603:10a6:203:68::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.17 via Frontend Transport; Thu, 4 Feb 2021 13:27:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT020.mail.protection.outlook.com (10.152.16.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3784.11 via Frontend Transport; Thu, 4 Feb 2021 13:27:18 +0000 Received: ("Tessian outbound e989e14f9207:v71"); Thu, 04 Feb 2021 13:27:18 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: e786f79756879f4d X-CR-MTA-TID: 64aa7808 Received: from c649f2b9642a.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E48F9107-853F-44A9-9C0C-2A161C0D1ED3.1; Thu, 04 Feb 2021 13:27:12 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c649f2b9642a.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 04 Feb 2021 13:27:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=V2cJT/kyPz+v8FeVvjVuIrfeCt5a91j7ExBa8xRUg2z6OXkSz2eoLWQE5f+iPTyGhrfcN/nXv0/RrnBIhvFNv0jfEPBRrAvfQoSG1BCcelmn0f4XS8tcuyuIoEBv3yVD5x+26j3LlNKw9PyAnfDlFunfgN33de1xyppbSvAF4zwF/wEEATKyazf1nW8L4EHGNdQu07UOXz0yGOTmcnAK4n+CJLEwWXIV03y8SaKa3mB1CPDzwM/DNwIjpg8VKn0/qxko5n/LiMHO3lrTOjImTLwvugK9ESScN9rTLu0FPkdQP3A54s4ZpttLHmUNWkm2mXt08/W3y4ZfaxBpeowRCw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=fnqiDzZAxxsRSnIRxjTeaJ1KrGd4ha8j0HETnotPOqE=; b=n1vnHUXRUvFTfUSVNcB1xDAplz7eO/ReC453isloAparZumaNmLZo+7UGMF6A/IAEDcF7NuVf1Yoq/FCVP5C8YUkX7qR8FGu3ipGAdbXecWBDkL9Q/BKcg6l6IjkTBYxte/nt4CBI/50D8szryhncCpTTe2xwpN50Z9LFllrIk7MuALfnVk3Wq2LaUHRu8ZaW7H94K5aNxPrHRjT7SK3P+cGtMY8OZlaD1fJw57Q4ruVo6Ix/CBQ8SwQScRzIsD2thF64RFFcHILj9GGlKAKV6oXXrSoxyYCU1zKjtCjQWaEkAaZQuUIpY09u4p2HoZr6dPUqfAl3fcK1fCz8aHUWA== 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 DBBPR08MB4758.eurprd08.prod.outlook.com (2603:10a6:10:da::16) by DB6PR0801MB1781.eurprd08.prod.outlook.com (2603:10a6:4:3c::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3825.23; Thu, 4 Feb 2021 13:26:05 +0000 Received: from DBBPR08MB4758.eurprd08.prod.outlook.com ([fe80::4407:4457:8f6b:eee5]) by DBBPR08MB4758.eurprd08.prod.outlook.com ([fe80::4407:4457:8f6b:eee5%3]) with mapi id 15.20.3825.020; Thu, 4 Feb 2021 13:26:05 +0000 To: "gcc-patches@gcc.gnu.org" Subject: [PATCH] aarch64: Use RTL builtins for [su]mull_high_n intrinsics Thread-Topic: [PATCH] aarch64: Use RTL builtins for [su]mull_high_n intrinsics Thread-Index: AQHW+vjviyO7inKvak+UX2o45l89Lw== Date: Thu, 4 Feb 2021 13:26:05 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-originating-ip: [217.140.99.251] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 7125dbdb-0ae3-4463-c628-08d8c9109843 x-ms-traffictypediagnostic: DB6PR0801MB1781:|VI1PR0802MB2543: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:93;OLM:93; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: H0M4R9R/I6GI069NTvlG6rVY+6/qW7L6YNOJilaCtqmhDNjcIesAFIOhcF6npvJUTG3onhiOvyTehm3aP7eCi9KsVtIsqzs9+Hs6JgpyWNo1NyWMwFlwSEITOLC1mD83BzlHbMMqReB3/MN6Uhf1cS3Re+EHhwxs8ylq2uNKlayhkj9VyLXuJMC0/GbN6w9bR/NO7YduLprBO0h+i9c2xQESVUtP1pBQMATDjQe6PVFek1YWoFinb2tJchGODMSIw/GTfx/ked6GYdc/N5bnVD/+3uzfM85LRTO4GzaaXDLu77MkVk8aSIs3odztfGUcxUBxxX2ONysAXrI+ltf9yFQ+xJ9QRIm0So97YR9I2meeOm45pEp6sySEjPDK+hRPpcig+7gL+eURL1SYiwpHq8MR4yWABh4n9rhIwLAGvbdtzn+6H5JZ0QyNYIBW1ndAwQDmcknSTMQS0IgLs4C20cybV1u7BRDNaySXWdtWyWw+2G+Q+/qiz/gx4xBnUTMpCkmc3SZzx9q8sCMoyZWXeQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DBBPR08MB4758.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(346002)(376002)(136003)(396003)(39860400002)(366004)(66946007)(91956017)(4744005)(76116006)(99936003)(478600001)(4326008)(8936002)(6506007)(186003)(26005)(71200400001)(6916009)(316002)(9686003)(52536014)(55016002)(2906002)(64756008)(5660300002)(7696005)(66476007)(66616009)(66556008)(66446008)(33656002)(86362001)(8676002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?q?/6YUPrj+/w/5ReQWUF9HZ8yQA?= =?iso-8859-1?q?sKP/1TpmvsH5D5fhxUKcoark0XK2M/CdmvT41G4H3br8rI1EbmaF3AS6jJY/?= =?iso-8859-1?q?SFDrhSWg20Gblg+h2jTlMyj03Dl1PhX1PNBu6FEvhGElYFKe8POp8KmJgpjF?= =?iso-8859-1?q?XA3r0Xj3byogh7CW5N2+KDAK5GJ4kwKIUzMJUrxcwR4pmK+21nBh3Ihoy9Cw?= =?iso-8859-1?q?o3jDIveL+uwC3R/3QtkEnXpEIPYKkxakh5o7DjytnDoGWI2/qMpUawyKrT3+?= =?iso-8859-1?q?pCxE8t09TntFCyJ0I78bGtl0cXBWX1083b4xv+2rVfKyGpKyKkzhuPnLJ1Ys?= =?iso-8859-1?q?M3scjQb/xQLSjz5R8LSuV09nWiO07WLgRc40dnoyDFF31Xx6vPxC4zwM1ldL?= =?iso-8859-1?q?0Ryg2XCQigNBQcvR2A2CtiNnBvPyWS6pJFgBuzEqzD9R2f7l3eqbiWRA86ym?= =?iso-8859-1?q?xziesG+ZpeSlvorGDNowKPnKj9OAwYknTcaxkCJAwTYEjdkkC8f5ao6IJm7R?= =?iso-8859-1?q?Gpw5ATpqVMhrnTOqso6jU0TY5PwqemI/fy1gQlVbMgb35/EefRmhTfjo3lIa?= =?iso-8859-1?q?KmLd6ecldi0iXpJ2+A2+SlxKnqJMK9c1wh0uGxwIuEuwE4ZXwpvQ5y00Ma7C?= =?iso-8859-1?q?67Mbje7PNl3mlWh9vHIfgSLxpLk/odQeF0EIXoovzh1riqqX6uFHQL/fM0ZU?= =?iso-8859-1?q?ydNi6Whao7kRzeIOq/0NlNe8xN1PxwCFvO+yP1YmOXaslRjYlEbJCVyr2SBm?= =?iso-8859-1?q?gPzK/6C5azTnNGk/CMmXUwZUY3Gk+IY33exFp99pO7ynKVJLrQ9dcWBd/iHt?= =?iso-8859-1?q?5mjCHtwGQU6mGH3W/gkGMUqMxIsIYnwJDOvIRH6mIsHsEwnMsb3ky4deJaCq?= =?iso-8859-1?q?5D6H2pPYvZ4+cK+lDzn6/BaJbebQdW907CXJusRC35EIISPScrBr1Ev1yCPF?= =?iso-8859-1?q?hKJMpa9SaNQ3MMRSbwaDaRARPds9TIiMRS8zvEMSjp0NMCVeqy6m9dPF80IK?= =?iso-8859-1?q?TUhSloOOMyPti2bJJyzfFgN/FJcYul8ADSCPA35eL46khHNYNC3IyAfpWfn0?= =?iso-8859-1?q?sLxXtI+tu0JBVFhfa3PROowYRQopIoxAm8+s5YW2tw6xM/rHMvS3+2j/yplZ?= =?iso-8859-1?q?vA9atee3S3SxP80sdp6/DcR1lrWYl4cF6GjkosQFWNXG/OI7tsSNRmsxlzv/?= =?iso-8859-1?q?9t0zWbWlwHHAzAfu9HHHRjn6EotuKP9RBMxjsRoInUmr6qpSDef3rFOFufj8?= =?iso-8859-1?q?fh2Px7Lj6xUnlOzbr3hrrvlliACTMANWT9KHyaS8rQ51AZD/w9LN6rbmyBnH?= =?iso-8859-1?q?PvQ86bOsLtMKwYiYy1hPpH/uR04KJn3O5Chqk2hbJi7V+j9PCVKI839bUi5?= MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1781 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 075e9c9f-8448-41e6-d0a0-08d8c9106cd9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kOT5EYfAnCZEtZjaRFEueH5YoQMQJMnYgseKH27ofQ5O2RfZ2kvTb5cxq2jXMu9RoTygGha/VvUpKrZKuhjF5L8wUbWFvzv++CwLvU7/CvUmqCCs2F51b56zdokzgdXvxwxi/NOwyFoOjQ4MFwezd3JobxtsA2AMY9y3NvslZZhUhK6BUbnSoJ0wLDRdU2wsqRiJbq6k8fHn63Rg9GcyknhHWNv0kFcu+dC470Ba21j8/N96EO7mY0fQNzYzZ3p8qZLP6oAkhAr8r/wCYw4G9tTq3Rz/a8Gj1sY1S2gEXvfPte/ZfyLSep9yXOd3/ybXU61aFYCiADrfZH6pIWGDbwuJpcy32OApNIqFRLWFjgHv+BH9UNPQxYAfpdUyo6CXikGnWwVxahuc0xngfpaNkhkRwluRcZiNbNMtoHB4NaBfACZNyyn/5scXgIQ9A23BzSnnjwM2khhjN1/XWpDzbhzxlSYq8vJLWOMOCLBYvE2UjOLD+IGvDTRoTj1ZDjwg9c/lHh+j47llKChHt+68kVyNeQwqW+lyf/prCp0s/GzjyVebXn+vYs7HrXckRXMAtPGjL5jld++6Z26StKwER9kza4tC5WMSYWbQmwkiMQCkKgB7SMD0iG/CdYiAsKxMXn3EW52NMkZKv5qbfzl+NaKNj/bH9ZQVD6na7GNQpjc= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(346002)(136003)(376002)(396003)(39860400002)(46966006)(36840700001)(4326008)(66616009)(336012)(99936003)(52536014)(478600001)(70586007)(82740400003)(9686003)(7696005)(26005)(5660300002)(186003)(55016002)(2906002)(82310400003)(356005)(70206006)(47076005)(33656002)(8936002)(8676002)(235185007)(81166007)(36860700001)(316002)(6916009)(6506007)(86362001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2021 13:27:18.3503 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7125dbdb-0ae3-4463-c628-08d8c9109843 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: AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2543 X-Spam-Status: No, score=-15.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jonathan Wright via Gcc-patches From: Jonathan Wright Reply-To: Jonathan Wright Errors-To: gcc-patches-bounces@gcc.gnu.org Sender: "Gcc-patches" Hi, As subject, this patch rewrites [su]mull_high_n Neon intrinsics to use RTL builtins rather than inline assembly code, allowing for better scheduling and optimization. Regression tested and bootstrapped on aarch64-none-linux-gnu and aarch64_be-none-elf - no issues. Ok for master? Thanks, Jonathan --- gcc/ChangeLog: 2021-02-03  Jonathan Wright   * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n builtin generator macros. * config/aarch64/aarch64-simd.md (aarch64_mull_hi_n_insn): Define. (aarch64_mull_hi_n): Define. * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin instead of inline asm. (vmull_high_n_s32): Likewise. (vmull_high_n_u16): Likewise. (vmull_high_n_u32): Likewise. diff --git a/gcc/config/aarch64/aarch64-simd-builtins.def b/gcc/config/aarch64/aarch64-simd-builtins.def index b787cb9788e758c1f103eab366b7aed4dc457830..4dac8e0d79bdf887e37e89f09c0beeeebbfd45aa 100644 --- a/gcc/config/aarch64/aarch64-simd-builtins.def +++ b/gcc/config/aarch64/aarch64-simd-builtins.def @@ -300,6 +300,9 @@ BUILTIN_VD_HSI (BINOP, smull_n, 0, NONE) BUILTIN_VD_HSI (BINOPU, umull_n, 0, NONE) + BUILTIN_VQ_HSI (BINOP, smull_hi_n, 0, NONE) + BUILTIN_VQ_HSI (BINOPU, umull_hi_n, 0, NONE) + BUILTIN_VD_HSI (TERNOP_LANE, vec_smult_lane_, 0, NONE) BUILTIN_VD_HSI (QUADOP_LANE, vec_smlal_lane_, 0, NONE) BUILTIN_VD_HSI (TERNOP_LANE, vec_smult_laneq_, 0, NONE) diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 393bab1920100badef21479b2f25cb6e1880c927..1d1ba379c28c052f53fc6c45573f3319ee5784f0 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -2266,6 +2266,33 @@ [(set_attr "type" "neon_mul__scalar_long")] ) +(define_insn "aarch64_mull_hi_n_insn" + [(set (match_operand: 0 "register_operand" "=w") + (mult: + (ANY_EXTEND: (vec_select: + (match_operand:VQ_HSI 1 "register_operand" "w") + (match_operand:VQ_HSI 3 "vect_par_cnst_hi_half" ""))) + (ANY_EXTEND: + (vec_duplicate: + (match_operand: 2 "register_operand" "")))))] + "TARGET_SIMD" + "mull2\\t%0., %1., %2.[0]" + [(set_attr "type" "neon_mul__scalar_long")] +) + +(define_expand "aarch64_mull_hi_n" + [(match_operand: 0 "register_operand") + (ANY_EXTEND: (match_operand:VQ_HSI 1 "register_operand")) + (match_operand: 2 "register_operand")] + "TARGET_SIMD" + { + rtx p = aarch64_simd_vect_par_cnst_half (mode, , true); + emit_insn (gen_aarch64_mull_hi_n_insn (operands[0], operands[1], + operands[2], p)); + DONE; + } +) + ;; vmlal_lane_s16 intrinsics (define_insn "aarch64_vec_mlal_lane" [(set (match_operand: 0 "register_operand" "=w") diff --git a/gcc/config/aarch64/arm_neon.h b/gcc/config/aarch64/arm_neon.h index d50bd65c497a02ea67c4aa02aff29f1ae7223b4e..fffd7b7bd2f7a3781f22cb6702b341d4318b1036 100644 --- a/gcc/config/aarch64/arm_neon.h +++ b/gcc/config/aarch64/arm_neon.h @@ -8275,48 +8275,28 @@ __extension__ extern __inline int32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmull_high_n_s16 (int16x8_t __a, int16_t __b) { - int32x4_t __result; - __asm__ ("smull2 %0.4s,%1.8h,%2.h[0]" - : "=w"(__result) - : "w"(__a), "x"(__b) - : /* No clobbers */); - return __result; + return __builtin_aarch64_smull_hi_nv8hi (__a, __b); } __extension__ extern __inline int64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmull_high_n_s32 (int32x4_t __a, int32_t __b) { - int64x2_t __result; - __asm__ ("smull2 %0.2d,%1.4s,%2.s[0]" - : "=w"(__result) - : "w"(__a), "w"(__b) - : /* No clobbers */); - return __result; + return __builtin_aarch64_smull_hi_nv4si (__a, __b); } __extension__ extern __inline uint32x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmull_high_n_u16 (uint16x8_t __a, uint16_t __b) { - uint32x4_t __result; - __asm__ ("umull2 %0.4s,%1.8h,%2.h[0]" - : "=w"(__result) - : "w"(__a), "x"(__b) - : /* No clobbers */); - return __result; + return __builtin_aarch64_umull_hi_nv8hi_uuu (__a, __b); } __extension__ extern __inline uint64x2_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vmull_high_n_u32 (uint32x4_t __a, uint32_t __b) { - uint64x2_t __result; - __asm__ ("umull2 %0.2d,%1.4s,%2.s[0]" - : "=w"(__result) - : "w"(__a), "w"(__b) - : /* No clobbers */); - return __result; + return __builtin_aarch64_umull_hi_nv4si_uuu (__a, __b); } __extension__ extern __inline poly16x8_t