From patchwork Wed Mar 8 18:09:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Greenhalgh X-Patchwork-Id: 736675 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3vdhQJ3GnNz9sNB for ; Thu, 9 Mar 2017 05:10:15 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="BV+ASAk+"; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; q=dns; s=default; b=oZMJaMD+ocMYdyLiK HMpE3IOsubI4UeTqSWTvmKVmZeBchCXtC+WDSNSEhP8Ci3w52/e3QyR568/8bfhq IPVkpPVw45zGg14pVFb9c5uZEmFUmUO1Fbj8PvZZU/KNdobsd7cGPYVSl8ZQeGMy 1aO9ci99WO8dIIGgloZPrnM8MI= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:date :from:to:cc:subject:message-id:references:mime-version :content-type:in-reply-to; s=default; bh=IddIL6VyB4JuJxitfTQwhN4 EBME=; b=BV+ASAk+sh+h1F+kRBwXcCK/79k5TOfvuWoJxMZXLWQKQgTI7rg5vPr +pmEYQ4UFCDIsknxCeYJZPfnyrndARSo4E827p4lIzoqsGnrZ4kGYJKzYZ/zHAO+ 0rtMK+ZiQ002G2+X3TPByPTMAiNsI0BQPi038DccD4qePdiesU9k= Received: (qmail 41121 invoked by alias); 8 Mar 2017 18:10:04 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Received: (qmail 41100 invoked by uid 89); 8 Mar 2017 18:10:03 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.4 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0057.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 08 Mar 2017 18:10:00 +0000 Received: from AM3PR08CA0044.eurprd08.prod.outlook.com (10.163.23.140) by VI1PR0802MB2176.eurprd08.prod.outlook.com (10.172.12.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Wed, 8 Mar 2017 18:09:57 +0000 Received: from DB5EUR03FT019.eop-EUR03.prod.protection.outlook.com (2a01:111:f400:7e0a::204) by AM3PR08CA0044.outlook.office365.com (2a01:111:e400:8854::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.14 via Frontend Transport; Wed, 8 Mar 2017 18:09:57 +0000 Authentication-Results: spf=pass (sender IP is 217.140.96.140) smtp.mailfrom=arm.com; cavium.com; dkim=none (message not signed) header.d=none; cavium.com; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 217.140.96.140 as permitted sender) receiver=protection.outlook.com; client-ip=217.140.96.140; helo=nebula.arm.com; Received: from nebula.arm.com (217.140.96.140) by DB5EUR03FT019.mail.protection.outlook.com (10.152.20.163) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384) id 15.1.947.7 via Frontend Transport; Wed, 8 Mar 2017 18:09:56 +0000 Received: from arm.com (10.1.2.79) by mail.arm.com (10.1.106.66) with Microsoft SMTP Server id 14.3.294.0; Wed, 8 Mar 2017 18:09:52 +0000 Date: Wed, 8 Mar 2017 18:09:52 +0000 From: James Greenhalgh To: "Hurugalawadi, Naveen" CC: "gcc-patches@gcc.gnu.org" , "Pinski, Andrew" , Marcus Shawcroft , Richard Earnshaw , Subject: Re: [PATCH][AArch64] Add neon_pairwise_add & neon_pairwise_add_q types Message-ID: <20170308180951.GE25712@arm.com> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:217.140.96.140; IPV:CAL; SCL:-1; CTRY:GB; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39840400002)(39410400002)(39850400002)(39860400002)(2980300002)(438002)(199003)(189002)(24454002)(377424004)(77096006)(83506001)(33656002)(54906002)(76176999)(50986999)(86362001)(2950100002)(5890100001)(54356999)(7696004)(189998001)(97756001)(305945005)(356003)(55016002)(36756003)(38730400002)(5660300001)(1076002)(23726003)(110136004)(8676002)(2906002)(50466002)(106466001)(46406003)(104016004)(8936002)(47776003)(4001350100001)(4326008)(6286002)(6246003)(229853002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0802MB2176; H:nebula.arm.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; DB5EUR03FT019; 1:53DEdzQy8bCFztDpmdgKVXjgt13DR/HfssAYJDr6njuBMcebNHGmUpUgmwjeZ9LFiXeGE4xDiOY8KipoGJCP4vdvyhYteFCtzzA0WV1On1fx1C1vuF4mRpFmj4ew35MEbIQC/8rCYIS1cSbBxtEnGBWZ06izsp1klKWNthE1skyLd6D+tM7GJCIn1hVKlJQogiZlvE9+EqaZk7rGCxkOJCg1j1oAD2q8Hebl19fv0kCrvEJoxnsQ/zm3xhAHdnYQnB++e7lVKo486aw6gNJK/LFi/rAheRFJOLbKNXtEBWwGsPSyyoqXm3O+UrZ5On8saTE7BjLBDqYYYI2O3KMINdaFe0n1LfyHFCWHWrsd78R0Bat9zG3ckrs444EZQwuyB7jkHDR2yCEPn5sqdBwOBedu+Y/HeJ3D9AhK2rGuDoBNaB3HumNMN9Ce1vi59mG5gHBPuekM6V4FAxZINoKRI6ahiq4u0hXWrTeCC2HXI/fuQfRRM55b/thkkVmXabPtH4Zy74uYiRMWTrshX1JK2AiG/v7Z3v8S6i5JLITT4SDlv/Npl53bi1sy+4DBKP7i X-MS-Office365-Filtering-Correlation-Id: 6d571c75-6d09-421b-3774-08d4664e53c5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:VI1PR0802MB2176; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2176; 3:EWbcwDzeeL29Y1QWR1a1aKdu5ckEK3a2u2v1/PzHmrHTs9IoU1weFFe38FfGq58UqQ+zGMtRysaeq5WJxhWvwPbCEHZGxsNO9Ph+AtOBa0iO9i7Zb5KeLqv0KbVAYIqxFu93jxArKrkKoKnt/Z1tJwqPR6Cxnf1LyFFt7rPUiFgiIFBKOCu5w37aESixDgl1NMdWHkgxkosEa7pxTe87k5m8fy1Qhi5hT64NjGMIqRaYuk3nZdi2nq0wtSHw5WaFytXdu3LgewOfnx6+w46UTeDXl06M6olmA3K7uOaEf7Tpz/4wFeWyo+ovj6YX6IRWnrsN6UDiorOXh/bAOHbHkvfG2BwyBf+Rly6UQ/pWI7QZ9edknbAnYWqXUYiWdSD9JeCwRxz4G+xZTW17AjG8rg==; 25:rNMszU3vXeXNMD5EJr47tutTAIcBD9lQCBTmbVZ+PtjU6aq11E7MLik9Z9Zgp6HVIvzK/Q9kHOcRLZPYSigOfq6VZSiuEyo1u9DbL2iFJvIYBzGEm8CMk+cb+ztIUlKnAbpMiyp7/PIbajEDTzG3snMT2FzumSKVKkLGE6J3PfOrG5DPQyFKWcqqBxYaQLzLGnh0CJZyxRWdWJ35Mauh9fRPJG8Oxvxno1JiXbYpM5qS8mCzZmUiWtIm8rAXzYOw5kLkGE45RP3/A+8Fjqo5If6OyaPAkXfSbW8wQaCe6gK2GMt+wV6HIr+V+rVpASV1yn04brUz0Fzam8OczdtuGH7w44lj0WN8xaiKEB4Lem3zJ3lBSvbVzU5afoQ4wQr7vYi7zPL7N9Qyx5KA/CQqxEP0kqpdZNsSYDEERjwxrXEOCu9urexVxKFphpm7dIv1JyAHsqxEZOVIw/yxgm3mNQ== X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2176; 31:afR+yePxBTDX1ip6uI5abNXNhGfWIYMxgZANhDqRXcgE2x3QQk6aSEC5hSpXQ+4Sw9er6vX0d2Am4l9ddDU1a0YRaJX1sYp1EXT9rA1nJu3CpeEDDUYy57nbI2kwduGumOnmo7wwuJ+nXXrkcG9p3yo2U856Yb01MNKsOLKKv+nbAyuMH7iqq5472P8WO7XNn6vpIR0U5la6dYdOr1tPFZFSWMXo+L/TSDwyGAyKeix4rxTtFiPQtR8341ph+kUaay+858TaBEveshJgthy1x8Q24xKyok+UL/XU3vbb4TY=; 20:oz7uk8IRJEenuKi8yuQ7CH0/q5Du0X9EdstEoKQxwQncpfTDvES+k/jH1yO1fvN7MThkrAvt1eZTYCmfBcaHbociBn8HmBVkCETyjvOdlZw5lic9U5+zuqYLQVbBvm0g1Nx+7/qmMbBtuXttnAlOXVy/w4u9lVcJri1KOoNYAneTJ7q0laHYfIcmhDJL0ws87l9qaSvGp5o0SZQUY5zSf+VZhmGJwoRc64Gmj1f1lt0vaGFfFu4PYl5QQQndNmjw NoDisclaimer: True X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(13023025)(13020025)(13024025)(13013025)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123558025)(20161123562025)(6072148); SRVR:VI1PR0802MB2176; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0802MB2176; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2176; 4:0AdtwOR8WxY/tX5RsZNxJEj9ogWVz/oRKM1o85XJAEDM2mSAXvLzubMAZb+9GYzzK5d0SFZ0iIiNtdwIJdVf0NG12dugrGn8iMYgxuPCObTVTW51CF5ORj4dtxKCTpopz04mufDedZ9yXmyP2QlDYdlFI5RYEk2sGwFDtdh6jNR4krjH85qQyhPfnkeUsQ4SFDv4XrQK2k4UaxAcjH4Z7j0/S61Ndx+hNbXPe8kDXt9QKdRDvrIZOBUiPiMeQZKrBidUYFg9nNFacqoOyI9K4xtKH2PcyH/qvG8MdtYB7lSydA/wOy0ZULMF5/NdSSX3Yibr8FHqejrVPnjMCwuYBQo+kq0noXv9LolHWbhLkcSJJFHpi4si2e1bysvj90f/APLef1lhCU5BYazq7PWCe5wRIRyKcambbzleDZzMdcxVsd/PQq9MAMGXxy4Lvkr56n419eMvwChidBKwFqJrnRvfKb8oP5/J71aUzRi3DbmHOYIg9vqfSFAT4g0jqceSStGS0TzcJ8JnjGCuBLf8BEMmogr9xg4YkO0zkH8QsNSLt7chUt4Og/ZWj9CjIsxnxVcTtzABwH5WbNjnVnFL+rqWnJ/WnhJfr0BBT65XKCFcY3jO0VHegrKk5k4iyOU0VT86EI+ICdtq9TZnjsZV33C2Snox60NpQPoDKE5PbIGx3VnlC96D1HG7kyBTddey67xnzZDNhsbLReZuZjoC3A== X-Forefront-PRVS: 02408926C4 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; VI1PR0802MB2176; 23:vjIKJNnylayVHNrv7055ZlGBlauuUj32z0W+3Uj?= =?us-ascii?Q?ZoRjhyfaDtn8GLzSDd+SIqVmqHznoQ8fPC+IFUHQxw3zZAANAE0/oJfV4Aii?= =?us-ascii?Q?YaL0bx7U5kHaW0tzGHe3YiPmZBvTYwzQMEBm4+2+wN/zACe/+TzvSkPRWXlr?= =?us-ascii?Q?km7DV6H2TYFxBRpCOqKFcS1/Xa5NDtyun7SCIMjCqfdVV+U9TWiqcLCrlx+k?= =?us-ascii?Q?Zo6OSRR6OMtssP05pfeNPvU8uXWrC5JJpgi21qA5adaHOaVZBHFVMVpH8D8h?= =?us-ascii?Q?xaTeyLpEghwsHT5FOJZzv7pp1SXpe7IYn/NGoEltqaFKb0DBibpWzOKsQf+C?= =?us-ascii?Q?jaDDLj82Nv850jhRmrjRse2bkOPeIHQ8PTa9M2tkM+gAD9vQvyR9c8kZEX1n?= =?us-ascii?Q?iLfQlHFymDOdyyYd6Lxhynn+JTEEzo8yuBBNc+K0A35nJpiQiH2c0jvIpvcj?= =?us-ascii?Q?17A2aSDoPU+BdvseQXwZYcIHBkrPTFYqKyqF1diPjhohVgpyBGPOvFgClHDy?= =?us-ascii?Q?xjmIM/QkCfj6dWV9RQMGm8IGf3IQbx0BlLGKrCEB0BycFzg+ydiLR2yJ7cdA?= =?us-ascii?Q?MOFJqAlnFBaTvqjSWDJqKn1szttj4Qs7nseh1Tq5ecTagdWI0M0fJLcWfsej?= =?us-ascii?Q?g1TC0H0pRpg2UN/aaH0hDCQo+jCqxw/X4A3Xq6TY/OLuDKsHvUgfMk1UNQ/9?= =?us-ascii?Q?SLp70xfElrl8DaacJXKRS6B56lz5eWweUAsNHdWyNYi3uPUqoV4O2yKkUGCQ?= =?us-ascii?Q?GRI2etU0+cZkI9J9U9GUdfxkXJ11tNWmvOJPR6o7z74kvfCnPTUcPATRu/dO?= =?us-ascii?Q?kyogssXuKoi8LQLnUJMcynujK9Xog0uZSWX3DqzhANUUN3hCfF9q+7nelTYO?= =?us-ascii?Q?Q/QDz9gKsYIwE11N0To/fwaagaegkvpONV/LrjCyIvn8GnVpdQWxKaJpzIKA?= =?us-ascii?Q?+ZdHf4rgJDja9jAviQqoXEO92roYyypkXvqITDSsW4VqhoBemMKsaTMCXp6J?= =?us-ascii?Q?PFJQrGCK1X87FCfSoi8zF2O/lKo4GFMqShK6lbOvXYHwX6BFJ5SQEeiT+qou?= =?us-ascii?Q?IVBgEHyEmilIomIHkh0OIkYxS7SkRLi+OuaOLGU+JEMic5AzhXT8/IedlkZv?= =?us-ascii?Q?ckQ4voATGwRogCSH9BtHjh+qUkW9yeHeATY8MFO/Nmgivp7y9EvcECPwOopq?= =?us-ascii?Q?XQE9s2Um5D4RqMiQ=3D?= X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2176; 6:y/ZMQGv/sSaNNUQgaxlYYyJRabc0Gn1fz6mb/xjuJ0RKiTAFnOv+K5racSYhPdRByRIPw1NCauz6UIiuWiniFLpfQ3fEsKjEwcpL9SFF3034aaTXptevVFO8CQyYQ6YapAOeTKYNvloiQN/uzYF8Fng91xU38uHzythFDHDhfITm5wmZaFcT3OHXyECkgMI+w5Cl3R4L7Ev0KbA0rQPZdMjLpJDAjdY4ivUyG/YJXHkqpAlR46bq4X2gQqVcN+uGvcXF5b+/MxVmW8zLXRvOhA72arOOS1rZpCNXofkSdFty9JeS3qDiwuncJ4LaFRQmqIjkTg1rkBZpHEHevU5ppVVtdPKtCFIv/b4iNBgqyB3ecnRtVuanwYPK7XHKj3hDYkj67ixgn9Ob5bi+9Owxf7ZuaS60cJyZpdhHd1lC5Wo=; 5:qH8UEGXQ7D/pNcvCfNiTruTHorox2bFHP/rk64eGw6z3bGO8HSZfeaKWGSUQ8vd7fPyZdn4v4TYDQcgblU8S3TB2DJMXXqIQwAVE7BM+3mw45N6+JfBlbSXfaypEiBDIINprgMJtdGf4jGLA0g5HoC3ZQQoayuxgn3XCPcyl7V8=; 24:XNHPXIjIhh/S6nwObzNM1qxNmS3R5rSvI/8myVJ/uOtvXDXHHQt3xEhhbEAw7kg2WKHkMVHANfAe8gm5PTclFMb+vcU+AyE4n4h9bO979vk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0802MB2176; 7:65GnYSYE9nqzYZnAwhAcmGQtfkhpY8uiQHHu5/QFE8tVlbQz76430bH6KDUoJgHMj+IIyG90Ek/nZklYoMAOXxhmhT3o53H2F+QdUkYAGiWYE1Qt7DLujy+IA8rBKb9jTpYepV/9lANI/m/mSx6s4e0SbaGszaaZsE9QFn0G3V93djPxJeX2GxbE4kKlbr3DOAv9Zky4jXa2R5sHW6YxfrDZkmca3VqSJDMXBviSSz+SSqetznyq5ReY+cW67KVT+vzb5UbZPb0eExrKNysZO5ANxH9xeJ+gs8dd5Z1mKxPf6GiH5S/24YjX+K5Dh0843aUxAGw+fKDF0PBsea32lQ== X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2017 18:09:56.2342 (UTC) X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[217.140.96.140]; Helo=[nebula.arm.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0802MB2176 X-IsSubscribed: yes On Mon, Mar 06, 2017 at 05:09:44AM +0000, Hurugalawadi, Naveen wrote: > Hi, > > Please find attached the patch that adds "neon_pairwise_add" & > "neon_pairwise_add_qcrypto_pmull" for AArch64. > > The patch doesn't change spec but improve other benchmarks. > > Bootstrapped and Regression tested on aarch64-thunder-linux. > Please review the patch and let us know if its okay for Stage-1? The whitespace in various places in this patch is inconsistent with the whitespace around the modified line. For example: Where most lines use 8 spaces, and you've used tabs. While all these lines should really have been tabs to begin with, they didn't, and introducing inconsistency from line to line is worse than just following the existing style. With the whitespace fixed, this patch is OK for stage 1. Thanks, James > 2017-03-06 Julian Brown > Naveen H.S > > * config/aarch64/aarch64-simd.md (aarch64_reduc_plus_internal) > (aarch64_reduc_plus_internalv2si, aarch64_addp, aarch64_addpdi): > Use neon_pairwise_add/neon_pairwise_add_q as appropriate. > * config/aarch64/iterators.md (reduc_pairwise): New mode attribute. > * config/aarch64/thunderx.md (thunderx_neon_add, thunderx_neon_add_q): > Tweak for neon_pairwise_add split. > * config/aarch64/thunderx2t99.md (thunderx2t99_asimd_int): Add > neon_pairwise_add/neon_pairwise_add_q types. > * config/arm/cortex-a15-neon.md (cortex_a15_neon_type): Likewise. > * config/arm/cortex-a17-neon.md (cortex_a17_neon_type): Likewise. > * config/arm/cortex-a57.md (cortex_a57_neon_type): Likewise. > * config/arm/cortex-a8-neon.md (cortex_a8_neon_type): Likewise. > * config/arm/cortex-a9-neon.md (cortex_a9_neon_type): Likewise. > * config/arm/xgene1.md (xgene1_neon_arith): Likewise. > * config/arm/types.md (neon_pairwise_add, neon_pairwise_add_q): Add. > diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md > index 338b9f8..878f86a 100644 > --- a/gcc/config/aarch64/aarch64-simd.md > +++ b/gcc/config/aarch64/aarch64-simd.md > @@ -2101,7 +2101,7 @@ > UNSPEC_ADDV))] > "TARGET_SIMD" > "add\\t%0, %1." > - [(set_attr "type" "neon_reduc_add")] > + [(set_attr "type" "neon__add")] > ) > > (define_insn "aarch64_reduc_plus_internalv2si" > @@ -2110,7 +2110,7 @@ > UNSPEC_ADDV))] > "TARGET_SIMD" > "addp\\t%0.2s, %1.2s, %1.2s" > - [(set_attr "type" "neon_reduc_add")] > + [(set_attr "type" "neon_pairwise_add")] > ) > > (define_insn "reduc_plus_scal_" > @@ -4405,7 +4405,7 @@ > UNSPEC_ADDP))] > "TARGET_SIMD" > "addp\t%0, %1, %2" > - [(set_attr "type" "neon_reduc_add")] > + [(set_attr "type" "neon_pairwise_add")] > ) > > (define_insn "aarch64_addpdi" > @@ -4415,7 +4415,7 @@ > UNSPEC_ADDP))] > "TARGET_SIMD" > "addp\t%d0, %1.2d" > - [(set_attr "type" "neon_reduc_add")] > + [(set_attr "type" "neon_pairwise_add")] > ) > > ;; sqrt > diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md > index c59d31e..c829cb5 100644 > --- a/gcc/config/aarch64/iterators.md > +++ b/gcc/config/aarch64/iterators.md > @@ -790,6 +790,12 @@ > (V2SF "p") (V4SF "v") > (V4HF "v") (V8HF "v")]) > > +(define_mode_attr reduc_pairwise [(V8QI "reduc") (V16QI "reduc") > + (V4HI "reduc") (V8HI "reduc") > + (V2SI "pairwise") (V4SI "reduc") > + (V2DI "pairwise") (V2DF "pairwise") > + (V2SF "pairwise") (V4SF "reduc")]) > + > (define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")]) > (define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")]) > > diff --git a/gcc/config/aarch64/thunderx.md b/gcc/config/aarch64/thunderx.md > index b67671d..95bfad4 100644 > --- a/gcc/config/aarch64/thunderx.md > +++ b/gcc/config/aarch64/thunderx.md > @@ -266,7 +266,8 @@ > > (define_insn_reservation "thunderx_neon_add" 4 > (and (eq_attr "tune" "thunderx") > - (eq_attr "type" "neon_reduc_add, neon_reduc_minmax, neon_fp_reduc_add_s, \ > + (eq_attr "type" "neon_reduc_add, neon_pairwise_add, neon_reduc_minmax,\ > + neon_fp_reduc_add_s, \ > neon_fp_reduc_add_d, neon_fp_to_int_s, neon_fp_to_int_d, \ > neon_add_halve, neon_sub_halve, neon_qadd, neon_compare, \ > neon_compare_zero, neon_minmax, neon_abd, neon_add, neon_sub, \ > @@ -280,7 +281,8 @@ > > (define_insn_reservation "thunderx_neon_add_q" 5 > (and (eq_attr "tune" "thunderx") > - (eq_attr "type" "neon_reduc_add_q, neon_reduc_minmax_q, neon_fp_reduc_add_s_q, \ > + (eq_attr "type" "neon_reduc_add_q, neon_pairwise_add_q,\ > + neon_reduc_minmax_q, neon_fp_reduc_add_s_q, \ > neon_fp_reduc_add_d_q, neon_fp_to_int_s_q, neon_fp_to_int_d_q, \ > neon_add_halve_q, neon_sub_halve_q, neon_qadd_q, neon_compare_q, \ > neon_compare_zero_q, neon_minmax_q, neon_abd_q, neon_add_q, neon_sub_q, \ > diff --git a/gcc/config/aarch64/thunderx2t99.md b/gcc/config/aarch64/thunderx2t99.md > index 67011ac..f807547 100644 > --- a/gcc/config/aarch64/thunderx2t99.md > +++ b/gcc/config/aarch64/thunderx2t99.md > @@ -231,6 +231,7 @@ > neon_abs,neon_abs_q,\ > neon_add,neon_add_q,\ > neon_neg,neon_neg_q,\ > + neon_pairwise_add,neon_pairwise_add_q,\ > neon_add_long,neon_add_widen,\ > neon_add_halve,neon_add_halve_q,\ > neon_sub_long,neon_sub_widen,\ > diff --git a/gcc/config/arm/cortex-a15-neon.md b/gcc/config/arm/cortex-a15-neon.md > index 73ee84c..1a02fa2 100644 > --- a/gcc/config/arm/cortex-a15-neon.md > +++ b/gcc/config/arm/cortex-a15-neon.md > @@ -48,6 +48,7 @@ > (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\ > neon_add_widen, neon_neg, neon_neg_q,\ > neon_reduc_add, neon_reduc_add_q,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_long, neon_sub, neon_sub_q,\ > neon_sub_long, neon_sub_widen, neon_logic,\ > neon_logic_q, neon_tst, neon_tst_q") > diff --git a/gcc/config/arm/cortex-a17-neon.md b/gcc/config/arm/cortex-a17-neon.md > index 29d08de..d4f9e03 100644 > --- a/gcc/config/arm/cortex-a17-neon.md > +++ b/gcc/config/arm/cortex-a17-neon.md > @@ -47,6 +47,7 @@ > (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\ > neon_add_widen, neon_neg, neon_neg_q,\ > neon_reduc_add, neon_reduc_add_q,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_long, neon_sub, neon_sub_q,\ > neon_sub_long, neon_sub_widen, neon_logic,\ > neon_logic_q, neon_tst, neon_tst_q") > diff --git a/gcc/config/arm/cortex-a57.md b/gcc/config/arm/cortex-a57.md > index ebf4a49..cb5e181 100644 > --- a/gcc/config/arm/cortex-a57.md > +++ b/gcc/config/arm/cortex-a57.md > @@ -50,6 +50,7 @@ > (eq_attr "type" "neon_add, neon_add_q, neon_add_long,\ > neon_add_widen, neon_neg, neon_neg_q,\ > neon_reduc_add, neon_reduc_add_q,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_long, neon_sub, neon_sub_q,\ > neon_sub_long, neon_sub_widen, neon_logic,\ > neon_logic_q, neon_tst, neon_tst_q") > diff --git a/gcc/config/arm/cortex-a8-neon.md b/gcc/config/arm/cortex-a8-neon.md > index baa9180..652ba4e 100644 > --- a/gcc/config/arm/cortex-a8-neon.md > +++ b/gcc/config/arm/cortex-a8-neon.md > @@ -51,6 +51,7 @@ > (const_string "neon_int_2") > (eq_attr "type" "neon_neg, neon_neg_q,\ > neon_reduc_add, neon_reduc_add_q,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_long,\ > neon_add_long, neon_sub_long") > (const_string "neon_int_3") > diff --git a/gcc/config/arm/cortex-a9-neon.md b/gcc/config/arm/cortex-a9-neon.md > index 9e9827f..bb1e300 100644 > --- a/gcc/config/arm/cortex-a9-neon.md > +++ b/gcc/config/arm/cortex-a9-neon.md > @@ -52,6 +52,7 @@ > (const_string "neon_int_2") > (eq_attr "type" "neon_neg, neon_neg_q,\ > neon_reduc_add, neon_reduc_add_q,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_long,\ > neon_add_long, neon_sub_long") > (const_string "neon_int_3") > diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md > index 253f496..ce1b6bc 100644 > --- a/gcc/config/arm/types.md > +++ b/gcc/config/arm/types.md > @@ -274,6 +274,8 @@ > ; neon_reduc_add_long > ; neon_reduc_add_acc > ; neon_reduc_add_acc_q > +; neon_pairwise_add > +; neon_pairwise_add_q > ; neon_reduc_minmax > ; neon_reduc_minmax_q > ; neon_logic > @@ -788,6 +790,8 @@ > neon_reduc_add_long,\ > neon_reduc_add_acc,\ > neon_reduc_add_acc_q,\ > + neon_pairwise_add,\ > + neon_pairwise_add_q,\ > neon_reduc_minmax,\ > neon_reduc_minmax_q,\ > neon_logic,\ > @@ -1116,6 +1120,7 @@ > neon_compare_q, neon_compare_zero, neon_compare_zero_q,\ > neon_arith_acc, neon_arith_acc_q, neon_reduc_add,\ > neon_reduc_add_q, neon_reduc_add_long, neon_reduc_add_acc,\ > + neon_pairwise_add, neon_pairwise_add_q,\ > neon_reduc_add_acc_q, neon_reduc_minmax, neon_reduc_minmax_q,\ > neon_logic, neon_logic_q, neon_tst, neon_tst_q,\ > neon_shift_imm, neon_shift_imm_q, neon_shift_imm_narrow_q,\ > diff --git a/gcc/config/arm/xgene1.md b/gcc/config/arm/xgene1.md > index 34a13f4..1f68305 100644 > --- a/gcc/config/arm/xgene1.md > +++ b/gcc/config/arm/xgene1.md > @@ -288,6 +288,8 @@ > neon_arith_acc_q,\ > neon_reduc_add,\ > neon_reduc_add_q,\ > + neon_pairwise_add,\ > + neon_pairwise_add_q,\ > neon_add_halve,\ > neon_add_halve_q,\ > neon_sub_halve,\ --- a/gcc/config/arm/cortex-a9-neon.md +++ b/gcc/config/arm/cortex-a9-neon.md @@ -52,6 +52,7 @@ (const_string "neon_int_2") (eq_attr "type" "neon_neg, neon_neg_q,\ neon_reduc_add, neon_reduc_add_q,\ + neon_pairwise_add, neon_pairwise_add_q,\ neon_reduc_add_long,\ neon_add_long, neon_sub_long") (const_string "neon_int_3")