From patchwork Tue Aug 15 16:27:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 801673 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-460395-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="KQHFX/DQ"; 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 3xWycn1ds3z9sPm for ; Wed, 16 Aug 2017 02:30:01 +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:references:in-reply-to :content-type:content-transfer-encoding:mime-version; q=dns; s= default; b=yZJCbcZ6UErFke18mqub5x1TdGbGkD4mvT2JFR0+C/g7/3iKCSXpD ArFbvWGxu7p/yIfE6GuR+DqsW1zRrnYLe3m/KA+sjYLxq/5nUuQV9E2/gXwMymow HoVtv00C/RaHEI63lvlpUSsCQJ+aBiKOlIgJhoak9QSmGfXRBoFhtw= 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:references:in-reply-to :content-type:content-transfer-encoding:mime-version; s=default; bh=laS92lgjgKHSZ8I84iPdJWoZqn0=; b=KQHFX/DQtmtxFWnFK7hY+giqShw8 ps+VbFOXP0sn7A+51gESQtwOV/rj6EtEi/Whw9f9DEhA+wWsmYFboEhWN3Jt957a Bfm/8hdROhBqvNCArWAUuKdIZY1xf1JgL0xihqg56tgpb+Gdi0dKGugyNFs0Birg 5auFV9D0wynER/Y= Received: (qmail 127665 invoked by alias); 15 Aug 2017 16:27:27 -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 127353 invoked by uid 89); 15 Aug 2017 16:27:21 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.0 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 X-HELO: EUR02-AM5-obe.outbound.protection.outlook.com Received: from mail-eopbgr00051.outbound.protection.outlook.com (HELO EUR02-AM5-obe.outbound.protection.outlook.com) (40.107.0.51) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Aug 2017 16:27:19 +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_256_CBC_SHA384_P256) id 15.1.1341.21; Tue, 15 Aug 2017 16:27:16 +0000 Received: from DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::2d78:6ac0:142:cc9a]) by DB6PR0801MB2053.eurprd08.prod.outlook.com ([fe80::2d78:6ac0:142:cc9a%18]) with mapi id 15.01.1341.020; Tue, 15 Aug 2017 16:27:16 +0000 From: Wilco Dijkstra To: GCC Patches , James Greenhalgh CC: nd Subject: Re: [PATCH][AArch64] Remove '*' from movsi/di/ti patterns Date: Tue, 15 Aug 2017 16:27:16 +0000 Message-ID: References: , In-Reply-To: x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM4PR08MB2658; 6:Bvrit+Dx5G2/Ne+Xfw7CrBf815o8stWquV3JaawiPOetB9Zn0gSx8SNDvkBkX2RuNzDHSkVuSrhaVfme6UuB9D5Q85L7heCBdMtK5onQNqjped8aWXLzaSbV8oOuJttdhHlObTo+wnpGllRlWyor6xOOqcwclpryDaTvsSS5J3Ac9ofqXw1APvN1kzZerJAmYU1oVrzFZtKZGipiMlam+rF1FlZvUJWQ58JLCDHUf7xfQhuIfgyVNnkvYVu3ha/j284qeZ7oQ2abiB4JD3NwEJoF2HW0lBnSfOagI+FIhvwXV4P1BeRC8oMJVgtboXg9TLnSY1k0/uzYQfcmKC+GPQ==; 5:AImEvImTJxNTUenBjyeZrkX/SMuUWFxGNj0UzfAPLZFtB/msDh+X3N03dJBKB28iY2/kH3n7xFowtjM15H3a2kZwCpmjOwnCac8Vzf1GMkB8oK+n1jB2UzVRq05n9YKQTQQERSIKo06pyMQj8ZDJEA==; 24:ZmLQjMU/Rxr+N/1zIJldszLIAPojL4j3D6TouHVUAAi0CpY/St+xMaTaVeHz6BeghAWavbY6v2TddfV2Bl5FwJO1yiW2dadPXljU/PudIBA=; 7:be9/4MuI4/24k65uHEJOBVfNb6kVpwJxxdjUlmHZ2x3cEQaF1TT7SEtn4fj4YMBgihOH1yGSJ9a9S2ldR+/CDEfXM73cNIWOCkjVuw9lzrPzsOMi7w+zN+xYC7hLHvTR5IEDJSwQyl1r2OKbAcxuwLEcS6dBPk9drjb2gHQGcO/tTl2HNYfICjyslEL01zF7rtjF0l98JYx/kXdjudnH30GzQpR/5XpYPZ0SpHPrKF0= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: 7187a7ee-0af8-4809-ec92-08d4e3fa7e73 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(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)(93006095)(93001095)(100000703101)(100105400095)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6072148)(201708071742011)(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: 04004D94E2 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39860400002)(377424004)(189002)(199003)(54534003)(6116002)(2900100001)(229853002)(102836003)(3846002)(53546010)(68736007)(6436002)(8936002)(55016002)(25786009)(4326008)(6246003)(97736004)(14454004)(2950100002)(54356999)(72206003)(6636002)(101416001)(6506006)(5250100002)(76176999)(50986999)(5660300001)(86362001)(99286003)(66066001)(2906002)(33656002)(189998001)(305945005)(3660700001)(7696004)(81166006)(74316002)(3280700002)(53936002)(7736002)(105586002)(81156014)(478600001)(106356001)(9686003)(8676002); 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) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco.Dijkstra@arm.com; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Aug 2017 16:27:16.7844 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2658 ping From: Wilco Dijkstra Sent: 26 July 2017 14:46 To: GCC Patches; James Greenhalgh Cc: nd Subject: [PATCH][AArch64] Remove '*' from movsi/di/ti patterns     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))"    "@