From patchwork Wed Sep 25 07:16:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dragan Mladjenovic X-Patchwork-Id: 1167025 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-509537-incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=wavecomp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.b="kJlg1DFM"; dkim=pass (1024-bit key; unprotected) header.d=wavecomp.com header.i=@wavecomp.com header.b="USWK4k7p"; 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 46dTrR2hSlz9sCJ for ; Wed, 25 Sep 2019 17:16:37 +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=Cf+ mN1zGwPXEDGxW33zYyhmvO7uXNsa6h1cxj142sx3pR7o9FjKdQRrdYO92nTxH0H1 57NJCaPGGBKKbXIRPpDk7tTBX0mOQKbhpVjjrGimXXxgc6hD4Nj9WZ5XX7fVv2ET YCWDCQsQ7B5nk+jiCoFD0a1Czakl+pbaYFap6irU= 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=WlGH88N0i tLiszjHIncVbPGmdqs=; b=kJlg1DFMeTOXplbnO/v0Vf2MYf/fMrph78MXOHBtZ zMuAbHAnrD0D5lqlzlpy/XcDVzfyk42B8NtcQMG2/s5xRPb+4KhmedXYoH54cGdh 0AOIWZbzixkg4T9MO76h2epnhsPuPEifjDMHJKb1XBvsk4frGb6G0Ji9/yYBWeSR QQ= Received: (qmail 4626 invoked by alias); 25 Sep 2019 07:16:30 -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 3835 invoked by uid 89); 25 Sep 2019 07:16:29 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-15.7 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, RCVD_IN_SORBS_WEB, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy=crude, mips.c, mipsc, UD:mips.c X-HELO: NAM04-BN3-obe.outbound.protection.outlook.com Received: from mail-eopbgr680137.outbound.protection.outlook.com (HELO NAM04-BN3-obe.outbound.protection.outlook.com) (40.107.68.137) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 25 Sep 2019 07:16:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VKGnuHT7zr6zLYwcM+8/TRZc6JCMwXQeXlFMpyvvzv1LsukDcfmLT8L3mg4YKb53cJCKEt+YjW3HOJcK7qWEDA+iESSgeqKQOxvrnfoLsD1Fwrk5w1dB4ZK0uAFd3xeX1KktQY9FKr8MrMlGf7/n5nGi6ZNz2OvZqqM7at6Kmkcarn7XaQs6Ud6x8rVgkh1rFFkOsjq3ZBtTTG17LXrZc14QxG2df3ldRSQOZbDDKZispTD/s/FKjE33g9l4BpN140nsW5Eh2MXIPa+d18qaDZn3oc9tOayFXCIM1M0RYmleHNLa5j3ObxLCR3gIDiGRigo8QbJu2JGUg2l1sZCiHg== 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=GYX5QctbN5W7CmQwEsID5ab9JI6EQxNmd5tNtfav+l4=; b=F7Bupm+tJp2HFqewtTg7N5WUs3c2zuL6ADNaz465t8Kynj/adiFQwO33s8KJX5HF2r7Gh75r4fzTAOScL316esWCUR4PYD+dllFBivbDti0e0UJRfF05Mqo6kenMDekFn73wheS529J/kPX6CnFn6TQH2dS4zyfQ5nOT0Hdh5s3PJVA7sqLKq36NTchbQ+sR6cZu4/4zhXuCj2XtcQlonat2IAP4/bIsfSzG4IxmyDq6/l8BIfegcKCrWiRWt3uETcQ0g3RkaDu77/H47Dv+DkUE2yqz29bNzSHdN9V5nd/smp3d6fkYN/8WykxgTo2J+d+obP5EaaUr6Uws59OsAQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=wavecomp.com; dmarc=pass action=none header.from=wavecomp.com; dkim=pass header.d=wavecomp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wavecomp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GYX5QctbN5W7CmQwEsID5ab9JI6EQxNmd5tNtfav+l4=; b=USWK4k7pPsr6RPdlQZrOr06rYrLLKhgfRPw0XrGy2Ull8xjaCHr8dVpXM3bHd/veFoE0DyEQWwhZNDXKqB3lo+39vdBIPlSqwbBa0tEZ29CnHSHxg2svaBt9tBXtOnUcVW/7lR9DgZqaBifXlw8nBwKBBlOnqenw1CN6a94PA98= Received: from CY4PR22MB0119.namprd22.prod.outlook.com (10.169.186.141) by CY4PR22MB0485.namprd22.prod.outlook.com (10.173.194.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.18; Wed, 25 Sep 2019 07:16:23 +0000 Received: from CY4PR22MB0119.namprd22.prod.outlook.com ([fe80::9541:caae:368c:4e9a]) by CY4PR22MB0119.namprd22.prod.outlook.com ([fe80::9541:caae:368c:4e9a%12]) with mapi id 15.20.2284.023; Wed, 25 Sep 2019 07:16:23 +0000 From: Dragan Mladjenovic To: "gcc-patches@gcc.gnu.org" CC: Dragan Mladjenovic , Jeff Law , Matthew Fortune Subject: [PATCH] [MIPS] Fix PR target/91769 Date: Wed, 25 Sep 2019 07:16:22 +0000 Message-ID: <1569395735-18881-1-git-send-email-dmladjenovic@wavecomp.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=dmladjenovic@wavecomp.com; x-ms-exchange-transport-forked: True x-ms-oob-tlc-oobclassifiers: OLM:6430; received-spf: None (protection.outlook.com: wavecomp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mzn4QeZ7a3qk5u3XY58IlDIVaxM/qrYHruYkZWDbO/c4CgjJ5oUGoO74WHk5gPhS+vhjtUZMf+p5OvAfCJtfha5EpDhbMliZShU8BRJAPB4= From: "Dragan Mladjenovic" This fixes the issue by checking that addr's base reg is not part of dest multiword reg instead just checking the first reg of dest. gcc/ChangeLog: 2019-09-25 Dragan Mladjenovic PR target/91769 * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p instead of REGNO equality check on addr.reg. gcc/testsuite/ChangeLog: 2019-09-25 Dragan Mladjenovic PR target/91769 * gcc.target/mips/pr91769.c: New test. --- Hi all, Is this OK for trunk? The test case is a bit crude, but I guess that is better than having none. On top of that, I would like to backport this along with r273174 onto gcc 9 branch. That should fix BZ91702 and BZ91474 reported against gcc 9.2. Tested on mips-mti-linux-gnu. Best regards, Dragan gcc/config/mips/mips.c | 2 +- gcc/testsuite/gcc.target/mips/pr91769.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.target/mips/pr91769.c diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c index c682ebd..aa527b4 100644 --- a/gcc/config/mips/mips.c +++ b/gcc/config/mips/mips.c @@ -4862,7 +4862,7 @@ mips_split_move (rtx dest, rtx src, enum mips_split_type split_type, rtx insn_) { rtx tmp = XEXP (src, 0); mips_classify_address (&addr, tmp, GET_MODE (tmp), true); - if (addr.reg && REGNO (addr.reg) != REGNO (dest)) + if (addr.reg && !reg_overlap_mentioned_p (dest, addr.reg)) validate_change (next, &SET_SRC (set), src, false); } else diff --git a/gcc/testsuite/gcc.target/mips/pr91769.c b/gcc/testsuite/gcc.target/mips/pr91769.c new file mode 100644 index 0000000..b856183 --- /dev/null +++ b/gcc/testsuite/gcc.target/mips/pr91769.c @@ -0,0 +1,19 @@ +/* PR target/91769 */ +/* { dg-do compile } */ +/* { dg-skip-if "naming registers makes this a code quality test" { *-*-* } { "-O0" "-g" } { "" } } */ +/* { dg-options "-EL -mgp32 -mhard-float" } */ + +NOCOMPRESSION double +foo (void) +{ + register double* pf __asm__ ("$a1"); + __asm__ __volatile__ ("":"=r"(pf)); + double f = *pf; + + if (f != f) + f = -f; + return f; +} + +/* { dg-final { scan-assembler-not "lw\t\\\$4,0\\(\\\$5\\)\n\tlw\t\\\$5,4\\(\\\$5\\)\n\tldc1\t\\\$.*,0\\(\\\$5\\)" } } */ +/* { dg-final { scan-assembler "lw\t\\\$4,0\\(\\\$5\\)\n\tlw\t\\\$5,4\\(\\\$5\\)\n\tmtc1\t\\\$4,\\\$.*\n\tmthc1\t\\\$5,\\\$.*" } } */