Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/1.1/patches/2227783/?format=api
{ "id": 2227783, "url": "http://patchwork.ozlabs.org/api/1.1/patches/2227783/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260424084936.55136-1-dylan.rees@arm.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/1.1/projects/17/?format=api", "name": "GNU Compiler Collection", "link_name": "gcc", "list_id": "gcc-patches.gcc.gnu.org", "list_email": "gcc-patches@gcc.gnu.org", "web_url": null, "scm_url": null, "webscm_url": null }, "msgid": "<20260424084936.55136-1-dylan.rees@arm.com>", "date": "2026-04-24T08:49:36", "name": "[1/1] middle-end: Eliminate redundant sign extension for positive runtime constants with known range", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "931dff2a0f34c7d988fdbb7e9673e6392d31be3f", "submitter": { "id": 93248, "url": "http://patchwork.ozlabs.org/api/1.1/people/93248/?format=api", "name": "Dylan Rees", "email": "dylan.rees@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260424084936.55136-1-dylan.rees@arm.com/mbox/", "series": [ { "id": 501320, "url": "http://patchwork.ozlabs.org/api/1.1/series/501320/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=501320", "date": "2026-04-24T08:49:36", "name": "[1/1] middle-end: Eliminate redundant sign extension for positive runtime constants with known range", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/501320/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2227783/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2227783/checks/", "tags": {}, "headers": { "Return-Path": "<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Delivered-To": [ "patchwork-incoming@legolas.ozlabs.org", "gcc-patches@gcc.gnu.org" ], "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=KlH3WtwB;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=KlH3WtwB;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)", "sourceware.org;\n\tdkim=pass (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=selector1 header.b=KlH3WtwB;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=KlH3WtwB", "sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com", "sourceware.org; spf=pass smtp.mailfrom=arm.com", "server2.sourceware.org;\n arc=pass smtp.remote-ip=52.101.83.31" ], "Received": [ "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g26Br3SdPz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 18:51:31 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 1467D4BB24FD\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 24 Apr 2026 08:51:29 +0000 (GMT)", "from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013031.outbound.protection.outlook.com\n [52.101.83.31])\n by sourceware.org (Postfix) with ESMTPS id 3A5B44BB3B88\n for <gcc-patches@gcc.gnu.org>; Fri, 24 Apr 2026 08:50:57 +0000 (GMT)", "from CWLP265CA0408.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:1b6::21)\n by PA6PR08MB11584.eurprd08.prod.outlook.com (2603:10a6:102:524::13)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr\n 2026 08:50:50 +0000", "from AM3PEPF00009B9B.eurprd04.prod.outlook.com\n (2603:10a6:400:1b6:cafe::82) by CWLP265CA0408.outlook.office365.com\n (2603:10a6:400:1b6::21) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.22 via Frontend Transport; Fri,\n 24 Apr 2026 08:50:50 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AM3PEPF00009B9B.mail.protection.outlook.com (10.167.16.20) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.18\n via Frontend Transport; Fri, 24 Apr 2026 08:50:49 +0000", "from AS4P189CA0069.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:659::7)\n by AS4PR08MB7928.eurprd08.prod.outlook.com (2603:10a6:20b:577::11) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.22; Fri, 24 Apr\n 2026 08:49:39 +0000", "from DB3PEPF0000885C.eurprd02.prod.outlook.com\n (2603:10a6:20b:659:cafe::e3) by AS4P189CA0069.outlook.office365.com\n (2603:10a6:20b:659::7) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.22 via Frontend Transport; Fri,\n 24 Apr 2026 08:49:39 +0000", "from nebula.arm.com (172.205.89.229) by\n DB3PEPF0000885C.mail.protection.outlook.com (10.167.242.7) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9846.18 via Frontend Transport; Fri, 24 Apr 2026 08:49:39 +0000", "from AZ-NEU-EX03.Arm.com (10.240.25.137) by AZ-NEU-EX03.Arm.com\n (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Fri, 24 Apr\n 2026 08:49:38 +0000", "from aws.arm.com (10.249.56.154) by mail.arm.com (10.240.25.137)\n with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Fri, 24\n Apr 2026 08:49:38 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 1467D4BB24FD", "OpenDKIM Filter v2.11.0 sourceware.org 3A5B44BB3B88" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 3A5B44BB3B88", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 3A5B44BB3B88", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1777020657; cv=pass;\n b=HabelBUt9t1h+p+gVnRchhGSuaeFRbCFAeIXdFn4/sVHkVeUDt7VsAtVYeNAZHMYvMM85116fzrvZuZBkGKf24rRyRrDbaOAVgzhJZW0QSgvUxK2pUnm14ipqG7Vw3+yWTxV5e+fyFOq9tg0Cnxif8+C7igXv8rlL1PR22eCNNY=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=hqj3VoOzomLcmYzWCE2QWAudSBNQZ/iIlW5uNvBSYBTQxFjOPlm1AI9yIsye4ZrRsWa85y+62EvAWgpTspUhJowZiThWYnSZHjLzSNQ6+N9DiqfUhsIDoeMj5xtFyscXEV47FKf03OJTQGXf3icaCOi4ZtrT4ppf//5yLw7RZOI2CEZ5Kzy7uzIaDdtzT5uuyIUBjudDjVn8TphxiuM2eGDAqygH76acUPd+YAtuxAtrB97lr1gNMeBBkMPkpyGHUcRcSX0QD9szKK/DLVqbUE7K1cbORItkbXfqEpOarBvvtW8cCq9YS6wR+0cIMJW+gl/u/HZcm127GyvAfeW+0Q==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=YMSlVpkJopNCO6upwcwqPWpEuZHr3s1l9CvD9MstFHu1ugoY+X4d6wsvgF0BHBa3BJ6X8dz8PykblrM9r1Zlg23WvM6WEKihKUvU863Fn4GRbCLRUtxBYvrfAIVuEuqAl8f2dKJ9tJXU6N3sZT3Scc3ec7dGPn3Xl+55roHW/agna4fj1YDdZJUBCUlgGdiD6Fvi1zKtQfEJjzowSbfrHB24HkC4Mq4zIgeS04IwlgjMYdXLzFl3OwLKolIxUuu1pv5/oTQxz1/wtB7lUi25yeXurpNawfMq0vedu/Z7kvjlfd1fxa6cqTCVfNhxvys/JXMAez/gdMfjgtFRBI6NRA==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777020657; c=relaxed/simple;\n bh=gEq/t0km5cTrigNmGjHYg/SkqJp45wvr3i2id7Oc+yg=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=cdbv+D8SGzKrE7CjdHC0ClS8kWmvD3IPi7Hnd9fg2PSeZgeo3UG/NrTHJ8lZdelRY9iT/T6NHtDMXl6okW7iuqX+q47pQS2f08kRTfAfKYNyOYHraTjXqSfkS4CD/rAoQ/4iNG/mHLAb5W4VjdEfpm1M+0F8wok9FKUWBg5UYzI=", "i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=xI/XG15y1P7mlB8ICa2vtwuTD2PwjHePRLnENY+h4S8=;\n b=ca47Ybp2qYStF87C4jPgxO4EhLmqqMGwtA+/7YgwWaN5vyPGm81/IZrtaEY1j6p8YqlnV7VNTdPVfhgW5HwJU/Wk4UipAJ6h8kSWwqO6qYgZNo4LKGKWHjOl9bdM1VnRDo3mXV1oM5B3+XSaQy9Rx1owJKaLlDgIV4Pfezs79mmB7TDVfnDFSyrTaWUPsn0cSs5UXe4mXvzx4Ys/05Z8J15AiamMCrO0g50WhZWrHfQ7HN2ryVpbUo3SRx+wSkA4W5SpNuVqsCmaaG7OrdG6uRmFOAc5vCoTog177db133wnCMMLWVTctmCYR2g44RxpnHhYVtTN06zbV1Yn4zyx8g==", "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector10001;\n 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;\n bh=xI/XG15y1P7mlB8ICa2vtwuTD2PwjHePRLnENY+h4S8=;\n b=NjPIqBlbdE2Amym+dSASIMXb9nJfboxFe2FxvL2mYUzDo5uzE3PqWEaB+fgRPi/c2PqPTVq1dNRp1DDww0xj3iu/h52GaMRMKtH+mif5foaWS5BDI9+gfHAlwXrVK2CZP5dTVpQPaH7TDwKRBzVv4eMGXabSrUtdT16MNZekkjQvvhlvhNrPJ8e/FJWhr3eddQWQuzhzvohz+d7oiMCYsnZo9qyoQFryQ/gu/bv64SEr/+WQaulqodc6Yj8plbc2BDx8qoXYTqyNaEWG+iISczgvixj2DwuGtQqdN7WE+1cOjFWpPzBioFKe5hKdoyMs61N7yIP3lmtbnKPOuRIx7w==" ], "ARC-Authentication-Results": [ "i=3; server2.sourceware.org", "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 4.158.2.129) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass\n (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass\n (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com])", "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;\n dkim=none (message not signed); arc=none (0)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xI/XG15y1P7mlB8ICa2vtwuTD2PwjHePRLnENY+h4S8=;\n b=KlH3WtwBUkFbZZ2kSuvN9oFXGcrW3WeXVFeVURXvJ5yaUyCmDOpjLQDgMqp7l7GUK11rnh4pZhgXsimznY9h3oaZWqFkI6lu4LqQ9CoFvfIoUhxJEFjY/NUeeBC4+ewCgfEKubUUXFWL/joAO6x7HDU1VW/7oO67JV5ujnXoiB0=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xI/XG15y1P7mlB8ICa2vtwuTD2PwjHePRLnENY+h4S8=;\n b=KlH3WtwBUkFbZZ2kSuvN9oFXGcrW3WeXVFeVURXvJ5yaUyCmDOpjLQDgMqp7l7GUK11rnh4pZhgXsimznY9h3oaZWqFkI6lu4LqQ9CoFvfIoUhxJEFjY/NUeeBC4+ewCgfEKubUUXFWL/joAO6x7HDU1VW/7oO67JV5ujnXoiB0=" ], "X-MS-Exchange-Authentication-Results": [ "spf=pass (sender IP is 4.158.2.129)\n smtp.mailfrom=arm.com; dkim=pass (signature was verified)\n header.d=arm.com;dmarc=pass action=none header.from=arm.com;", "spf=pass (sender IP is 172.205.89.229)\n smtp.mailfrom=arm.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=arm.com;" ], "Received-SPF": [ "Pass (protection.outlook.com: domain of arm.com designates\n 4.158.2.129 as permitted sender) receiver=protection.outlook.com;\n client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C", "Pass (protection.outlook.com: domain of arm.com designates\n 172.205.89.229 as permitted sender) receiver=protection.outlook.com;\n client-ip=172.205.89.229; helo=nebula.arm.com; pr=C" ], "From": "Dylan Rees <dylan.rees@arm.com>", "To": "<gcc-patches@gcc.gnu.org>", "CC": "<jeffreyalaw@gmail.com>, <andrew.pinski@oss.qualcomm.com>,\n <rguenther@suse.de>, <tamar.christina@arm.com>, Dylan Rees\n <dylan.rees@arm.com>", "Subject": "[PATCH 1/1] middle-end: Eliminate redundant sign extension for\n positive runtime constants with known range", "Date": "Fri, 24 Apr 2026 08:49:36 +0000", "Message-ID": "<20260424084936.55136-1-dylan.rees@arm.com>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-EOPAttributedMessage": "1", "X-MS-TrafficTypeDiagnostic": "\n DB3PEPF0000885C:EE_|AS4PR08MB7928:EE_|AM3PEPF00009B9B:EE_|PA6PR08MB11584:EE_", "X-MS-Office365-Filtering-Correlation-Id": "e24fc376-2ea5-40df-74cf-08dea1de959d", "x-checkrecipientrouted": "true", "NoDisclaimer": "true", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam-Untrusted": "BCL:0;\n ARA:13230040|1800799024|82310400026|36860700016|376014|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info-Original": "\n A7UwNOJRGwfIy7sna+Ox2eXR8/mMDGcwk0FPSPFsEpTlaLaK9jKNkBgUatiI2/CCG+vVY/y3vJsR0bF8RV8AaCWw8lXOr4B6Ks2J651cbVHVCyZDJG4vj/RB6NEiasK7y5kXyx6oJnYDHb9jTlXlxXApk3fVMicMctw5+r4BhPR7N+3MZWVgxgMfntISqQ9kYyAaMaRsawMyttv8YnqmphdrrGff2DMldNuPaMQ4ndX/fV3UreiGI7S0DPXo8NGZywdpWWo+kPedXp7xBB6O/tNS3DhcLEa0fkBWkjxnXVtCefYYKQlGy0t7BJHVfRsHv61vpZyZyT8ZDgvta0nSa8PKfHKe6o2WZfMDF9tAFE5kyoeWH3EsKhnIW4TGdRFhsNdes+o8Ry+ni0rc3lYPiAE/pxDlYq7EOn6hJMWOIyoxIyNwDTXAA3vDk3hpU6O1UgaIxO5JhsCxtI23QldWIKlTKafZNqKyKgP0Cp1DHh2wd+kxYjFkundS2EnpBmlM2NwN+VkjEqNBVCZRuxIjlsJNvu1rPYr0pJqj0rvGZMJepdNS09P965JZ/sovl235411OkbjanyKAsj4Vpvv0Liy6U3mAhTlw9zNlMaEUqRQX9wD/Xs+Iz6E22m482mygT9PBBKNALJ3JkA3XChlw4KdzGFiJPZtwubSRyBgVHhAQPA5kSzp1/DjKP+e7C6t+gjJ6WEOzsvrXl2LP1m0b3VQpuP8TbkQEYWew9kK5EXc=", "X-Forefront-Antispam-Report-Untrusted": "CIP:172.205.89.229; CTRY:IE; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent;\n CAT:NONE;\n SFS:(13230040)(1800799024)(82310400026)(36860700016)(376014)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-Exchange-RoutingPolicyChecked": "\n vxXGdnRPDjUINOveiO4r4xjGxQHqZbsDmFM02oJGoUmtjWIi0IgSjnBsLKp0euOTSmcHYjZwZCQZDlTfTAI2VVhWWdG3tcB6ZMlETQLvEWREggRlQrXt3Va6gGky4nlZMecBDPqadqIQSjaJz9zLIZislnCcYZBAF9F45BgehKrBtCuMTV2EtwRvxkDqaGNBfBD4b+78PS1tn2BaiwCJaS+t4I0YDmYK/n3AnUDSTwfZgtR8GDOOZ8JQFcsOWzv0VWpdURQY4MHkXcrS6zsBmdCqbwJWZZ3zUpvT+dOIDQWzpNgug4uC8XWgIyxhGtx5XRoNoO3EIi0qmlrnIPL8/w==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "AS4PR08MB7928", "PA6PR08MB11584" ], "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM3PEPF00009B9B.eurprd04.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n a25f3614-bcba-4eba-46a2-08dea1de6bbe", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|376014|1800799024|36860700016|14060799003|82310400026|35042699022|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info": "\n eZwImLWmQBqt8yp9FUdSQd6qxj2VjbMJa101VMULSPzKNAs97cA9yh9JQ0B/w9kt05Ar6YlOPTeHyHiHrz4L2k9V4Dhjp+DuAWFbHWa6LsFgaG6vcAUgJVwAW/4/Z1aoPFozAcRpT4syaMQMVhHGPpnxXDmuMQhS/aPV+7I83xBrUPx58/7Lue0T1lUgwRD612MEVKd2OMdbztE0Opq0opSrOYMlmW1sBZfhpQqGuEWipN53Kp8nZ0YHVbpZWex9DXfKbDnNdZt27caqs6PpZJJpL6+Bf2wAgDVW2Vap178HNfuwo4HKhw9u9Kl68b5a7ir03S8NIXp05AztIVQnH+4vJe4O3IbD65Levjln9AXEhvvT3VYeiZ96kzF1AL3oQEeX1jKMLDdGlvBEykZxe+8ZlgeLd940kBO4WxMGR7+3cWWLpe0vxJCcDPq7e8b3oyAQTDce0bkbu6HTSDi9NGDoxUUQYSXrvfYJepWGnTKekI4yz42NBlvFFaAgE5zNGfdwlFx1xHIoLsAb0rzdQRoawtI9lVIwE5TzqXmXfhiGS/6IYh+jIHpPE8uqJZIc2ehOkp1IwHdi93EzozM4Up7HXUhmbtXSOdA8v7jwXuUCEhhfVLieiSgD8UbN8/wJDV0uZEcIkvVQiKnwlMkfuESbGuAh1d2o6xkiwofhz+EI5fvkmI+sYDsQweLyqCNAgU+HgT831HS7E4CYv8OKO8Xx3Vnq6HKWJ5Srqv4MDkM=", "X-Forefront-Antispam-Report": "CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230040)(376014)(1800799024)(36860700016)(14060799003)(82310400026)(35042699022)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n IGrzU17cEzb9+/NGTjC0ws4xcSnkQpI6WIZ1R90YzG/jqUDWmK/AlPPwIwyYs3CjxmjbIkJOw3pcVOzwgoFVb94UA6j31uCJaqCTVIeUeyVxXEsB4wEQciWGJqGiphXP1iWvXLxzmfHHetoTgWJHqeuzMebj9UGX6C3eHJiBkFvs5w0ULii9ShExR0sTr/0mR41H5xLH5tV7/rCo18GaM4ojyK3GB6wjXm6H1PgoFwOklp7YFoJZ4gHBTA3I5azKptG0IlKxpFg8lYvBc7DO4lQ48uDN25ovP6qM88wB7mRk+eIjt/iFMmPnkHSS3ooXlojVR8vati7uRKEIKqbiueL8sw4IUu5wBhcsDC85QiOeG8vw/p7+a4dNzEgzL6X2TOaWRS54HRWJtVHZJAqBW4BAHm/Irl+1LTUmbIQNga0q86shUWpQRFi72pxwUT0o", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "24 Apr 2026 08:50:49.7219 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e24fc376-2ea5-40df-74cf-08dea1de959d", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129];\n Helo=[outbound-uk1.az.dlp.m.darktrace.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AM3PEPF00009B9B.eurprd04.prod.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-BeenThere": "gcc-patches@gcc.gnu.org", "X-Mailman-Version": "2.1.30", "Precedence": "list", "List-Id": "Gcc-patches mailing list <gcc-patches.gcc.gnu.org>", "List-Unsubscribe": "<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>", "List-Archive": "<https://gcc.gnu.org/pipermail/gcc-patches/>", "List-Post": "<mailto:gcc-patches@gcc.gnu.org>", "List-Help": "<mailto:gcc-patches-request@gcc.gnu.org?subject=help>", "List-Subscribe": "<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>", "Errors-To": "gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org" }, "content": "A compiler issue was identified resulting from the narrowing of\nthe 'svcntd()' intrinsic into an int and then widening to a long.\nThis produced the appearance of a redundant 'sxtw' assembly\ninstruction. GCC previously fails to notice when the range of a\nruntime constant implies that it can never be negative or an\noverflowing positive value. This patch suppresses the redundant\nsign extension by updating middle-end constant folding with\ninformation regarding the widening non-negative POLY_INT_CSTs.\n\ngcc/ChangeLog:\n\n\t* fold-const.cc (fold_convert_const): New branch for\n\tPOLY_INT_CST widening.\n\t(tree_single_nonnegative_warnv_p): New greater than\n\tequal to check for POLY_INT_CST types.\n\t(test_pos_poly_int_cst_folding): New selftest.\n\t(test_neg_poly_int_cst_folding): New selftest.\n\t(fold_const_cc_tests): Add new tests.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/aarch64/sve/svcntd_no_sxt.c: New test.\n---\n gcc/fold-const.cc | 82 ++++++++++++++++++-\n .../gcc.target/aarch64/sve/svcntd_no_sxt.c | 12 +++\n 2 files changed, 92 insertions(+), 2 deletions(-)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/svcntd_no_sxt.c", "diff": "diff --git a/gcc/fold-const.cc b/gcc/fold-const.cc\nindex 56503e570bc..0607135bb4f 100644\n--- a/gcc/fold-const.cc\n+++ b/gcc/fold-const.cc\n@@ -211,8 +211,8 @@ minmax_from_comparison (tree_code cmp, tree exp0,\n }\n return ERROR_MARK;\n }\n-\t\n-\t\n+\n+\n /* This is a helper function to detect min/max for some operands of COND_EXPR.\n The form is \"(EXP0 CMP EXP1) ? EXP2 : EXP3\". */\n tree_code\n@@ -2497,6 +2497,20 @@ fold_convert_const (enum tree_code code, tree type, tree arg1)\n \t\t\t\t\t\t TYPE_PRECISION (type),\n \t\t\t\t\t\t TYPE_SIGN (arg_type)));\n \n+ /* If we know that the runtime value is non-negative and fits into\n+ the new type without overflow, we can widen POLY_INT_CSTs. */\n+ if (POLY_INT_CST_P (arg1)\n+ && INTEGRAL_TYPE_P (type)\n+ && TYPE_PRECISION (type) > TYPE_PRECISION (arg_type)\n+ && wi::fits_to_tree_p (poly_int_cst_value (arg1), type)\n+ && tree_expr_nonnegative_p (arg1))\n+ {\n+ return wide_int_to_tree (type,\n+\t\t\t poly_wide_int::from (poly_int_cst_value (arg1),\n+\t\t\t TYPE_PRECISION (type),\n+\t\t\t TYPE_SIGN (arg_type)));\n+ }\n+\n if (POINTER_TYPE_P (type) || INTEGRAL_TYPE_P (type)\n || TREE_CODE (type) == OFFSET_TYPE)\n {\n@@ -14936,6 +14950,9 @@ tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p, int depth)\n \t && gimple_stmt_nonnegative_warnv_p (SSA_NAME_DEF_STMT (t),\n \t\t\t\t\t\t strict_overflow_p, depth));\n \n+ case POLY_INT_CST:\n+ return known_ge (wi::to_poly_widest (t), 0);\n+\n default:\n return tree_simple_nonnegative_warnv_p (TREE_CODE (t), TREE_TYPE (t));\n }\n@@ -17988,6 +18005,65 @@ test_vec_duplicate_folding ()\n ASSERT_TRUE (operand_equal_p (dup5_expr, dup5_cst, 0));\n }\n \n+/* Verify folding of known positive POLY_INT_CSTs. */\n+\n+static void\n+test_pos_poly_int_cst_folding ()\n+{\n+ if (NUM_POLY_INT_COEFFS < 2)\n+ return;\n+\n+ tree src_type = integer_type_node;\n+ tree dst_type = long_long_unsigned_type_node;\n+\n+ /* Ensure constructed POLY_INT_CST can only ever be positive. */\n+ poly_int64 val;\n+ for (int i = 0; i < NUM_POLY_INT_COEFFS; i++)\n+ val.coeffs[i] = i + 3;\n+ tree cst = build_poly_int_cst (src_type,\n+\t\t\t\t poly_wide_int::from (val,\n+\t\t\t\t TYPE_PRECISION (src_type),\n+\t\t\t\t SIGNED));\n+ ASSERT_TRUE (POLY_INT_CST_P (cst));\n+\n+ /* Fold POLY_INT_CST and check that it has been casted properly. */\n+ tree res = fold_convert_const (POLY_INT_CST, dst_type, cst);\n+ ASSERT_TRUE (res != NULL_TREE);\n+ ASSERT_TRUE (POLY_INT_CST_P (res));\n+ ASSERT_TRUE (known_eq (poly_int_cst_value (res),\n+\t\t\t poly_wide_int::from (val,\n+\t\t\t TYPE_PRECISION (dst_type),\n+\t\t\t SIGNED)));\n+}\n+\n+/* Verify folding of known positive POLY_INT_CSTs. */\n+\n+static void\n+test_neg_poly_int_cst_folding ()\n+{\n+ if (NUM_POLY_INT_COEFFS < 2)\n+ return;\n+\n+ tree src_type = integer_type_node;\n+ tree dst_type = long_long_unsigned_type_node;\n+\n+ /* Ensure constructed POLY_INT_CST is not provably non-negative. */\n+ poly_int64 val;\n+ for (int i = 0; i < NUM_POLY_INT_COEFFS; i++)\n+ val.coeffs[i] = 0;\n+ val.coeffs[0] = val.coeffs[1] = -1;\n+ tree cst = build_poly_int_cst (src_type,\n+\t\t\t\t poly_wide_int::from (val,\n+\t\t\t\t TYPE_PRECISION (src_type),\n+\t\t\t\t SIGNED));\n+ ASSERT_TRUE (POLY_INT_CST_P (cst));\n+\n+ /* Fold POLY_INT_CST and check that it hasn't been casted as this\n+ requires sign extension. */\n+ tree res = fold_convert_const (POLY_INT_CST, dst_type, cst);\n+ ASSERT_TRUE (res == NULL_TREE);\n+}\n+\n /* Run all of the selftests within this file. */\n \n void\n@@ -17998,6 +18074,8 @@ fold_const_cc_tests ()\n test_vec_duplicate_folding ();\n test_fold_vec_perm_cst::test ();\n test_operand_equality::test ();\n+ test_pos_poly_int_cst_folding ();\n+ test_neg_poly_int_cst_folding ();\n }\n \n } // namespace selftest\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/svcntd_no_sxt.c b/gcc/testsuite/gcc.target/aarch64/sve/svcntd_no_sxt.c\nnew file mode 100644\nindex 00000000000..99338497388\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/svcntd_no_sxt.c\n@@ -0,0 +1,12 @@\n+/* { dg-do compile } */\n+/* { dg-additional-options \"-O3\" } */\n+\n+#include <arm_sve.h>\n+\n+long foo ()\n+{\n+ int x = svcntd ();\n+ return x;\n+}\n+\n+/* { dg-final { scan-assembler-not {sxtw} } } */\n\\ No newline at end of file\n", "prefixes": [ "1/1" ] }