From patchwork Mon Aug 5 10:34:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Feng Xue OS X-Patchwork-Id: 1969017 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=os.amperecomputing.com header.i=@os.amperecomputing.com header.a=rsa-sha256 header.s=selector2 header.b=l66ZnOe/; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4Wct9J1srmz1yZb for ; Mon, 5 Aug 2024 20:34:44 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 471AD385DDDB for ; Mon, 5 Aug 2024 10:34:42 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azlp170100000.outbound.protection.outlook.com [IPv6:2a01:111:f403:c110::]) by sourceware.org (Postfix) with ESMTPS id E76AB385DDCE for ; Mon, 5 Aug 2024 10:34:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E76AB385DDCE Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=os.amperecomputing.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=os.amperecomputing.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E76AB385DDCE Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c110:: ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1722854060; cv=pass; b=KHS4ItLRbfUTs8iHAeRwqRFVL/TlcHmrSbLGT0IRqM0VaBmxCSDa2ldGZ2vL9X3JEYDhbVCGp2QBTDJlwqmNEhaCMWNZoxIYMGHP+fAHZvMUzqmy7djOZdfJQeDGl9AiGViJemJIJqv0cU80gtLXLecBcdmYX9m1GnlVLVjfihM= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1722854060; c=relaxed/simple; bh=SZr7BTE+oU6v5ucZ8v4NqAMav4PXqMKJZAM2IU7RGPw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=bqjgAy0fOTyn+wKhyjTK2QYoO5Fq8xdgsj9kMVTapSd5t1dYJCXVN7qrz0Domc57bpuzj9yT8muA5qW2wvolM0UpSqIOEzhj6jJfx1HnIzWgyS/us7/7KjROSAhBOpEzVH51VD9KVBS4vzQFFT9JAlStqpVNzDO7yJM++Lw+reQ= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Uw2c09cPemSE4CucXiLU0VBluWRM40yDBpwcaDCBuFnLqrB7jbHbMq3P/28ZK1zNWrETCkdvv0BkxGMN8t/vZJesQ9kkBW5Pa2BErOA/LUJ9HGXDWdoC8ddcLg8KJfevsyRM/1ko5XK5I+ugmArcCBOjJm+yoAIPlQV9Rua2DavW3Vc90Ltz/ZZILmNSFWto1/QTU1shacdRER2d5+fy8q6TOl//u8GdNSfnj+vM9nVO6bKYC3s0gz7TLubCcpC66msuA8sUJGSs0l8SmXGeZkshCyGS0PQtaaTo4KNseeV9EfYwCqMKgk4TOUhXJv7rBKNfyOXV4PUIcZIybmL06A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=UMvqFI+5xQ8jPR9WRV4KwJlO0puzuLRt8BNw/8o9gyo=; b=bLle9f9oHZOhp3Rbg0FJZeSopOMot1uo0+o8RV+QGROTrVg+KsiOOYfL+OvAoqWMFpdtjM4q6uJYK8VVNsnHJthUK0OnlYWo1nELrh7UWlh/uFew8uu5wpTnMHjBVU/kmBJNf17VLqfTqcKhYBT9MTLE/83t/id5ZUDbbX/Pq7My2Au8oK5gFKmjPCZShDKHbogGu98/nl+6mJYk1Ne4vPvR28QmB9mmzsd3tebFwq5pXoaxk5BR2Agozp5rSzKeSqwmhKCb78/6zGI0OARYVibbjK1eRE/BCxnXOqsUwY46gH85Cpw7lyr3qip4pV2lDXW3pPTsmkbUP9x5+RIR4Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=os.amperecomputing.com; dmarc=pass action=none header.from=os.amperecomputing.com; dkim=pass header.d=os.amperecomputing.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=os.amperecomputing.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UMvqFI+5xQ8jPR9WRV4KwJlO0puzuLRt8BNw/8o9gyo=; b=l66ZnOe/u/PJ5nU6l1UlWoFeqOGvJXq9Ptn3GzGA45ZSvVDxlmHihYl7UevK1QxC3pRZM9vu6Eon1+PijZ8VJXKubSefnZiNTMxApoKOCHu244DqpebPb7yk2QM6t/ZgfL2mzpHd2X5aRpVIqzaxW+/MtN7Q9EeYpOUMl+d5vg8= Received: from LV2PR01MB7839.prod.exchangelabs.com (2603:10b6:408:14f::13) by PH0PR01MB6539.prod.exchangelabs.com (2603:10b6:510:96::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.20; Mon, 5 Aug 2024 10:34:14 +0000 Received: from LV2PR01MB7839.prod.exchangelabs.com ([fe80::2ac3:5a77:36fd:9c63]) by LV2PR01MB7839.prod.exchangelabs.com ([fe80::2ac3:5a77:36fd:9c63%4]) with mapi id 15.20.7828.023; Mon, 5 Aug 2024 10:34:14 +0000 From: Feng Xue OS To: Richard Biener , "gcc-patches@gcc.gnu.org" Subject: [PATCH] vect: Allow unsigned-to-signed promotion in vect_look_through_possible_promotion [PR115707] Thread-Topic: [PATCH] vect: Allow unsigned-to-signed promotion in vect_look_through_possible_promotion [PR115707] Thread-Index: AQHa5yJeCc4TDLAkMkqPAi0qydWSGw== Date: Mon, 5 Aug 2024 10:34:14 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Enabled=True; MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SiteId=3bc2b170-fd94-476d-b0ce-4229bdc904a7; MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_SetDate=2024-08-05T10:34:14.194Z; MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Name=Confidential; MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_ContentBits=0; MSIP_Label_5b82cb1d-c2e0-4643-920a-bbe7b2d7cc47_Method=Standard; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=os.amperecomputing.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: LV2PR01MB7839:EE_|PH0PR01MB6539:EE_ x-ms-office365-filtering-correlation-id: eec6b4d7-7439-4b10-962e-08dcb53a26e1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?t/CD7AjeBjIFMyBNCuPCwf3CDV?= =?iso-8859-1?q?TqfjKvY19yHQbUmD7Vn3H8fzVp3lR3bdgZo1ET9ebjY3zxP7axaLRQH09nc/?= =?iso-8859-1?q?yO3zMTwxPN3EsTT49pK0hzzJQz7+NRxJRnmo1rE0BST9UhmoNcgDEkSTCplD?= =?iso-8859-1?q?Go48poLA6RBr2CJQLvG9+6u3tU6kSXw+c7/p5HuCgjAHfPpMrZnJ95OBWZl8?= =?iso-8859-1?q?2IPPMv5cRaeGLMyiqauz192K57HFc7ZvJr3sCqrmEghX7NOTCAKvktJd65+l?= =?iso-8859-1?q?9RfIEjHNWBg0E0JMq9PP+shozSp6LijBGV3n/dLICL5CSR3A0ml2DO3AByGI?= =?iso-8859-1?q?eRUbO+dPaGpkjtDFJRhrUyLuqmZpQ8nupzk/SNq/eDqT0g4F8LsyfF9WoyB1?= =?iso-8859-1?q?/ssFkShGoXSmiuPKDocWk4F0HDMT54z2t4nuVtdQe8cWj2lyX2/ilCOWCK16?= =?iso-8859-1?q?XyJZInAysFTA/NxDasgxbJQVhOP1P4OGaVN4Xi7/LCN+Mkm8en8eNsP+XoLg?= =?iso-8859-1?q?Iq3+t7pvVIG2oZJAHM0saRZJw5kNlExunAnhmuYblb82X4xsZmCFbfRMvPqs?= =?iso-8859-1?q?E6+zJ+veMZ13yoJjMxMWapqC4ycosY1ZpevZU2ggo8WGFWQPA66aq4EvvFjP?= =?iso-8859-1?q?PIZU7Uo6R2CjytyYC5SwI7lhldNyy6nM9xJbhO+WWSYP9xSMu3aC/umoFHh5?= =?iso-8859-1?q?z7Q4TxXQpAfMn3wySA7GlmrIByo/ARYJhCauxiaT90DM8UpQoobM8FH12ruz?= =?iso-8859-1?q?oH7n+M1c21S9uQNKajbhz6qCMFk8npGXES4OqJ5HgBFzU4dztGd9BoMnTDJX?= =?iso-8859-1?q?FVxse90X1WcV1cawhoN1TEHV3N15Cm2IZSUQ9YJtxwMgCqA5s+9KLFtx+jtQ?= =?iso-8859-1?q?sGtBsWotnB/0CPBSe6zBxlgfoHm7PU6uJ5bAmY+6kN77UIMH7MeXO/SQy8Fa?= =?iso-8859-1?q?6qkf6IZjFts2NEX4lVbkqsYmKstys7RTioV+J8fulRxtU4WlN7suEaX+MiMT?= =?iso-8859-1?q?ZrtTWPGla+xmhm4X/rJfkU1xcatbP9kErOQQOvq5cYRAux91yVr8JEGv521A?= =?iso-8859-1?q?Cj53w7uoIlObu/KrYjKnmDiPeBX1YE54OcyG1V117OPVIx0jPdzLIpYSH5Cn?= =?iso-8859-1?q?uDZk87JRL9Z5t/V+OVK+ZD9qDHF2dcwosF2WW6tj2ij5qw37B2uxQ6bB3Fcj?= =?iso-8859-1?q?LmZT0rTz+TlgImbM738TmS/Q/LiWQ7w6sXX4uIus8yLCrC/UJ+uxaDPD85M4?= =?iso-8859-1?q?rnfRCM+GBwdJ0oN/w/hRE8UPQlqk4lmCatyl3a7Oj/kAVH1ZVHbYGpXblggB?= =?iso-8859-1?q?na3BHsqJdL7QzfwAXxLPhDYOAtO1zH6nLGOq5tWDS20zoBrLBO/6YQoIjGYM?= =?iso-8859-1?q?i2MysECVsDxRAd7bWVY+05Mn63pFNUak9usEoxur4dlwjMGM6CLVCaulqOVS?= =?iso-8859-1?q?ViuvAKyiKHnUHQ6IQ5iCazhQ=3D=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:LV2PR01MB7839.prod.exchangelabs.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?RBHD72f/fZ5tkwYkQzojH9v?= =?iso-8859-1?q?sbaD7BIE1r5oOIznNMlMQIMuyvxqY5ncq1W9/IdhM1Lt3Cs3Fn1H4Oyq3xgP?= =?iso-8859-1?q?X6L7GMa65vc0/LofnLjY6H8gSfXK1KX5oQftVssF0YfiLLgvmn5X+8QzMDcH?= =?iso-8859-1?q?iykYiKzjNQT2c+jAIBjkO1dsCxO7pcVEgRsRZOY3QvgHOPM3Jyon1l6HY6Zc?= =?iso-8859-1?q?UN+XeCKrUJ+z7uNTGhIM9UR0VzrCu1LN7B7/gdp+jIoAvCgcQExnidiTb2f7?= =?iso-8859-1?q?n+wZobvY1jjmHoWOMPhJRJnMxjbGc7FJweSdGQQbMlMRrd5rawaldntM/Rfs?= =?iso-8859-1?q?SeWwnIh/+UmONNskUQhJiGb3rTEXVTe4/LFctw7Enxk9ldawCQmAWZZAr//3?= =?iso-8859-1?q?zUSDzoUtWAuFPlkIUWRM1oJhFY6aZGMqpdnm0QGzRl7vkPlyN8N9zT/PFDzK?= =?iso-8859-1?q?e9O+nO06Zxg3uAavAwjoAidp497vL3NNH4KFNcqpJhRQixGB6Z1WjysaNAGu?= =?iso-8859-1?q?kp75ussI/D50w/3UC9UPNvIwqi2wKsCYhg03WlMalg2xoN7YLVb7vbY5dnCw?= =?iso-8859-1?q?BCAtvLihn/ndxHLdBWLK8v9GKq/6ruCKyMwH7EhohxUYs8DDCaiONlvvfKfb?= =?iso-8859-1?q?ZqE/ragbEbEQ/rg3IEhnqzNDImIAV6HVKN19ystq+fFp66ytj5Hjcsbn8Sym?= =?iso-8859-1?q?a6ywhrbuTeevT0P1/Ev0w3ElcyuTMBGJb+Iaer+zJtJyJa8op2YpSBFLQ2j/?= =?iso-8859-1?q?cgKW+gkTXpYZdKOtUeFcFQrw9BLae/mlQsX4j3pjTFOZWQssCCwrTuHEtVzQ?= =?iso-8859-1?q?qgZCZvTU301ZpUBtNfBA/QZHYKfOIMCgw/cjAlm8qTinySxSekXCt95UYSia?= =?iso-8859-1?q?r3dLLfERHxnzdQwrlyXJhRiPMf9fQeC7PvN/78gtzSJIsv7fmAjG95iYoQvh?= =?iso-8859-1?q?K1QfSehrELLi1ewDpIav+UbXD+CmD48g2W41o15/JY8NlWn1fURcOQAuaDZz?= =?iso-8859-1?q?6KP2r0Wxi3eonvOGI2IHKXO/bNlK5YAOvjR1vNCUiVUOjZ3oPrPG8Xl6zx6G?= =?iso-8859-1?q?j0VdKyx+/I6RFU+/GDHVm2QOW1ltAw3iBWkzyr3PnN8EGYmsaS3v+UPs9Ymf?= =?iso-8859-1?q?ulivrLNByzCzNjcSfjG9SjTNEs9MQt8hSH1vnK0HmfZj6lDOLG9sVRT5Hcko?= =?iso-8859-1?q?ano3m3Q+hhlLrBus/7ljv8GAAFDV/th7KqVaHnIhVk0gbBNHlEZ1UyHvUe4c?= =?iso-8859-1?q?p7CL7Q8yIk0nPTCP8h3gkeBfVcrzKvSQQl2isMUJTUZ+fIULUCib/IH1tgzI?= =?iso-8859-1?q?Frh1um1ILlHmH46TN8VpDKFOuT+5+MurleDf5HRGvBS9r4BC75SOSqmgwp5K?= =?iso-8859-1?q?T2bW5hqgaidJyLkk1F2Wj2JXrqK39fzIz59KISdnyOD9vcN7aC7LHz91nuCV?= =?iso-8859-1?q?+k5CX019+jhOgANR/Tbp19+OWf/5Hx5j+hhCNnFXF6MvDP18imsvy45iT7yu?= =?iso-8859-1?q?+jet/avv5vUYiQmhv8EnruMf5QJw6jGTyUBbats1wL+LkzWFWE+q+FEhwBja?= =?iso-8859-1?q?vP9p6Cg9PJG3zbbvEmtfQGyE3wFzbvPSZQhOu7c6/bWfqHjSnJ4dqFkMwkuN?= =?iso-8859-1?q?lGjIuNA+wVRL5vOdYIpY8G3t32n75XYDVFwzQXQ=3D=3D?= MIME-Version: 1.0 X-OriginatorOrg: os.amperecomputing.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: LV2PR01MB7839.prod.exchangelabs.com X-MS-Exchange-CrossTenant-Network-Message-Id: eec6b4d7-7439-4b10-962e-08dcb53a26e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Aug 2024 10:34:14.4637 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3bc2b170-fd94-476d-b0ce-4229bdc904a7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: eguf3PPN2wSaYYMS8HbuJokdNvjkU7b1/KoQRxgLNYieIeA/zJnFp/oD0MLogeJuBVP1IKGNvK3TmsW6DTU8z6XRzOcZ8Hnk95zc/mJvfzA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR01MB6539 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, SPF_HELO_PASS, SPF_PASS, TXREP 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.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org The function vect_look_through_possible_promotion() fails to figure out root definition if casts involves more than two promotions with sign change as: long a = (long)b; // promotion cast -> int b = (int)c; // promotion cast, sign change -> unsigned short c = ...; For this case, the function thinks the 2nd cast has different sign as the 1st, so stop looking through, while "unsigned short -> integer" is a nature sign extension. This patch allows this unsigned-to-signed promotion in the function. Thanks, Feng --- gcc/ * tree-vect-patterns.cc (vect_look_through_possible_promotion): Allow unsigned-to-signed promotion. --- gcc/tree-vect-patterns.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) From 334998e1d991e1d2c8e4c2234663b4d829e88e5c Mon Sep 17 00:00:00 2001 From: Feng Xue Date: Mon, 5 Aug 2024 15:23:56 +0800 Subject: [PATCH] vect: Allow unsigned-to-signed promotion in vect_look_through_possible_promotion [PR115707] The function fails to figure out root definition if casts involves more than two promotions with sign change as: long a = (long)b; // promotion cast -> int b = (int)c; // promotion cast, sign change -> unsigned short c = ...; For this case, the function thinks the 2nd cast has different sign as the 1st, so stop looking through, while "unsigned short -> integer" is a nature sign extension. 2024-08-05 Feng Xue gcc/ * tree-vect-patterns.cc (vect_look_through_possible_promotion): Allow unsigned-to-signed promotion. --- gcc/tree-vect-patterns.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc index 4674a16d15f..b2c83cfd219 100644 --- a/gcc/tree-vect-patterns.cc +++ b/gcc/tree-vect-patterns.cc @@ -434,7 +434,9 @@ vect_look_through_possible_promotion (vec_info *vinfo, tree op, sign of the previous promotion. */ if (!res || TYPE_PRECISION (unprom->type) == orig_precision - || TYPE_SIGN (unprom->type) == TYPE_SIGN (op_type)) + || TYPE_SIGN (unprom->type) == TYPE_SIGN (op_type) + || (TYPE_UNSIGNED (op_type) + && TYPE_PRECISION (op_type) < TYPE_PRECISION (unprom->type))) { unprom->set_op (op, dt, caster); min_precision = TYPE_PRECISION (op_type); -- 2.17.1