From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from na01-obe.outbound.protection.outlook.com (mail-cusazlp17010007.outbound.protection.outlook.com [40.93.13.7]) by sourceware.org (Postfix) with ESMTPS id B94D8385781D for ; Tue, 30 Nov 2021 23:08:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B94D8385781D ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L7ysZ6mrKLubJ9WfepnTOjgN7+qRW1mSANAlZyfm6FIXq4nwUrQXnsDtSYW+Qts5TlSkpevtpgOc21b30b3VFqZrQuGIUHTSS/n9POEKiSEKL+nnijAUZW10XJSi9+ss5gdADlgghlwqFV9KNx5YjamJkiK1UDfgru36sACnjVTBHj+k8Xn+6LnfxjddKuu3dO7j5VoxtYU8bhOArziQYsY13CpZbqAGzozvoy9f0DqbzGaEIa6mL7UBopQMFEcEwGvPM+uxe+EOer6aWafgXNMaHSVZN3oeUykQatuRSmtg19LZ2EdcNXjnYxaLQ+9bjoHBGlgUJCIK+BN2AmEpFw== 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=zldOUr4iLTXUirM2jh0dqcTL2VvS5M6/DS3o2fiwerU=; b=VN9Vjxkx2Zc+8gkFLFa9wvvf2suFVDKM8W/4CeWCy+0w1e2ftQVgts60g8AcSEJeWddiZQ+dW4cvq7x/dQpGprwwk+Lo8UAtWqeNfxgq0uvM2pvZtUEbG60WH6BbUDZWOWkcNgH2kQB2pa/bGo8f4cBkmrcsbL2R0Z0F9S/G5dd16b0dqOC/yRS91wgPgP6bba1TrWT8ZU76k9xVNb6GWvZ997bd2Gcqam2nLBurNbsjFTbBEXRR+kQYmhyFZ0oAkWiaEV8IeNYkn8cbz1DuRp7WcyumU/aO2GenYjhLLeD3P6mpaVEhHsJCqqnkhZMeEKd3rCaiQ8cOAeJVy9jkUw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none Received: from BN6PR21MB0162.namprd21.prod.outlook.com (2603:10b6:404:94::8) by BN7PR21MB1603.namprd21.prod.outlook.com (2603:10b6:406:b9::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.4; Tue, 30 Nov 2021 23:08:47 +0000 Received: from BN6PR21MB0162.namprd21.prod.outlook.com ([fe80::c5fd:4e4:96cc:b150]) by BN6PR21MB0162.namprd21.prod.outlook.com ([fe80::c5fd:4e4:96cc:b150%11]) with mapi id 15.20.4778.001; Tue, 30 Nov 2021 23:08:46 +0000 From: Navid Rahimi To: Andrew Pinski CC: Navid Rahimi via Gcc-patches Subject: Re: [EXTERNAL] Re: [PATCH] tree-optimization/98956 Optimizing out boolean left shift Thread-Topic: [EXTERNAL] Re: [PATCH] tree-optimization/98956 Optimizing out boolean left shift Thread-Index: AQHX5b3deGA957tQL0666jm+hsv6aKwcoMAAgAALeQ0= Date: Tue, 30 Nov 2021 23:08:46 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-11-30T23:08:45.285Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: fc31b78b-b632-4c72-2377-08d9b4565cb3 x-ms-traffictypediagnostic: BN7PR21MB1603:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wga5wFM8DRAnzS9Aj8oZ8ybd65sQRXFeT8E/1sV0aLeiEz6yWxAgmZpLIErP4cqfuTcgP0YNKAbGUC28Xb4v7rrom0XpVyTLt0Nr9e5BMIAzOZ1s9CNLY/2dQxbLhWUFWFe3MleSErNa6v7oBYXqAz4bvq4cOqwqHN6BKnOcWCaOUrB/0c1GCp3f28frC3w91mmbI+YHvm7S9YwBGJ6TvxreBUMFF5Ava2wBjTY8YC95PSqo9Vogr7ROI0u8jZyQsc6mVEushlbtmYXYyAF28BA8RKrC1skjmWOc2RLlV6L/sLX0H0M53OlXJN8Pi1tutYK6p01iU+qJmoj6l/iZ0XhWYqUrsDTT+BnoAIfA1c7+ERkUnxhpY4yuprqBDYKR+pMZGDwXY5Nnaypl43EDQY+rqXMe2eOBsNVmjFmO1sjfwO7w2AxO0tu18i3J96918w5/tHQu5rTKUwrP2iq3WDIXJKPiT9f0/19WAv9uhPtAPuvenrFY/uT+IUN0YCfnq5Dav+UCHPrL1NZ0QkPzLApGmmk2LoongByXRXidWVQD1mblZfzhDEJAIvjjyQ9mejMoYFCYIgCRx6K9QThoqC9DWix7aeYsAImdMHYZDeMwIieZmm6ZlYws9Q3m+HRawfoEvPP/X7AvNs0cO34eHqxr2FnHblmch6u4hjv5nRqjMFgSres2Q3yERPwWNXvcPw2dfcDzQbxLpbRDTg4RrtSraAoIl+3REg3URZaXWfdvbmjtYiYGR8y3N3wtk/bu/EbM7qbleOBZe/EWF0IEFb6iEB090eSZRJp3D+nfWw6K6GJXLAlLXEf4MuUon+UiAzcmfGog/l9O5is5kh1pOQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN6PR21MB0162.namprd21.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(316002)(8990500004)(6506007)(52536014)(76116006)(7696005)(5660300002)(53546011)(91956017)(8936002)(9686003)(83380400001)(2906002)(186003)(82950400001)(82960400001)(86362001)(38070700005)(4326008)(33656002)(84970400001)(6916009)(55016003)(71200400001)(66556008)(64756008)(10290500003)(508600001)(66446008)(966005)(66476007)(66946007)(38100700002)(122000001)(8676002)(20210929001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?z94xE166gDEJjqPsbMQt/tszsv57hD+QcyVlKi08kjrxoNL4UXVhpUS3PPyU?= =?us-ascii?Q?ESuiVww69Gy9x5bKHrhWX0i8C3M1aheC27KJNdHxhYHNbFieQDfMQQGqr5Q/?= =?us-ascii?Q?dXDPLCnEU56c5JYQDWgW+yfQUPgUIHIimOcnWu6Wv54oJZgfLMcA4CC6Fti/?= =?us-ascii?Q?P3cYGQ6NmsdjsMguEk2w1O2aTvN279NhzEmSa2HFTMmqry+EKhLEfoJ9mN1/?= =?us-ascii?Q?cQcaPm8ruH2krsHXQ0cE+iRSrlVIT1uYX0fl+WHr91pa7vdjE5FRL0ZWs2x/?= =?us-ascii?Q?bmKJGvrptBOC5Te2wR++404vk7f9EyRmFlSSIvvagoi+FlTzgqSLv/F5ziFU?= =?us-ascii?Q?NpwGOdj+6cF2d8N0KORbU8GwEODch7SlyK7WgvIfUCwJL4eG0iBrXn5TbrMq?= =?us-ascii?Q?5fM6bsJHGwXONEZKCL/30CnnuTOlQnqSIOqt+e5xWmkGiBuw4Z64pNNNce/b?= =?us-ascii?Q?6NS6b76fnVPIRdhb9UsXn5Amf2AgqGPQWENb6y7KWvljwHtmqb3O1/5/Kpkg?= =?us-ascii?Q?8R9fUSDrbS30eS/65wveVZ6hJElChRVgl9JJadnJpwBLw2QpGQz5swkYR9Xj?= =?us-ascii?Q?dlqqRpyGrUVJoKEtI+gnp/sX8GrmScb3zl8USCVordSpUkq5Ibd7tjjubCwR?= =?us-ascii?Q?20OJUHhyN+jxjM5/9CiMPgmUsoQpIORYq475gGN4EKyTCrnHjkr8/L0mt/gq?= =?us-ascii?Q?fCG+IfWjuu7F1sqzZ6jR18Rrw1ki1qB0EdLhGltIfiIZo1sYoOo4hZBlpGQC?= =?us-ascii?Q?lRskT1nPBmSMCX62lUkAO4RIE68PUSRY/2j6PCMosNwKMBRDcIs3Y9gcoKqk?= =?us-ascii?Q?r+FX8CJBZJ0jVgJwizqtj3AL2xpQEfgMeP07IVWbvsq8EIWW7RDbDgfK+Xh5?= =?us-ascii?Q?M+NmRxzsYlaHnjhmFFZlX4HV3d7oN1zbAQ2pMFx00OuO4ZxlEa+0gL0sfsFM?= =?us-ascii?Q?BjXTUTO7WbuDZ5A+M+Ljjls5FFOzHWpkbljY7oy4xsaL39m0ucUlxetqdr2v?= =?us-ascii?Q?npswONBUY/VoA8x2BNi1u3sseChGTJ0Jfgg7i/HN2k5pLAjFlqSCBhlg1RPw?= =?us-ascii?Q?AhbbsHtYT8y1SN4KrhL1iY1tMw0kPXma/1jaF20tbmqCPWXk4/S4w57rcHWe?= =?us-ascii?Q?3O+3TvILG4EBtEY5/IprOBGgQmT/qAvsPhgKdkaopLaxkUG6K8Ae/14J/6q9?= =?us-ascii?Q?+lYak78eB6NxI3CoLtm7rl1PU+h8Eg6KYExKSXmxCQm09simvHolvJoMnrWs?= =?us-ascii?Q?EpbB+obHn2Ij8/14sHRfLtCyMuX2omZkirjX2E6OI+ZxrlCEr7XGJJ3Tjihm?= =?us-ascii?Q?ojgmRWOSJDBq8KuFucdea8GhPCN1kyxP8WKqhmg+RrUEaSE/UO7hc7ViFjHb?= =?us-ascii?Q?qDc9XcL2PoHkTiusIkA42E3bIYf7jaunZ94nCDQGNo+HLhNBGC7tY2wFtomR?= =?us-ascii?Q?1PfHiQYA9mJwzvpOkq0tbLh6iA/LEJA3f8hUV3wU7USnVI87siqYv2krH5ww?= =?us-ascii?Q?o+5DZvYHVuO3CW14mKIprjet73xNa+fkNFkCUcmD2FJPvJYGaFItRiVpHR2V?= =?us-ascii?Q?Y2VYtODO1YkDGUEFGb1VdyIUa42TR8G8UAVwup63oHHtTSi1FzKkuozjE1aZ?= =?us-ascii?Q?sI4gnXoFPktrBBGJ/hJ84/Oe31gfyHgjwXkyxdzjJfHJ?= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN6PR21MB0162.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc31b78b-b632-4c72-2377-08d9b4565cb3 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2021 23:08:46.3337 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: P7VW9x0rZVz3ztskWnpUvOrF8lf1aDjDcGbqGUCniNdSVqxkg8ytPxy1xbi7Pl3xiiqCZ4iRPxzzN6DyVXSCeSy91QxZxlbWv2w/KlBkH9A= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR21MB1603 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Tue, 30 Nov 2021 23:08:52 -0000 Hi Andrew, Thanks for your detailed comment. There are two problem I wanted to discuss= with you about: a) The optimization I have sent patch, does optimize variable length "<<" t= oo(for example B0 << x, where x is variable). This [1] link shows the actua= l optimization and a link for the proof is included in the editor. b) I am unable to prove the optimization you are describing for non-constan= t length shift. You can take a look at the code example [2] and proof [3]. = I am getting "Transformation doesn't verify!" when I do implement the optim= ization you mentioned for non-constant shift. The optimization you are describing only works for "(take: (t << 1) !=3D 0)= -> ((t & 0x7fffffff) !=3D 0)" which only is provable and works for INTEGER= _CST. My understanding might be incorrect here, please don't hesitate to correct = me. 1) https://compiler-explorer.com/z/r46znh4Tj 2) https://compiler-explorer.com/z/K1so39dbK 3) https://alive2.llvm.org/ce/z/-54zZv Best wishes, Navid. ________________________________________ From: Andrew Pinski Sent: Tuesday, November 30, 2021 14:03 To: Navid Rahimi Cc: Navid Rahimi via Gcc-patches Subject: [EXTERNAL] Re: [PATCH] tree-optimization/98956 Optimizing out bool= ean left shift On Tue, Nov 30, 2021 at 8:35 AM Navid Rahimi via Gcc-patches wrote: > > Hi GCC community, > > This patch will add the missed pattern described in bug 98956 [1] to the = match.pd. The codegen and correctness proof for this pattern is here [2,3] = in case anyone is curious. Tested on x86_64 Linux. > A better way to optimize this is the following (which I describe in PR 6499= 2): take: (t << 1) !=3D 0; This should be transformed into: (t & 0x7fffffff) !=3D 0 The rest will just fall out really. That is there is no reason to special case bool here. I have most of the patch except for creating the mask part which should be simple, I just did not want to look up the wi:: functions at the time I was writing it into the bug report. Thanks, Andrew Pinski > Tree-optimization/98956: > > Adding new optimization to match.pd: > * match.pd ((B0 << x) cmp 0) -> B0 cmp 0 : New optimizati= on. > * gcc.dg/tree-ssa/pr98956.c: testcase for this optimizati= on. > * gcc.dg/tree-ssa/pr98956-2.c: testcase for node with sid= e-effect. > > 1) https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgc= c.gnu.org%2Fbugzilla%2Fshow_bug.cgi%3Fid%3D98956&data=3D04%7C01%7Cnavid= rahimi%40microsoft.com%7Cd83f36080fd94b563ab608d9b44d4d1f%7C72f988bf86f141a= f91ab2d7cd011db47%7C1%7C0%7C637739066369079450%7CUnknown%7CTWFpbGZsb3d8eyJW= IjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&s= data=3DEO7zAIa9sux4JklTDeALImoX3Kcjqeug%2BssU0E%2Fp6mY%3D&reserved=3D0 > 2) https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fco= mpiler-explorer.com%2Fz%2Fnj4PTrecW&data=3D04%7C01%7Cnavidrahimi%40micr= osoft.com%7Cd83f36080fd94b563ab608d9b44d4d1f%7C72f988bf86f141af91ab2d7cd011= db47%7C1%7C0%7C637739066369079450%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwM= DAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=3DGyivNu= da31%2FPXJQQ4Z9tK2cFtj3N9YcvRdtM7rVkhHg%3D&reserved=3D0 > 3) https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fal= ive2.llvm.org%2Fce%2Fz%2FjyJAoS&data=3D04%7C01%7Cnavidrahimi%40microsof= t.com%7Cd83f36080fd94b563ab608d9b44d4d1f%7C72f988bf86f141af91ab2d7cd011db47= %7C1%7C0%7C637739066369079450%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiL= CJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=3DesqOKjKS5J= ZDbNBmAi0Bwwk0JTTHzInQ2Lgeq%2BPHJ9w%3D&reserved=3D0 > > Best wishes, > Navid.