From patchwork Wed Jul 26 13:46:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 793923 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=gcc.gnu.org (client-ip=209.132.180.131; helo=sourceware.org; envelope-from=gcc-patches-return-459015-incoming=patchwork.ozlabs.org@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.b="sPSabUiC"; dkim-atps=neutral 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 3xHbxP67sjz9s78 for ; Wed, 26 Jul 2017 23:46:30 +1000 (AEST) DomainKey-Signature: a=rsa-sha1; c=nofws; d=gcc.gnu.org; h=list-id :list-unsubscribe:list-archive:list-post:list-help:sender:from :to:cc:subject:date:message-id:content-type :content-transfer-encoding:mime-version; q=dns; s=default; b=uT8 G8SMGm0QQ8etvB8wdJbydEBHe5MV2fuasSUqGQRFP/XvM3XmdU3K/7n2TBmVNnA1 GOQ5KGbPcEvDNjojaN6PEhXHoDR09fR2JU80SldUGGEhn8HVyzxJ41os1IL4BOBy epJHVmguMlh615JITykuW0OJicgod9U0DN2ji5gA= 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:from :to:cc:subject:date:message-id:content-type :content-transfer-encoding:mime-version; s=default; bh=AYTArrFXC uH1BmzkTdbgoP7faxI=; b=sPSabUiC8WjvdHFQ3TbrwbUjQSDo1GUYwr2ONNa4a EyiGpRqpI5cvKRIFDkhxa05qNzSb+WYY+5s4Xt9PvMh/uy4l9iZe3gK7NEHZfgeD kPsfsDoumaEjGZgCQmgKMIdg0fU73bD1xz3CQIvg31Df/CCUQAvoHD07rPQGq0Ho Hk= Received: (qmail 79609 invoked by alias); 26 Jul 2017 13:46:21 -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 78267 invoked by uid 89); 26 Jul 2017 13:46:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.7 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 autolearn=ham version=3.3.2 spammy=mm, rnr, m, m X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0076.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.76) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 26 Jul 2017 13:46:18 +0000 Received: from DB6PR0801MB2053.eurprd08.prod.outlook.com (10.168.86.22) by AM4PR08MB2658.eurprd08.prod.outlook.com (10.171.190.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.10; Wed, 26 Jul 2017 13:46:14 +0000 Received: from DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::cd9d:80f1:82d8:5181]) by DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::cd9d:80f1:82d8:5181%18]) with mapi id 15.01.1282.020; Wed, 26 Jul 2017 13:46:14 +0000 From: Wilco Dijkstra To: GCC Patches , James Greenhalgh CC: nd Subject: [PATCH][AArch64] Remove '*' from movsi/di/ti patterns Date: Wed, 26 Jul 2017 13:46:14 +0000 Message-ID: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco.Dijkstra@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM4PR08MB2658; 7:q0yTgjilf4D9TAR2+OHfJ8GmoYpjiwf7YqtaoUfjno31daGlSh0DfeL2k9VUVYihnpXc8vCiqh2CTbI6vBeRjI3MjOXLN3bR5Koz5j2813rFT2YBUG2n1ou+ZElbyUqbqX2zZv6RbEZW1b9jtECuqghyUQNX9Y3a6o6HjWZk8zR8fdeP9o/pSKB6LMO3YDx1uNBVNDmhivvWEDIGe0MEogaXKLvcKJRIpQ98Dpnvr38XWzHVcbvmdUeKMe+i7lYThjyKrW2FGRK2qvU0ep0OhIp/UYR7eAcACpWIRa9IZYRwTKpGFxsEu3pvXzK41ZGOtDfZO528bbJype3m6MzNyh3yJto5QAbe2Qk/QLoK6u2i+X6kgs5nMvLJ3tBRG2644Tte9EyvaQYhw0U/Wk1U9KnG5YBYEPH3b9BnbN7a6OhwPKsDItEnLp9iQZP/2cRRfOozR10OeQyMi2aytz6gfk9dvSw0AKIQjKVwMwuP8xlYBxQ43VWteCcQVk/2mPy4Yec5FMxNknWGHXZNNw5/r0WD7m/jWwiyWCj3PJ4a3rjBBSgdOJZFTU4ZEfdneZA9poifKg9oEEbPssLQAUTaJ+soklSRgK0MYm1DXleU12dooxxZyEi3M8kfTSagxeedSlt7Otwugq/jWicrdG+31ZmeSeqbtL4UjoGaOiM6TfB3QIVtTqGSgjPb3s+8JIe/dLdvXdj+rTIvJ8aFHkiVu6lRKigA35Yw46T4SnlC9ZzKXQTNGAgLT2pG9mMA0VUHgvNuAxewn8A5mVpH19fqSbiNypWs0CkX/9LPyCS06aI= x-ms-office365-filtering-correlation-id: ba6561ef-528d-48bc-dfc2-08d4d42caf04 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(48565401081)(2017052603031)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AM4PR08MB2658; x-ms-traffictypediagnostic: AM4PR08MB2658: nodisclaimer: True x-exchange-antispam-report-test: UriScan:(180628864354917); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(3002001)(6055026)(6041248)(20161123558100)(20161123555025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123560025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AM4PR08MB2658; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AM4PR08MB2658; x-forefront-prvs: 038002787A x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39450400003)(39400400002)(39410400002)(39850400002)(39860400002)(39840400002)(189002)(54534003)(199003)(377424004)(54356999)(74316002)(101416001)(50986999)(5660300001)(97736004)(6636002)(7696004)(6506006)(2906002)(33656002)(3660700001)(81166006)(105586002)(478600001)(8676002)(106356001)(81156014)(2900100001)(189998001)(99286003)(7736002)(38730400002)(3280700002)(9686003)(5250100002)(86362001)(53936002)(8936002)(6116002)(6436002)(14454004)(3846002)(102836003)(55016002)(68736007)(4326008)(66066001)(72206003)(305945005)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR08MB2658; H:DB6PR0801MB2053.eurprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jul 2017 13:46:14.4501 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2658 Remove the remaining uses of '*' from the movsi/di/ti patterns. Using '*' in alternatives is typically incorrect at it tells the register allocator to ignore those alternatives. So remove these from all the integer move patterns. This removes unnecessary int to float moves, for example gcc.target/aarch64/pr62178.c no longer generates a redundant fmov since the w = m variant is now allowed. Passes regress & bootstrap, OK for commit? ChangeLog: 2017-07-26 Wilco Dijkstra * gcc/config/aarch64/aarch64.md (movsi_aarch64): Remove all '*'. (movdi_aarch64): Likewise. (movti_aarch64): Likewise. diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 225b64e1daf1663d28bbe8c2d30ba373b4722176..97c5fb08a2fd5d2eee556e1fc20dbf65b089d84b 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -920,8 +920,8 @@ (define_expand "mov" ) (define_insn_and_split "*movsi_aarch64" - [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r ,*w,r,*w") - (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w"))] + [(set (match_operand:SI 0 "nonimmediate_operand" "=r,k,r,r,r,r,w,m, m, r, r, w,r,w") + (match_operand:SI 1 "aarch64_mov_operand" " r,r,k,M,n,m,m,rZ,w,Usa,Ush,rZ,w,w"))] "(register_operand (operands[0], SImode) || aarch64_reg_or_zero (operands[1], SImode))" "@ @@ -952,8 +952,8 @@ (define_insn_and_split "*movsi_aarch64" ) (define_insn_and_split "*movdi_aarch64" - [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,*w,m, m,r,r, *w,r,*w,w") - (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,n,m, m,rZ,*w,Usa,Ush,rZ,w,*w,Dd"))] + [(set (match_operand:DI 0 "nonimmediate_operand" "=r,k,r,r,r,r,w, m,m, r, r, w,r,w,w") + (match_operand:DI 1 "aarch64_mov_operand" " r,r,k,N,n,m,m,rZ,w,Usa,Ush,rZ,w,w,Dd"))] "(register_operand (operands[0], DImode) || aarch64_reg_or_zero (operands[1], DImode))" "@ @@ -1008,9 +1008,9 @@ (define_expand "movti" (define_insn "*movti_aarch64" [(set (match_operand:TI 0 - "nonimmediate_operand" "=r, *w,r ,*w,r,m,m,*w,m") + "nonimmediate_operand" "=r, w,r,w,r,m,m,w,m") (match_operand:TI 1 - "aarch64_movti_operand" " rn,r ,*w,*w,m,r,Z, m,*w"))] + "aarch64_movti_operand" " rn,r,w,w,m,r,Z,m,w"))] "(register_operand (operands[0], TImode) || aarch64_reg_or_zero (operands[1], TImode))" "@