From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2042.outbound.protection.outlook.com [40.107.6.42]) by sourceware.org (Postfix) with ESMTPS id 54FD03858C62 for ; Thu, 8 Jun 2023 14:56:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 54FD03858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H3sXcI5k7BMsHsTB7webBO0gWqUpIWj0TN0ejJQ15ls=; b=MatAitDfJ65Yt5I80ZU+37s1h7KxKruFnJ6JvjyOMGPvSIMtjKZyQ/n0rHL6ngZFSaKXYdQ24QZzXSdC6sjFCv+3QVQPNfsCjeMOBGYntrP6Zdq49SStnk7bZUXPMmHu/Dkcz7ZGjmp2D6hevfpZ0dCmJaCpxVK6xBoDBGZh9kw= Received: from DU2PR04CA0176.eurprd04.prod.outlook.com (2603:10a6:10:2b0::31) by PAVPR08MB10338.eurprd08.prod.outlook.com (2603:10a6:102:30d::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33; Thu, 8 Jun 2023 14:56:47 +0000 Received: from DBAEUR03FT041.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:2b0:cafe::48) by DU2PR04CA0176.outlook.office365.com (2603:10a6:10:2b0::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.33 via Frontend Transport; Thu, 8 Jun 2023 14:56:47 +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 DBAEUR03FT041.mail.protection.outlook.com (100.127.142.233) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.26 via Frontend Transport; Thu, 8 Jun 2023 14:56:46 +0000 Received: ("Tessian outbound 3570909035da:v136"); Thu, 08 Jun 2023 14:56:46 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: dbf69ed7975a33a7 X-CR-MTA-TID: 64aa7808 Received: from 2665381b9467.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 9B19B4EA-298C-468E-9FC9-732EDA388C41.1; Thu, 08 Jun 2023 14:56:39 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 2665381b9467.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 08 Jun 2023 14:56:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DUwQMisSW0PN7JDoV0YIHY+4NZv8uDDTuAyfllbo2NslhbNkTc5CFt9CeKDQ3dYXtNdEV6kvUjbIfARZE/kqfM8XftbKYlabf1wor4obuuTJVc05eJqa8A1flDp+lWA61sX0yvj4lwHaacOovlhtuN03G5SzknLHHL9RetszJfjsaAwa+CaX5h8ylNKqfFuCczMGc30ZMdDUd/LmywN724uAs1nC/pGq3kK2IUM+gnSX8p6KwSUKOjKQa5E5IcqNxcpNi+h5UPle/Nt+842ZGrRQzLvIiVzhM5ixzp6FS7KlnerVOyvutsvMCRWFDZJ3BsXlis9Esp8HFVAkb2d3HQ== 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=H3sXcI5k7BMsHsTB7webBO0gWqUpIWj0TN0ejJQ15ls=; b=D27oQZmjkpSCQohYP6sxOyPQwB9lFMI5O0ACSlnQKDvGN4i4Kn1N9JKMmJT0xtf9o8F588+LOTNznz/PXPQ2/LcPiplPGpNfEwGbamBwpX/lhWCgkdOFxpw4i/dHbzqroNfXVaKXn8bdEK/QddukDPJa8u4y9pTvOPED4Co9T6qJBlXRhhit6H9JLeJIHSKBRO7iG81Iz7NC7q61qfSENCxE+k+Jij2fxZJVM2UBTUTue4YMVF81D6+FOJ+ZoDkIPKXRXglRcuyJUTZjZao9cqgjy/kRdReonImD5xJs1MrjhTrvp15mOWKAkoQ/76HlewcloqqeG8sLsiPXUuepHA== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=H3sXcI5k7BMsHsTB7webBO0gWqUpIWj0TN0ejJQ15ls=; b=MatAitDfJ65Yt5I80ZU+37s1h7KxKruFnJ6JvjyOMGPvSIMtjKZyQ/n0rHL6ngZFSaKXYdQ24QZzXSdC6sjFCv+3QVQPNfsCjeMOBGYntrP6Zdq49SStnk7bZUXPMmHu/Dkcz7ZGjmp2D6hevfpZ0dCmJaCpxVK6xBoDBGZh9kw= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by DU0PR08MB8980.eurprd08.prod.outlook.com (2603:10a6:10:471::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.32; Thu, 8 Jun 2023 14:56:37 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::db73:66ba:ae70:1ff1%3]) with mapi id 15.20.6455.030; Thu, 8 Jun 2023 14:56:37 +0000 From: Kyrylo Tkachov To: "gcc-patches@gcc.gnu.org" Subject: [PATCH] simplify-rtx: Implement constant folding of SS_TRUNCATE, US_TRUNCATE Thread-Topic: [PATCH] simplify-rtx: Implement constant folding of SS_TRUNCATE, US_TRUNCATE Thread-Index: AdmaGWalzyEIbVKZRB+iDqhvZTnU+Q== Date: Thu, 8 Jun 2023 14:56:37 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|DU0PR08MB8980:EE_|DBAEUR03FT041:EE_|PAVPR08MB10338:EE_ X-MS-Office365-Filtering-Correlation-Id: 6f0bd0e9-63be-49ac-dc21-08db683094e5 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: fWEcMhBZPR0w/3uT6teIaK1D3gNCMABd/5o12ri6m8Ao8IkHDpRdpy8AVj47/nzAOJvJdjo49mQtZ6MR8U8KgS2cjqGtcjkp1sqLeJE206JH67dvvXfWxorJYNxyR8EUvIgniZz0JisvWLDl38TCHVNy3fkHY+GB52aCztTsrh2ZCGQ6eBzwfssHIBCWFm2Uq8RxpSP0x1WG045A96O6HogG+9Lcah+xStkca0DwFd7g3K0nhRQKsbcVQbTO7Yu/vJcqxpjoTNdWqWACm+ZPqJPBNmTDz6fSTxMwfHMGdm61HGFpeDQp8P3XF2p3D/omFBysQOzalHCqV1h0tVTiOWp1oBvXfrQ/YS1nCTNJ7V37JfUs7Pu5/caS0lkP+4+iAvOCcQjJ5CJE3HRuVPKE0dT8IvGWM0TBJOGG8FIasZT1q3ZGWxnrxJVgUu31KHxBjH5LUbTu2jhk4hNLeqYfvBtWJRHlCbKUsSAdEoyvNny05J2MV47CGbhhZ/A93vKXpDR/w0G3yCn4yk6lR8PkWLm9r6nuQi3JiE5EuaIRBAJxL+kblYv3aQxlMQN/K6Aswaz8x4Rr65Xrr1ztsJEYaMBb9KobFlH31DVbRLUG0TWh/YFiFzLIq8f48KfdNy5u X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR08MB6926.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(366004)(39860400002)(396003)(346002)(136003)(376002)(451199021)(99936003)(55016003)(478600001)(33656002)(8676002)(8936002)(41300700001)(38070700005)(316002)(66946007)(76116006)(66446008)(66476007)(66556008)(52536014)(122000001)(64756008)(6916009)(5660300002)(38100700002)(86362001)(7696005)(71200400001)(2906002)(4744005)(186003)(26005)(9686003)(6506007);DIR:OUT;SFP:1101; Content-Type: multipart/mixed; boundary="_002_PAXPR08MB6926C9C547D641065D6AF5379350APAXPR08MB6926eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB8980 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: DBAEUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 7a7f4422-ee88-4a4a-9266-08db68308f33 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2xTMQl2f3BQIkpj5pfAtnjyjRF0O0THykCHImggSjb2oEM2vK4CrINqeZNgkIT6OuaoDKP1o65iij+qMezRMxnOmSIZkUT4MziTepzWu/uQmk7Ts1qYEyhWFZ5dL0N8y3huAYibcq8pkGnTvGsK5VS4QbYLjH4IU54S+RX0o91AnsVkUJFhEUBWnv/24Tgymr5Z40Zgrsx6wjC2r4taiPSyT3kUOnUpueuL+H77sLCl40XbK3/vfF5bIHUwBq2VoNq+VLMCjQggatH+GD8TJydGmnCfHKT6zD+h5itbj0sM/jOboGnEl+UacbmbnwbZ+NOaRSS6UNC6aIIxs6SrYvxEJah/QIPXkkOluWp/m5hl6rdJCvsOOXi0RFpocMQKMsYHiqktsxJJ31n8me+nfKWPHxLEnrfXPUMQzFrODzGtdPJypvJIaURcsZ3feBy+nd97TMM54QJv4P0Y7tTbhT/mzI8uhsN3/u5+fRK1V8lf9KBzR4k1R6EnPbZXQ3+nbbjIgFpbSG7pyMiUQzLqoo+ig2Z8F2T7fH5bNOJc2XYZZhd5rUEf1yR96NDrVnRgjk+Q0dCYsVGb5Z2Zf5AJ+Hewm5mcl314kGarEvAMqfUdXOX8Rayq0007iJ2e9KpQzJXFRknj2KLeW9s405WiUKTRb9ZEVyKBsLDxNNNugK0Rkf7XuGm5uR9JMqgyaysfxOX5qnM52GxUPoThQLhfcMFb0WFWia8uQNU81q/Xy3KmhplhZUDB3QeJkQJZY5RVh 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:(13230028)(4636009)(376002)(346002)(396003)(136003)(39860400002)(451199021)(46966006)(40470700004)(36840700001)(70206006)(70586007)(2906002)(6916009)(40480700001)(81166007)(41300700001)(55016003)(99936003)(356005)(82740400003)(52536014)(40460700003)(86362001)(33656002)(5660300002)(235185007)(316002)(8676002)(8936002)(7696005)(478600001)(9686003)(26005)(6506007)(186003)(47076005)(36860700001)(82310400005)(336012);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2023 14:56:46.8711 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 6f0bd0e9-63be-49ac-dc21-08db683094e5 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: DBAEUR03FT041.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB10338 X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --_002_PAXPR08MB6926C9C547D641065D6AF5379350APAXPR08MB6926eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi all, This patch implements RTL constant-folding for the SS_TRUNCATE and US_TRUNC= ATE codes. The semantics are a clamping operation on the argument with the min and max= of the narrow mode, followed by a truncation. The signedness of the clamp and the min/max extre= ma is derived from the signedness of the saturating operation. We have a number of instructions in aarch64 that use SS_TRUNCATE and US_TRU= NCATE to represent their operations and we have pretty thorough runtime tests in gcc.target/aa= rch64/advsimd-intrinsics/vqmovn*.c. With this patch the instructions are folded away at optimisation levels and= the correctness checks still pass. Bootstrapped and tested on aarch64-none-linux-gnu and aarch64_be-none-elf. Ok for trunk? Thanks, Kyrill gcc/ChangeLog: * simplify-rtx.cc (simplify_const_unary_operation): Handle US_TRUNCATE, SS_TRUNCATE. --_002_PAXPR08MB6926C9C547D641065D6AF5379350APAXPR08MB6926eurp_ Content-Type: application/octet-stream; name="s_truncate.patch" Content-Description: s_truncate.patch Content-Disposition: attachment; filename="s_truncate.patch"; size=989; creation-date="Thu, 08 Jun 2023 14:56:13 GMT"; modification-date="Thu, 08 Jun 2023 14:56:37 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9zaW1wbGlmeS1ydHguY2MgYi9nY2Mvc2ltcGxpZnktcnR4LmNjCmlu ZGV4IDI3NmJlNjdhYTY3MjQ3ZGQ0NjM2MWFiOWJhZGM0NmFiMDg5ZDZkZjAuLjU5ODNhMDZlNWE4 Y2E4OWM3MTdlODY0OGJlNDEwMDI0MTQ3YjE2ZTYgMTAwNjQ0Ci0tLSBhL2djYy9zaW1wbGlmeS1y dHguY2MKKysrIGIvZ2NjL3NpbXBsaWZ5LXJ0eC5jYwpAQCAtMjEzMSw2ICsyMTMxLDIyIEBAIHNp bXBsaWZ5X2NvbnN0X3VuYXJ5X29wZXJhdGlvbiAoZW51bSBydHhfY29kZSBjb2RlLCBtYWNoaW5l X21vZGUgbW9kZSwKIAkgIHJlc3VsdCA9IHdpZGVfaW50Ojpmcm9tIChvcDAsIHdpZHRoLCBVTlNJ R05FRCk7CiAJICBicmVhazsKIAorCWNhc2UgVVNfVFJVTkNBVEU6CisJY2FzZSBTU19UUlVOQ0FU RToKKwkgIHsKKwkgICAgc2lnbm9wIHNnbiA9IGNvZGUgPT0gVVNfVFJVTkNBVEUgPyBVTlNJR05F RCA6IFNJR05FRDsKKwkgICAgd2lkZV9pbnQgbm1heAorCSAgICAgID0gd2lkZV9pbnQ6OmZyb20g KHdpOjptYXhfdmFsdWUgKHdpZHRoLCBzZ24pLAorCQkJCUdFVF9NT0RFX1BSRUNJU0lPTiAoaW1v ZGUpLCBzZ24pOworCSAgICB3aWRlX2ludCBubWluCisJICAgICAgPSB3aWRlX2ludDo6ZnJvbSAo d2k6Om1pbl92YWx1ZSAod2lkdGgsIHNnbiksCisJCQkJR0VUX01PREVfUFJFQ0lTSU9OIChpbW9k ZSksIHNnbik7CisJICAgIHJlc3VsdAorCSAgICAgID0gd2lkZV9pbnQ6OmZyb20gKG9wMCwgR0VU X01PREVfUFJFQ0lTSU9OIChpbW9kZSksIHNnbik7CisJICAgIHJlc3VsdCA9IHdpOjptaW4gKHdp OjptYXggKHJlc3VsdCwgbm1pbiwgc2duKSwgbm1heCwgc2duKTsKKwkgICAgcmVzdWx0ID0gd2lk ZV9pbnQ6OmZyb20gKHJlc3VsdCwgd2lkdGgsIHNnbik7CisJICAgIGJyZWFrOworCSAgfQogCWNh c2UgU0lHTl9FWFRFTkQ6CiAJICByZXN1bHQgPSB3aWRlX2ludDo6ZnJvbSAob3AwLCB3aWR0aCwg U0lHTkVEKTsKIAkgIGJyZWFrOwo= --_002_PAXPR08MB6926C9C547D641065D6AF5379350APAXPR08MB6926eurp_--