From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on0615.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe0c::615]) by sourceware.org (Postfix) with ESMTPS id 4CE2E3846082 for ; Tue, 25 Jun 2024 04:01:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4CE2E3846082 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4CE2E3846082 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:fe0c::615 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1719288074; cv=pass; b=orWnSH3J0T3+GQm13gCI2j/JBRsYviGDSTaaqcPUKIZGtKoVPCO6swFmQeBl3Ff/xlpyBKfP5lEga5FgGb49DyhZsxKvx1NIzrHwGScuGvbtdO+QS0282pS4wf2SkYHsKiwBw3TC8Z2DX4/1ceDv4ocOpyYnJyPtImxxJSD9FWw= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1719288074; c=relaxed/simple; bh=FEjOojUf8ugenFMsena7yTHOI2EVFxDzFbmf5ucgUiM=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=MaBDCKzdmg6yoc9E++KO1lH2tbvPTQwU//mDnsqkiN52wU+JKaQRVJhEBLQyQvTuSJb7u6QtAn97tjoYjsOsIF49Pv+QWhiqNeJsAGlhIsdljEjrLiA+v+blmmeFVqIH7VpY2ZZaJ29uK11pciS8n++ZJPfR0j8bbzzITQi/zqw= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=QfOGoDbPTMhnVt5UWhN5wBot7td9/F1ljmIknIto2VcmG4dOw5PiOJYUpOl9DQHvnrqdQm3QfXXkagUNpTht3Tjo5Ku7/2fcgDhBw1Rd1DZE0daefg4550X8wCCXE0JX99ILb4r6NSjEJDoOOIwiLhzXjoTKd0nEdaDkQzsHlaszgaElxvsR7BWjfv21k9LWG/GUWCd08PQzIzHP/0kgWA9NRYpUZRZvDujmfLAYl8EmiowG3ZmR3ahfNUQo4312kd2bGIvlvW2ndU/8SWV/JXajL6s3voKF8MGJ36/wWQXi/mMv2ArdngkJdXzPcdZ3OSTdFd6SQyZhcaVOO3OaKg== 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=J8nj/sQPUCp6ADZvSD3nBu2Wx/+HfHQEEbJQE2EW318=; b=chJsVM/jWlQ6V65vipyw29fzKEbDa6OPzF0KGCT4P3f4ZXp7XRJYke9rLx6/8tfKVWIogpnL7B+5Lz/DjysXJQSYnprGTPxP3ltJKx8DaTCh9q/B2XDZRI6cEfSgkPhhfoNCpNhUIBUFICBJZV3HByvuZoSM4EkknhzUm54Gvb4j1r+0Ixv0f025GClPGmdjccOHNamSK3KUy9UCxlk0Wo499DSuLmIGUuaHU/Rdb2RBKoG03f2zRfIvZZBhKWZu9o9G5u2CJ/S+aboPyH6jWBnD/u6rH0ArY2gAiGbTOsjtfOEm4DiyzDScmqlZI+FHq9nz8rCqtQ6Hw4FWZPQV5A== 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=arm.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]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J8nj/sQPUCp6ADZvSD3nBu2Wx/+HfHQEEbJQE2EW318=; b=cTmScGCFo9IJ74CHdRdAgLp+h5JBbA//Sm2Oe9f8MBoxUBWJ86gYwF+ffzAO2/t6UOItFnkV8DcbzqzOIJjZsLBKFL+j3LV8eyx5kMQ+Bv6mN5x4Gx9bxAhB8OHT5D8Cx7CXXihXIaQKDxkR+aavRNJfLj1rCBPbKBNYmpGcJoI= Received: from DB7PR05CA0046.eurprd05.prod.outlook.com (2603:10a6:10:2e::23) by AS8PR08MB6279.eurprd08.prod.outlook.com (2603:10a6:20b:294::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.30; Tue, 25 Jun 2024 04:01:07 +0000 Received: from DB5PEPF00014B88.eurprd02.prod.outlook.com (2603:10a6:10:2e:cafe::34) by DB7PR05CA0046.outlook.office365.com (2603:10a6:10:2e::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7677.38 via Frontend Transport; Tue, 25 Jun 2024 04:01:07 +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=arm.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 DB5PEPF00014B88.mail.protection.outlook.com (10.167.8.196) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7677.15 via Frontend Transport; Tue, 25 Jun 2024 04:01:06 +0000 Received: ("Tessian outbound c82ff893d892:v347"); Tue, 25 Jun 2024 04:01:05 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7fc23c4dd3644872 X-CR-MTA-TID: 64aa7808 Received: from 9c2c9c70f808.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AA7AB095-716C-4CBD-AED3-4174C16D709E.1; Tue, 25 Jun 2024 04:01:00 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9c2c9c70f808.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 25 Jun 2024 04:01:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nw2+beJ9QuAC+Zhec8O1xIKC+pYPjZTdcIcpa8r2FfcEpgAtAaEZGAJywvGV+kJd9BJ0vU0IVpB6ObZSzlZ3z+18YPIkKz3kmfIWZqxxVHmzYjWd2lBntWFISdCRU8TjaHOsMTLpllJPdglso8njkYSeVOvhtiIE1ob1zFnVtaL2m/0rlGA7zQ45MnRiGOKRUw4MQJKILMmmjT9ZbyNn650MXDD3qCUEYM7mGO8NeaZLvFBbb9pDaY+fzda5Our70QgAbgKvZqE/1xpllRJ0nZ+s86TheTC3BzbgHRr36NzN0rBcHNasvCSNkvRPqcOXevX5bSU8fsP8T+hW3m1EQQ== 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=J8nj/sQPUCp6ADZvSD3nBu2Wx/+HfHQEEbJQE2EW318=; b=R3m6RN19SC7q53pt9tawh9dWMm3uysvvpnaPfUK0XGOXSJlG0wl4SDulAPQbbFrSf/K1o2ElAwv2MROpsdHuJXpWlAduFy0IjWdpFWAB97WDTE0GNI8MdAEyt5KXwV/0EDrZ9tBCo8Nx/CdpiTvWq0o2K8WElkt2+1NLMi0LOz27PPit0b8zkG+HQCGqGj/KJ8Myh5rHXeOPfrsufZPEAFyEepN3sKuF9JBZPo3KSP+qde6JYt/pqOl074FCrcKh79Mv2jUFNGa/X3kNGL47/G6ag/pxkzOkAu6WMPLZmgSToAeZBlClNvYRZZ+miKwDmTgGpwuPTQr1fnbsoJnAwQ== 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=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J8nj/sQPUCp6ADZvSD3nBu2Wx/+HfHQEEbJQE2EW318=; b=cTmScGCFo9IJ74CHdRdAgLp+h5JBbA//Sm2Oe9f8MBoxUBWJ86gYwF+ffzAO2/t6UOItFnkV8DcbzqzOIJjZsLBKFL+j3LV8eyx5kMQ+Bv6mN5x4Gx9bxAhB8OHT5D8Cx7CXXihXIaQKDxkR+aavRNJfLj1rCBPbKBNYmpGcJoI= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DU0PR08MB8932.eurprd08.prod.outlook.com (2603:10a6:10:467::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.26; Tue, 25 Jun 2024 04:00:57 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::89dc:c731:362b:7c69%7]) with mapi id 15.20.7698.025; Tue, 25 Jun 2024 04:00:56 +0000 From: Tamar Christina To: "Li, Pan2" , "gcc-patches@gcc.gnu.org" CC: "juzhe.zhong@rivai.ai" , "kito.cheng@gmail.com" , "richard.guenther@gmail.com" , "jeffreyalaw@gmail.com" , "pinskia@gmail.com" Subject: RE: [PATCH v2] Vect: Support truncate after .SAT_SUB pattern in zip Thread-Topic: [PATCH v2] Vect: Support truncate after .SAT_SUB pattern in zip Thread-Index: AQHaxj5ByypvZyXLtU6zCVxDHn5YAbHXR81ggAB5ioCAABfGIA== Date: Tue, 25 Jun 2024 04:00:56 +0000 Message-ID: References: <20240621035252.742099-1-pan2.li@intel.com> <20240624135510.3509497-1-pan2.li@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: 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: VI1PR08MB5325:EE_|DU0PR08MB8932:EE_|DB5PEPF00014B88:EE_|AS8PR08MB6279:EE_ X-MS-Office365-Filtering-Correlation-Id: 3ea72b96-6388-4dd8-1358-08dc94cb7039 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230037|1800799021|376011|366013|38070700015; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?+qJfCcCHJI/BKbSLlhDHyywCwEqqd7RpR5/6CgQKUy00tEbMWSPFRKY6ic2o?= =?us-ascii?Q?2fQe1Lsi90hkr+XX0HnWSkAE7rncQtRAHxsWiz2jjrHit1w54Ye3cBCDfLg4?= =?us-ascii?Q?6UYK8f0tZkj8N/ul8kTbw0N7OkD2wTl5c6a3p3Vlb/Q6n0o+coqZQdP/fPeh?= =?us-ascii?Q?dQbkX+pFQ/pqnA1GngbM8LY4P91Xn9DXhKcACehZSfYaCUWkDNv/xu+5TX14?= =?us-ascii?Q?eJ5MNhxjhYuWl7DOHlm8NPBJ0uZXZBta08odIrFLtGEHIZdffA878X69OfR4?= =?us-ascii?Q?AjwexWR6GUEeyAvCbbtXmZpaKzCb16FYBVH0j5ojtFEN4KPD+r7Qni3Gsyu9?= =?us-ascii?Q?qeGXhRLarA90ZEhY6KFrIkKR/E0oAADhX/hIUCdcMvzXuDDxOxopcsylSeU8?= =?us-ascii?Q?qi4zbd93CnfNL5FSxwcKmDUlmHYPd4knjNaKMDDSjyuIEKsbhbe5jk+1XBG4?= =?us-ascii?Q?H1tMnJ455gCqOM9t6kL/vmwTh3EF1uUfIG0tdc/Q0Mohvhg9ndk+YyI/Eu3K?= =?us-ascii?Q?DqGfROo56HOgwsR112RQnivuAoW+NaKZURie9Ibmet2eZUAAxwXms156bzqv?= =?us-ascii?Q?3O1e/dDjKYufMo5/nu86CeLOlkOol5ZQIOdkfUlqX/z8N5sj7JrGyhL5VXlf?= =?us-ascii?Q?+6hVMA3sgJnvY34oOXrfy0HIdAWL9F2UijNxu0EXYz3jJAnqb8PnL6Nf+tNY?= =?us-ascii?Q?lIQdrJTHgnxjfLPha+aYvMCtkTBFoAdT7d8ntc6L1mpq2s9fDs6RrDd3jppV?= =?us-ascii?Q?m3Va6WynqdkqVgJp6jsQfvEiTNoc5zTuQI5kUerAe8C6Zb1gm07k8KFv30dD?= =?us-ascii?Q?DoMgNPU3RG1jvJ8GfxadjeDZ2kdGFF87wTG90j4qPElpWafbNfn/BClcJ21X?= =?us-ascii?Q?+CbrDbT6VaH3U4GVEBYfWst8N2ZZRFScVj9cVoa+pbVmusipZGWF6ASdrcgP?= =?us-ascii?Q?0JG9BkEPLGUAHiVQTH2BO7mDzBzddfIfZLmqc4SRvh39ecBjaI6AygwF4tbR?= =?us-ascii?Q?ss79RHTlYbkms2bSHDZOEKCU4ATmV7IPzvAftveE2Voat+7+mx5mZIiF27t0?= =?us-ascii?Q?OvK8+VOR9KhVInSwwWXwLah1fuMpBPJco6cdyLu23JHMB8gI18dX0VQiElzQ?= =?us-ascii?Q?+wk2uStK7tryxnMnewpvwCEeUwEF8o/Qv51UBgRqC7m8dOLOVu4FonSoc4Bf?= =?us-ascii?Q?+A8g8OfccfLP62dvw0nCrIzFYcQsIYT99eoUbZQOQjToAfA6S8ZO2+hBbbNE?= =?us-ascii?Q?gWbbkByLPFmY3ceV/LDhwGSbYaG8TVhPiadv/BEY+xTLgD5NNchm52wuGEv7?= =?us-ascii?Q?0+IdWS8GEH7hvWEyIbqgiw5x?= 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:(13230037)(1800799021)(376011)(366013)(38070700015);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: DU0PR08MB8932 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: DB5PEPF00014B88.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c96be17a-592e-44a8-23ff-08dc94cb6a94 X-Microsoft-Antispam: BCL:0;ARA:13230037|1800799021|36860700010|82310400023|376011|35042699019; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/TK/qxR7R6euldeCrfswiY+hyhZLgA+xwagAm9R/uX7Y2GvY2DPRz0G/m4JR?= =?us-ascii?Q?/J+WcNhDZaDpucN2PBKESloXZI8jDFYveEIKTBHJjzioqLtBvBiNjuOHYsGC?= =?us-ascii?Q?ZZrXgwtc1kv3VvIsUNJzC1jQQJ8/YX7ixIEe40UE8yyC/3ONn45CmBwjI5oP?= =?us-ascii?Q?4/EbydmaS77Y4Rr9meuuDR8yaRGEVpWcH8Ck9oC0oqkZnHH9YgRwraXOlFzH?= =?us-ascii?Q?Q+h/eUAxuwtYPUkvAhf3OrvzJhXeHmQeFqk392p6npsjb85Gh38k4+gox1Si?= =?us-ascii?Q?HrWqD82CoYHnkqSR1x4t5/MWNlYckcuiM7levsJCedS/MDHQfFkFoAJYpb8D?= =?us-ascii?Q?6U1LM1hgYBwBTfTsGP5HALEh+Tr5kfDbACO4ftPLPWhYc+uVlsApYL3XKi3Y?= =?us-ascii?Q?LzwZIOLYEHdy0O91wTYIy1dpMSGZ7YZIZ3dEYhWyC5nHXRkQnUszTS/YTV9C?= =?us-ascii?Q?oMKjFbl/dLFSH4kmsMAqKyR8paKMIKwQt26K1h2xaiHSTQYFaAsQGIOg/Tyi?= =?us-ascii?Q?m1CB123I7g21/xDsrMJOdsPbe8EG7/4HfPifDfQhJSAGgEOEye2xi/GQ6DvV?= =?us-ascii?Q?Dow7bqS7Ohl0/VtlCoa5V3UOrBwgd95jzjTy+OXX8CXPojAbcwhjNtqwduhz?= =?us-ascii?Q?k43lr9CGGaTWhsBwMoAA5YIMa9rliEDTbyR/n7WLF6n47e9TrrHW+fpw+Tm8?= =?us-ascii?Q?uvawPI5hCp5hHfH5hXMvRQxQ9rNP2ZpdMPA5KT3xbNlnKNV5oNLtalAP/4S6?= =?us-ascii?Q?6UM5xaTRxUmMJx9DD24ejs83j6b7mkIUhKFjVumiiX30OLn77VmfoaUlteQq?= =?us-ascii?Q?H45uG6UY6Ua5yFX4tUbmbuh0wqGtDosrtavBAu5pFHLJRpQxQ8aWLMdzK7gF?= =?us-ascii?Q?xM9oJuhtpaBMP20H+ZqwUBXFEs17NmT1SP8RWWmYiIlUYmf4+gvzcEOuwy7P?= =?us-ascii?Q?yxIxk3tBQOf63OMUNx5MZZ4U57pTtcae9Q92fJMnOFi+W/YCdR0YQVpbiXmE?= =?us-ascii?Q?EyiL6QGuVc5fbKDj2ItjeHMgUuExIfniZJyHpJISrTrIvK6nEbhoajLVcpwJ?= =?us-ascii?Q?SkiG/WNK7WZyK5odG1quPQcoDjKW47O5lP31lL7J2AHmcF1L9nqGwqIvzBVA?= =?us-ascii?Q?/3suvaKtGl/lThfRunAADwdwwFPp0azvj4vqWvrRwGwad8LrqpYwDsqzKbYe?= =?us-ascii?Q?GIBuq07xOU9U2NteysRACHH5mrrnGEO1nnw6Wwk/n/aZIrQdlBnihfZhj2DK?= =?us-ascii?Q?+pGZ3lOw4H+pPC6HV7l7N1vHj2XHQjDdvtONNSOadm7OAhtLiBDzLx/vNwsk?= =?us-ascii?Q?1TLIElap6ZxHPty2oNQ/QEcsBNYcYr14NKeCuYwL4PoJMoEe4OfueLySEVcF?= =?us-ascii?Q?I0+TPQU=3D?= 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:(13230037)(1800799021)(36860700010)(82310400023)(376011)(35042699019);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jun 2024 04:01:06.1828 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3ea72b96-6388-4dd8-1358-08dc94cb7039 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: DB5PEPF00014B88.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6279 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,SPF_HELO_PASS,SPF_NONE,TXREP,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 List-Id: > -----Original Message----- > From: Li, Pan2 > Sent: Tuesday, June 25, 2024 3:25 AM > To: Tamar Christina ; gcc-patches@gcc.gnu.org > Cc: juzhe.zhong@rivai.ai; kito.cheng@gmail.com; richard.guenther@gmail.co= m; > jeffreyalaw@gmail.com; pinskia@gmail.com > Subject: RE: [PATCH v2] Vect: Support truncate after .SAT_SUB pattern in = zip >=20 > Thanks Tamar for comments. It indeed benefits the vectorized code, for ex= ample in > RISC-V, we may eliminate some vsetvel insn in loop for widen here. >=20 > > iftmp.0_5 =3D .SAT_SUB ((short unsigned int) a_11, (short unsigned int)= b_12(D)); > > is cheaper than > > iftmp.0_5 =3D (short unsigned int).SAT_SUB (a_11, b_12(D)); >=20 > I am not sure if it has any correctness problem for this transform, take = uint16_t to > uint8_t as example. >=20 > uint16_t a, b; > uint8_t result =3D (uint8_t)(a >=3D b ? a - b : 0); >=20 > Given a =3D 0x100; // 256 > b =3D 0xff; // 255 > For iftmp.0_5 =3D .SAT_SUB ((char unsigned) a, (char unsigned) b) =3D .SA= T_SUB (0, > 255) =3D 0 > For iftmp.0_5 =3D (char unsigned).SAT_SUB (a, b) =3D (char unsigned).SAT_= SUB (256, > 255) =3D 1 >=20 > Please help to correct me if any misunderstanding, thanks again for enlig= htening. Ah, no you're right, those would end up wrong for saturation. Arg.. Sorry = should have though it through more. Tamar. >=20 > Pan >=20 > -----Original Message----- > From: Tamar Christina > Sent: Tuesday, June 25, 2024 4:00 AM > To: Li, Pan2 ; gcc-patches@gcc.gnu.org > Cc: juzhe.zhong@rivai.ai; kito.cheng@gmail.com; richard.guenther@gmail.co= m; > jeffreyalaw@gmail.com; pinskia@gmail.com > Subject: RE: [PATCH v2] Vect: Support truncate after .SAT_SUB pattern in = zip >=20 > Hi, >=20 > > -----Original Message----- > > From: pan2.li@intel.com > > Sent: Monday, June 24, 2024 2:55 PM > > To: gcc-patches@gcc.gnu.org > > Cc: juzhe.zhong@rivai.ai; kito.cheng@gmail.com; richard.guenther@gmail.= com; > > jeffreyalaw@gmail.com; pinskia@gmail.com; Pan Li > > Subject: [PATCH v2] Vect: Support truncate after .SAT_SUB pattern in zi= p > > > > From: Pan Li > > > > The zip benchmark of coremark-pro have one SAT_SUB like pattern but > > truncated as below: > > > > void test (uint16_t *x, unsigned b, unsigned n) > > { > > unsigned a =3D 0; > > register uint16_t *p =3D x; > > > > do { > > a =3D *--p; > > *p =3D (uint16_t)(a >=3D b ? a - b : 0); // Truncate after .SAT_SUB > > } while (--n); > > } > > > > It will have gimple before vect pass, it cannot hit any pattern of > > SAT_SUB and then cannot vectorize to SAT_SUB. > > > > _2 =3D a_11 - b_12(D); > > iftmp.0_13 =3D (short unsigned int) _2; > > _18 =3D a_11 >=3D b_12(D); > > iftmp.0_5 =3D _18 ? iftmp.0_13 : 0; > > > > This patch would like to improve the pattern match to recog above > > as truncate after .SAT_SUB pattern. Then we will have the pattern > > similar to below, as well as eliminate the first 3 dead stmt. > > > > _2 =3D a_11 - b_12(D); > > iftmp.0_13 =3D (short unsigned int) _2; > > _18 =3D a_11 >=3D b_12(D); > > iftmp.0_5 =3D (short unsigned int).SAT_SUB (a_11, b_12(D)); > > >=20 > I guess this is because one branch of the cond is a constant so the > convert is folded in. I was wondering though, can't we just push > in the truncate in this case? >=20 > i.e. in this case we know both types are unsigned and the difference > positive and max value is the max value of the truncate type. >=20 > It seems like folding as a general rule >=20 > _1 =3D *p_10; > a_11 =3D (unsigned int) _1; > _2 =3D a_11 - b_12(D); > iftmp.0_13 =3D (short unsigned int) _2; > _18 =3D a_11 >=3D b_12(D); > iftmp.0_5 =3D _18 ? iftmp.0_13 : 0; > *p_10 =3D iftmp.0_5; >=20 > Into >=20 > _1 =3D *p_10; > a_11 =3D (unsigned int) _1; > _2 =3D ((short unsigned int) a_11) - ((short unsigned int) b_12(D)); > iftmp.0_13 =3D _2; > _18 =3D a_11 >=3D b_12(D); > iftmp.0_5 =3D _18 ? iftmp.0_13 : 0; > *p_10 =3D iftmp.0_5; >=20 > Is valid (though might have missed something). This would negate the nee= d for > this change to the vectorizer and saturation detection > but also should generate better vector code. This is what we do in the ge= neral case > https://godbolt.org/z/dfoj6fWdv > I think here we're just not seeing through the cond. >=20 > Typically lots of architectures have cheap truncation operations, so trun= cating > before saturation means you do the cheap > operation first rather than doing the complex operation on the wider type= . >=20 > That is, >=20 > _2 =3D a_11 - b_12(D); > iftmp.0_13 =3D (short unsigned int) _2; > _18 =3D a_11 >=3D b_12(D); > iftmp.0_5 =3D .SAT_SUB ((short unsigned int) a_11, (short unsigned int) b= _12(D)); >=20 > is cheaper than >=20 > _2 =3D a_11 - b_12(D); > iftmp.0_13 =3D (short unsigned int) _2; > _18 =3D a_11 >=3D b_12(D); > iftmp.0_5 =3D (short unsigned int).SAT_SUB (a_11, b_12(D)); >=20 > after vectorization. Normally the vectorizer will try to do this throug= h over- > widening detection as well, > but we haven't taught ranger about the ranges of these new IFNs (probably > should at some point). >=20 > Cheers, > Tamar >=20 > > The below tests are passed for this patch. > > 1. The rv64gcv fully regression tests. > > 2. The rv64gcv build with glibc. > > 3. The x86 bootstrap tests. > > 4. The x86 fully regression tests. > > > > gcc/ChangeLog: > > > > * match.pd: Add convert description for minus and capture. > > * tree-vect-patterns.cc (vect_recog_build_binary_gimple_call): Add > > new logic to handle in_type is incompatibile with out_type, as > > well as rename from. > > (vect_recog_build_binary_gimple_stmt): Rename to. > > (vect_recog_sat_add_pattern): Leverage above renamed func. > > (vect_recog_sat_sub_pattern): Ditto. > > > > Signed-off-by: Pan Li > > --- > > gcc/match.pd | 4 +-- > > gcc/tree-vect-patterns.cc | 51 ++++++++++++++++++++++++--------------- > > 2 files changed, 33 insertions(+), 22 deletions(-) > > > > diff --git a/gcc/match.pd b/gcc/match.pd > > index 3d0689c9312..4a4b0b2e72f 100644 > > --- a/gcc/match.pd > > +++ b/gcc/match.pd > > @@ -3164,9 +3164,9 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) > > /* Unsigned saturation sub, case 2 (branch with ge): > > SAT_U_SUB =3D X >=3D Y ? X - Y : 0. */ > > (match (unsigned_integer_sat_sub @0 @1) > > - (cond^ (ge @0 @1) (minus @0 @1) integer_zerop) > > + (cond^ (ge @0 @1) (convert? (minus (convert1? @0) (convert1? @1))) > > integer_zerop) > > (if (INTEGRAL_TYPE_P (type) && TYPE_UNSIGNED (type) > > - && types_match (type, @0, @1)))) > > + && TYPE_UNSIGNED (TREE_TYPE (@0)) && types_match (@0, @1)))) > > > > /* Unsigned saturation sub, case 3 (branchless with gt): > > SAT_U_SUB =3D (X - Y) * (X > Y). */ > > diff --git a/gcc/tree-vect-patterns.cc b/gcc/tree-vect-patterns.cc > > index cef901808eb..3d887d36050 100644 > > --- a/gcc/tree-vect-patterns.cc > > +++ b/gcc/tree-vect-patterns.cc > > @@ -4490,26 +4490,37 @@ vect_recog_mult_pattern (vec_info *vinfo, > > extern bool gimple_unsigned_integer_sat_add (tree, tree*, tree (*)(tre= e)); > > extern bool gimple_unsigned_integer_sat_sub (tree, tree*, tree (*)(tre= e)); > > > > -static gcall * > > -vect_recog_build_binary_gimple_call (vec_info *vinfo, gimple *stmt, > > +static gimple * > > +vect_recog_build_binary_gimple_stmt (vec_info *vinfo, stmt_vec_info > stmt_info, > > internal_fn fn, tree *type_out, > > - tree op_0, tree op_1) > > + tree lhs, tree op_0, tree op_1) > > { > > tree itype =3D TREE_TYPE (op_0); > > - tree vtype =3D get_vectype_for_scalar_type (vinfo, itype); > > + tree otype =3D TREE_TYPE (lhs); > > + tree v_itype =3D get_vectype_for_scalar_type (vinfo, itype); > > + tree v_otype =3D get_vectype_for_scalar_type (vinfo, otype); > > > > - if (vtype !=3D NULL_TREE > > - && direct_internal_fn_supported_p (fn, vtype, OPTIMIZE_FOR_BOTH)) > > + if (v_itype !=3D NULL_TREE && v_otype !=3D NULL_TREE > > + && direct_internal_fn_supported_p (fn, v_itype, OPTIMIZE_FOR_BOTH)= ) > > { > > gcall *call =3D gimple_build_call_internal (fn, 2, op_0, op_1); > > + tree in_ssa =3D vect_recog_temp_ssa_var (itype, NULL); > > > > - gimple_call_set_lhs (call, vect_recog_temp_ssa_var (itype, NULL)= ); > > + gimple_call_set_lhs (call, in_ssa); > > gimple_call_set_nothrow (call, /* nothrow_p */ false); > > - gimple_set_location (call, gimple_location (stmt)); > > + gimple_set_location (call, gimple_location (STMT_VINFO_STMT > (stmt_info))); > > + > > + *type_out =3D v_otype; > > > > - *type_out =3D vtype; > > + if (types_compatible_p (itype, otype)) > > + return call; > > + else > > + { > > + append_pattern_def_seq (vinfo, stmt_info, call, v_itype); > > + tree out_ssa =3D vect_recog_temp_ssa_var (otype, NULL); > > > > - return call; > > + return gimple_build_assign (out_ssa, CONVERT_EXPR, in_ssa); > > + } > > } > > > > return NULL; > > @@ -4541,13 +4552,13 @@ vect_recog_sat_add_pattern (vec_info *vinfo, > > stmt_vec_info stmt_vinfo, > > > > if (gimple_unsigned_integer_sat_add (lhs, ops, NULL)) > > { > > - gcall *call =3D vect_recog_build_binary_gimple_call (vinfo, last= _stmt, > > - IFN_SAT_ADD, type_out, > > - ops[0], ops[1]); > > - if (call) > > + gimple *stmt =3D vect_recog_build_binary_gimple_stmt (vinfo, stm= t_vinfo, > > + IFN_SAT_ADD, type_out, > > + lhs, ops[0], ops[1]); > > + if (stmt) > > { > > vect_pattern_detected ("vect_recog_sat_add_pattern", last_stmt); > > - return call; > > + return stmt; > > } > > } > > > > @@ -4579,13 +4590,13 @@ vect_recog_sat_sub_pattern (vec_info *vinfo, > > stmt_vec_info stmt_vinfo, > > > > if (gimple_unsigned_integer_sat_sub (lhs, ops, NULL)) > > { > > - gcall *call =3D vect_recog_build_binary_gimple_call (vinfo, last= _stmt, > > - IFN_SAT_SUB, type_out, > > - ops[0], ops[1]); > > - if (call) > > + gimple *stmt =3D vect_recog_build_binary_gimple_stmt (vinfo, stm= t_vinfo, > > + IFN_SAT_SUB, type_out, > > + lhs, ops[0], ops[1]); > > + if (stmt) > > { > > vect_pattern_detected ("vect_recog_sat_sub_pattern", last_stmt); > > - return call; > > + return stmt; > > } > > } > > > > -- > > 2.34.1