From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70058.outbound.protection.outlook.com [40.107.7.58]) by sourceware.org (Postfix) with ESMTPS id 295483858C51 for ; Mon, 20 Jun 2022 08:49:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 295483858C51 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=gMhymryd/++jW8cgtfKWJcqg0QIMi/8iJVp4DzkuIhlRDAjcSEQSk7MSC81OzNV8I4gmrPnYB8QgLfB2a1xT+A7ssJcwy5fVRBbBlHTbCegPeqYz9rb/6+Si65pELHe4uHGM+IHegjesQn7GgCX3whWCTHOZr0abOtpg0n0grRR4750W+00vSdxCanWmvwSgJy2sG2zXJu5BQGwSRRbHsXNZOXsoCFjyh3SB7C6leHFgLsNvlUdKs5IS6t4GPeKohhDtwToaGdctH3EGevYwFoz/5Yn1PSRUek4KoqyHvkM83TS44fL8mtegu4leYDx2Ul71Lu96iSQgUi7cbcPhWw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qqCXxKEU/7M5NetjbH2NuTIrCh5mMB9yC4/OoMoVpV4=; b=Oe6ql0mQYQXZpctgYEZtusfO2ne1DueJHlVpDWrjrN4BXffP4HmuB0lozqMRMv5Xstlv1psBRRavAIv8c1DclufnyiZVFYSOyeSyUXno8YHS1mGWRRtSJUppjqs6QCXBEIcrekhyDQ32qC/C45cwM/OWa1SuYTcQxS4BvjGuIIWt8lheQwM8kJGzgqWkYqmuNHLNKU7V/oUG5DVnQbYWQIV58aTJxqzmOn1BZ7RplEMhnGSOCz9/RclFd0Zl+zZzbHPAMsVbt+BaIS0R0oIn8SkfvVYbh8SM8p4eTGaX66yXeH782qUdKOld/KMv+zxZjDMtY1IG2JMH2EVaxIzd5Q== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from AM6PR04CA0028.eurprd04.prod.outlook.com (2603:10a6:20b:92::41) by AM0PR08MB5153.eurprd08.prod.outlook.com (2603:10a6:208:163::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14; Mon, 20 Jun 2022 08:49:35 +0000 Received: from VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:92:cafe::8) by AM6PR04CA0028.outlook.office365.com (2603:10a6:20b:92::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.21 via Frontend Transport; Mon, 20 Jun 2022 08:49:35 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT062.mail.protection.outlook.com (10.152.18.252) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.14 via Frontend Transport; Mon, 20 Jun 2022 08:49:35 +0000 Received: ("Tessian outbound ff2e13d26e0f:v120"); Mon, 20 Jun 2022 08:49:35 +0000 X-CR-MTA-TID: 64aa7808 Received: from 111e5e266978.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C69CF18A-FF59-48A0-BBEC-D149766083EE.1; Mon, 20 Jun 2022 08:49:34 +0000 Received: from EUR03-VE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 111e5e266978.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 20 Jun 2022 08:49:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ug/gr351AmMHBnoCOGpf9wu5plTZWl9Z6E6KfgzFWlSBwzKIRh5jBlGT89aiOItx1SqVapaANPHcOGZrjhumgE0QGXd1pAk8VF4CcZdoQmt8FGqrPlkDCRUOaFDt8lAHAMjeQQVevurOI98pJ6KaZm32KWavATlPuEHs8sElCVxsW7dRuftgMu93ps8bdtnmXUANqRMddovSFJiQ34vtCzk2tAav6RuCZevmfqclcMTs7X2FctLkNb/4K/OLkW1nd5eFblwxAsvEP+y/vzROTpEjk3KkgaHbctRdocMzel7/LKgMQn9iM4jbnYzuUOto6kPNqIWQJXeTgn8odGiQhg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qqCXxKEU/7M5NetjbH2NuTIrCh5mMB9yC4/OoMoVpV4=; b=KBh7fT2Abh36gNnzdSn8gxHynASOPqq4TVA9IcBOEjZ362zL9AVVmohfJcGE7FIUxZ8VsF2l6KXU5lrkRPEYM18AcEbq+cNSiY2MD9Dc24P9lWpmXaGu6cla79NEaewi2/EYba/2m2BAvLbbOBmc0stwGRT2NKZufZm1BVf5LIXATxMx6uhCe3pcgpRBDek06EzEj4XEYgJKQwLwdP1Nokb34asOxjmjBbYSVfLZHCjINT9cyZJSxlU01mhrKfGo94xvHwUaCYlnfbLDFN49vf5N7Iw9PWbrYcFyGAfwSMxsribDXW+KXSHFGepNmRMd+qj5BpXeCfmsk3qhm+JFHQ== 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 VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AM4PR08MB2850.eurprd08.prod.outlook.com (2603:10a6:205:3::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5353.16; Mon, 20 Jun 2022 08:49:25 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::54e5:594b:e5fd:a9b4]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::54e5:594b:e5fd:a9b4%8]) with mapi id 15.20.5353.022; Mon, 20 Jun 2022 08:49:25 +0000 From: Tamar Christina To: Richard Sandiford , Richard Biener via Gcc-patches CC: Richard Biener , Richard Guenther , nd Subject: RE: [PATCH 1/2]middle-end: Simplify subtract where both arguments are being bitwise inverted. Thread-Topic: [PATCH 1/2]middle-end: Simplify subtract where both arguments are being bitwise inverted. Thread-Index: AQHYgXF0IqBWBNRbn0O/nAP3mfdDZK1X9ZCAgAAEVyeAAAgwkA== Date: Mon, 20 Jun 2022 08:49:24 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: E889A1F23F0C01479D8EECC5C8B2EDFC.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: c8f935c5-961c-4d33-1d27-08da5299cd6c x-ms-traffictypediagnostic: AM4PR08MB2850:EE_|VE1EUR03FT062:EE_|AM0PR08MB5153:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: wIw+lMbYYASUY+MUYg2CGZ/NREzTyXtSMClFonVtDBvv1jLJy7Ltb5ritY1VrGXUwSGOtH/hRfwaKrKxQSPVVsGD7dxh4BBkp802qGW0Juy01cfQhp3f+Su5WvxzhmL46FygzjQWTcgP/oUbg/g84R7YLdkf85AR656UweYOzKSkATAq5Kj76QfvD1W6Vny/ao/eBBJQ6/i4aB3yAsVy8B3f9vgYHc/f+aDzRVfTsjB8OjDQxi3tDXdVFhu+4hosAoakDSZ6bISaNANG090nkSV2AMc36uyxylqo9rjWOM6WFGSFTVRz0KXGjYCIm6IAiJ480evhWreRrJ+ISx35FQ1Yi5lEcdUzQd1aUTKtQvgbowHKtZfXEhcipLrzv9pbEHoEB3Q9//MvJGlFGOEDOl7cy17m2M6c01QsrulC9EBvL07PMm8BLeGrQ9ckJprDhi5ncbssnatY//MaC+Fl2NXDoj9HfoHLxykJkbEP1M9IbJatlJvqr3MTtB3Nvwx7n6eUfmlY3drhWCJyl8F4t7LXnrbmWliAYrkK7Z++12oB7Xv8WvFAWtM0EWeOgzOHAik0BPzPexMm2CXuIwAOSCyzEhc6+DjLML9PM/iyUyv2U9uCfO70ZponOic4PKnSFCmTv6Kw3Ru8rst+AwDVv3kzZ0iMK5UHLWcrMXW7vO5gvbUEAULDUYhaJKIhv7jw/NBrl1OKIXKb/x2/Tf6lW6mVq/iOEueBzWNZG36Ebj8XVcIBf1iz4ysBipRMTrSdUwYnFRDNP0hPjy2SN55ajGUomA55O8yW82R+Mh8gJvY= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(376002)(39860400002)(136003)(366004)(38100700002)(9686003)(33656002)(26005)(316002)(7696005)(6506007)(2906002)(52536014)(41300700001)(55016003)(5660300002)(53546011)(8936002)(66946007)(478600001)(76116006)(66556008)(66446008)(66476007)(4326008)(83380400001)(38070700005)(8676002)(71200400001)(64756008)(186003)(86362001)(122000001)(110136005)(84970400001)(54906003); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR08MB2850 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 83573776-b169-456a-0f4f-08da5299c72c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GwkxG9cPnvt2Tu8mk4fw5pF25koRjAPefX71kl2ux4CISFJXIUZQ0mIehGtCelGdCBPj0Fxm6j5IwRvQ/0l941DMNOkkyGwviVZaxN1SdurInHeNZT5OOpkMGH5LsxDAtT071xMe54fDXebuixfUWjGBr7zCXElVqD/tYGglcqKiU0n1TicDGlUx1JQdCViCBzZS6XPsOPQh0lXXTuDXuyrjrnXldZHwKXWYuP/wnYckWQpX/WrXQYIQA3lJ7S4tF5rEjjda2jeNKoBlCVVLC97j80h9VNLlViL77B0dEItG+YKpqa8SmAVFxSwGm7ZLluTFsF5J8i2ipjsIgVd7e38OclomwdGA8hHbzEx123+fZut6PWJ1xeOf0A3KmGRj2266eg+xKqFtawVwfhfrOMbYOEGhh9owaTe7kpZt5DqGta1ZtfPk+XxAcIEFdwnG813+e0gwpdbrtS489uboJEP49op7c+w9rDOxxAPYYC2E3R2/poBrF2njJ98Q0NyPa7HCfQtbm4vxLSbEbaGBNehNMX52YoJdvO0SRtFE8l/kPTbNz8WTXQolGMwAAPj/DOlhakW/AS3aQCIPTJnBCwKDRw4EbPVC1lQ4TAMxei7OJlmyTE9YRY+Yj+TTav3JL7+O+OxmiXPzLdBaGzezRDQLytudz5U272aMBm4Cf+8ttGdZnnAy8P1AtcfuLE8N23mDUKsD+Wly9AvG899jwKMOBxSE+WiqDT4j7HejxhqKN32XXpxCODk7ocWHMYwbb/4x9sQRvJfUHjaDxqAsIQ== 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:(13230016)(4636009)(46966006)(36840700001)(40470700004)(83380400001)(4326008)(70586007)(70206006)(356005)(498600001)(8676002)(84970400001)(110136005)(36860700001)(54906003)(316002)(186003)(86362001)(33656002)(53546011)(7696005)(40460700003)(82310400005)(81166007)(47076005)(336012)(9686003)(26005)(6506007)(5660300002)(52536014)(2906002)(8936002)(55016003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2022 08:49:35.4828 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c8f935c5-961c-4d33-1d27-08da5299cd6c 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: VE1EUR03FT062.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5153 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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-List-Received-Date: Mon, 20 Jun 2022 08:49:42 -0000 > -----Original Message----- > From: Richard Sandiford > Sent: Monday, June 20, 2022 9:19 AM > To: Richard Biener via Gcc-patches > Cc: Tamar Christina ; Richard Biener > ; Richard Guenther ; > nd > Subject: Re: [PATCH 1/2]middle-end: Simplify subtract where both > arguments are being bitwise inverted. >=20 > Richard Biener via Gcc-patches writes: > > On Thu, Jun 16, 2022 at 1:10 PM Tamar Christina via Gcc-patches > > wrote: > >> > >> Hi All, > >> > >> This adds a match.pd rule that drops the bitwwise nots when both > >> arguments to a subtract is inverted. i.e. for: > >> > >> float g(float a, float b) > >> { > >> return ~(int)a - ~(int)b; > >> } > >> > >> we instead generate > >> > >> float g(float a, float b) > >> { > >> return (int)a - (int)b; > >> } > >> > >> We already do a limited version of this from the fold_binary fold > >> functions but this makes a more general version in match.pd that appli= es > more often. > >> > >> Bootstrapped Regtested on aarch64-none-linux-gnu and no issues. > >> > >> Ok for master? > >> > >> Thanks, > >> Tamar > >> > >> gcc/ChangeLog: > >> > >> * match.pd: New bit_not rule. > >> > >> gcc/testsuite/ChangeLog: > >> > >> * gcc.dg/subnot.c: New test. > >> > >> --- inline copy of patch -- > >> diff --git a/gcc/match.pd b/gcc/match.pd index > >> > a59b6778f661cf9121dd3503f43472871e4da445..51b0a1b562409af535e53828a1 > 0 > >> c30b8a3e1ae2e 100644 > >> --- a/gcc/match.pd > >> +++ b/gcc/match.pd > >> @@ -1258,6 +1258,10 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) > >> (simplify > >> (bit_not (plus:c (bit_not @0) @1)) > >> (minus @0 @1)) > >> +/* (~X - ~Y) -> X - Y. */ > >> +(simplify > >> + (minus (bit_not @0) (bit_not @1)) > >> + (minus @0 @1)) > > > > It doesn't seem correct. > > > > (gdb) p/x ~-1 - ~0x80000000 > > $3 =3D 0x80000001 > > (gdb) p/x -1 - 0x80000000 > > $4 =3D 0x7fffffff > > > > where I was looking for a case exposing undefined integer overflow. >=20 > Yeah, shouldn't it be folding to (minus @1 @0) instead? >=20 > ~X =3D (-X - 1) > -Y =3D (-Y - 1) >=20 > so: >=20 > ~X - ~Y =3D (-X - 1) - (-Y - 1) > =3D -X - 1 + Y + 1 > =3D Y - X > You're right, sorry, I should have paid more attention when I wrote the pat= ch. =20 Tamar > Richard >=20 >=20 > > Richard. > > > >> > >> /* ~(X - Y) -> ~X + Y. */ > >> (simplify > >> diff --git a/gcc/testsuite/gcc.dg/subnot.c > >> b/gcc/testsuite/gcc.dg/subnot.c new file mode 100644 index > >> > 0000000000000000000000000000000000000000..d621bacd27bd3d19a010e4c9f > 83 > >> 1aa77d28bd02d > >> --- /dev/null > >> +++ b/gcc/testsuite/gcc.dg/subnot.c > >> @@ -0,0 +1,9 @@ > >> +/* { dg-do compile } */ > >> +/* { dg-options "-O -fdump-tree-optimized" } */ > >> + > >> +float g(float a, float b) > >> +{ > >> + return ~(int)a - ~(int)b; > >> +} > >> + > >> +/* { dg-final { scan-tree-dump-not "~" "optimized" } } */ > >> > >> > >> > >> > >> --