From patchwork Wed Jun 3 15:19:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Bazley X-Patchwork-Id: 136412 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 15F8A4BA2E20 for ; Wed, 3 Jun 2026 15:32:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 15F8A4BA2E20 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KKUye4dF; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KKUye4dF X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::1]) by sourceware.org (Postfix) with ESMTPS id A97054BA23DB for ; Wed, 3 Jun 2026 15:21:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A97054BA23DB 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 A97054BA23DB Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::1 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1780500060; cv=pass; b=T8X70gb8L+m7GJrsPhHbOTRVCqatXaO7QAzujhVceOg/5AImFyoYnbZqOA1WzgGx0VDqs3JNAKM4/qaZNCtrqRQORlNBqECY3ScW5I9PESMrEH5t0UDFgaW0Sn5+9o9JVhBETdC1vFJWhUJ2ezrZZfmxkmkTvzwRBC3fsZEWdl8= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1780500060; c=relaxed/simple; bh=mI5XoQC9Ij4q0GSt2M8YNeZByhbZGOWTADKbkhga+qA=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=SGcNDBEysZx5JLxW2ShDa9kVQ5CFWdG1V5I9ONxvURwKftfeet4M6rpHUt9EPMQBmrbUjqCQoU5h0B11EzJJTvsnHfA00FiYZsQC4O3A/YnNWhGwSoWX0Xnz73nBURFPGQF//tzHYnjubIAfNdaZU90kBUIVQqrWI2XHvaZukSQ= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KKUye4dF; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=KKUye4dF DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A97054BA23DB ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=ggbu5nodSBfnXuCUGfWnqVm9fq++m+9uv+N1vc61tY+zimHRGXk03RJIDcb+BQL8Q0OtKqIl3cTF77XOHsFY6b6MepV2Z2j3iPbHcB4G+qOAKP0CSngMItxGFBcwm4VseEUEUkQPCMlAacJkxQC2IERIKLZtdiwqHXuvUZQfmBwlmtVsH5sHT6kedqtL8mpo1gY5WmIr9le4Y3ANtaJkUDj68flzDtrYxC4L4ouS0Jab+QOA3drrfawium4SZru6YSqYmGgmpRxkdt/JqWn0r1zCL83PS2VvaHn6xqrdS2eQf+q2/eGIFd2u1wp5lsYbAJ2RNaV2HGe0exgmRaLlnw== ARC-Message-Signature: i=2; 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=QQOHbu70dJoLb7VTM0kcQitv2yDJeD/6GqWuUz5jwJY=; b=mH/ZLu/ELGu8XPqBVwEJU24g5aGGZNDJPGHNPT8qUag8oT45GdL/zUnb+DtnISyyvoIkSLaOc8GEehMdxXkQlyKyvegYf2dtTGqJEQHmnDBsaknmdVVyYk7KANv0fMSzIRGQhBD06ciw1oh8YMtDXolLQavEWOWVTev5BNJbMSauYfZva6bCWYiDecdIMqDsGz1m2wzdiYT3qmfOVPNisUPshPj19zCYeCLPg3DXRPQzHkpCRVtdXPx0gtE0dhoID0ei7+922IcrrUV7St7jk25ZHDeIoDJjc6FgdIZ5FsV2FM7IPdqO9JRxLnsSuzWtDNzRe09wx92L+oPiRuKExg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) 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] 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=QQOHbu70dJoLb7VTM0kcQitv2yDJeD/6GqWuUz5jwJY=; b=KKUye4dFfio2n1fIhq39uNaoWYruY4EliSRSQDEBQ6kaUtOduzjIfylEeBK/rMxXGFabwXyTE5Oa8yLJvW0bGxAbxEhWl+mcEm1IFpVYA4b4wZC25nzbIdDaQUeg1a6D/egURYw5uej2Mi14d7KGMgoEEiUfyLmfMzIKkIClRV0= Received: from DB9PR06CA0012.eurprd06.prod.outlook.com (2603:10a6:10:1db::17) by VI1PR08MB10273.eurprd08.prod.outlook.com (2603:10a6:800:1be::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 15:20:49 +0000 Received: from DB5PEPF00014B9F.eurprd02.prod.outlook.com (2603:10a6:10:1db:cafe::24) by DB9PR06CA0012.outlook.office365.com (2603:10a6:10:1db::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 15:20:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) 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 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB5PEPF00014B9F.mail.protection.outlook.com (10.167.8.169) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 15:20:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gNqjwD+er/WAMz68s4bryBnIpd3b0Y2kJDrrCqMtDg/9fgMyebwm16DphYmMvUxjI5m6weJEnFJ5D9Mx16hbk82d/7g3X7RpzHrIQlVAOKWHK6UIA7oUnuONrcGbjhmWKuB/yu3DHZEw43akjJgNBIT4PTHaxAV2M9hGJDiYpj7PZ362Kveeierr7isw00fiQazjRVvVKJHXS/ZffbotrdrVM8Fe1+LrqSBnZ7s+fEDrImJ4jm4EOtI0Vn/7c6i6i78r23Lg9sll04bawnjCC4gjpXUJR2A8H56HgrIpPbE43vNEnBONGL5IZhH+MeezcMiGSC5Wns7uaezbXIhTDw== 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=QQOHbu70dJoLb7VTM0kcQitv2yDJeD/6GqWuUz5jwJY=; b=L9eE0S6VbukSEY95MowG9VbX+Y3ZYATrKQB+h0Frj8EO2TVfNmfFaoLsjIWV/sa3pqHVypmh41KWhKLZfQ0hZyiG9Ei8aJKShKaB/OV4JVcTbC29ed710zXDUdvjUT5FEkGeueXQBwvnxmXcfXWltXCIyWzcYBB74xhmeJVVvAprnLqlYRuw+zgQ6BBp9dUn+3FPe9YNd1/6TmK/noyfiBhBcE0QwJ5qfhkpt30WR+i+qpTTJUlIwm2l+1CaDjQp/QXu2mR1lg157PZ+d90uY9LcJ+JLg1+QIPaVRJJ2PIIBlRrh64KcObOJ3F7o5SLenBeZbqJlBpRGprwg4oU8Jg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) 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=QQOHbu70dJoLb7VTM0kcQitv2yDJeD/6GqWuUz5jwJY=; b=KKUye4dFfio2n1fIhq39uNaoWYruY4EliSRSQDEBQ6kaUtOduzjIfylEeBK/rMxXGFabwXyTE5Oa8yLJvW0bGxAbxEhWl+mcEm1IFpVYA4b4wZC25nzbIdDaQUeg1a6D/egURYw5uej2Mi14d7KGMgoEEiUfyLmfMzIKkIClRV0= Received: from DB7PR05CA0008.eurprd05.prod.outlook.com (2603:10a6:10:36::21) by DB9PR08MB11404.eurprd08.prod.outlook.com (2603:10a6:10:60e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.7; Wed, 3 Jun 2026 15:19:43 +0000 Received: from DU6PEPF00009527.eurprd02.prod.outlook.com (2603:10a6:10:36:cafe::6d) by DB7PR05CA0008.outlook.office365.com (2603:10a6:10:36::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.92.7 via Frontend Transport; Wed, 3 Jun 2026 15:19:43 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by DU6PEPF00009527.mail.protection.outlook.com (10.167.8.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.92.5 via Frontend Transport; Wed, 3 Jun 2026 15:19:43 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX03.Arm.com (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Wed, 3 Jun 2026 15:19:35 +0000 Received: from ip-10-248-139-165.eu-west-1.compute.internal (10.248.139.165) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Wed, 3 Jun 2026 15:19:35 +0000 From: Christopher Bazley To: CC: , , , Christopher Bazley Subject: [PATCH v11 05/12] New parameter for vect_maybe_update_slp_op_vectype Date: Wed, 3 Jun 2026 15:19:17 +0000 Message-ID: <20260603151924.53706-6-chris.bazley@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260603151924.53706-1-chris.bazley@arm.com> References: <20260603151924.53706-1-chris.bazley@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU6PEPF00009527:EE_|DB9PR08MB11404:EE_|DB5PEPF00014B9F:EE_|VI1PR08MB10273:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b1421b4-882f-43ea-4a14-08dec183b11d x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|36860700016|82310400026|376014|6133799003|22082099003|18002099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info-Original: z7QthNlKmPLxGSO/OQU/linfjBCWmuHgABstQaB+rTBxSBt2CR3zKA58Are86mQpd1O50MankNGVhHmVcCWGlM1wRxK0KLBr1P+iNp/NWmEVqn9xsFd5S8+z7n1m2KojQVe02FbE+SFuTlL9yt0Kum7ATjyuDb6PO8l7pa1SdN5k7/KnYZtTGqO3quDFoVaGZ+7Ul1+fFwyp4yw3MzxNsNiei4lvNYLRTzr5Ts4B07clLmTxEjHpOKXQtVEpc2/E01KH6RSW8ML4yG/iPhDdn/iypjmyNxCLXdKCAoI7FlH17VJGHM2Lss0MoePNxJAqQ+UWkI+liJovzjLL55KWUV6Je/PvYz+BZKQtm9cZ0D3j0MI3zyWwVvVszMMyP470JacgaJJ9gZ8waYVYN2my76wWWYKaUKCPRZaJ5OWOo5P6KqSI2mBkQByPZOfuJ82bCSjPHxKpknxsxEeR0/xY4ZpjQoTBB8Di+nasD83FV3wdGpkLe04GcYkGe2EcT9yD3tAGYZ1xFcPrPN18ynMqjLKyIBWOJNIIXBF8YLAdh2QJNaj68spuW6nGQXzsshMluuXUpYHCUKvoLQj9EyydbBTPP3csS0bwX8vp2/wYBW4CVa/835CFZxOt18NSjRIHgcvXMuNpJ1/vPrLeqZD2pacBf9f2XvE6X0sFHJJTNOcDvyNimgyzqtUcIrDG8WbbOnuk8HN3/5+EFsY3qQobNi96tuvefA8I4m0qFflkDis= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700016)(82310400026)(376014)(6133799003)(22082099003)(18002099003)(11063799006)(56012099006); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: MBb4GICcwlWsLLLPRYHFGx3BuqdkK+542PxLsj+9l32tlqynzkVMubY/M0oMzFiHra284Do0ypgpcRH1b2foCrZEJbE2RbRVQQut1+0MdFwU5Qb4C337+AXjj6Mmdp1b67R4uSb3jQANC4wzmvIuPtT7yQxtArlrQLZvdL5tB9yt1AeuD+2pGWflIWIXVLSz46ONat2q0wFEu48U5h7B0htaSXZj/lnraeMFr/Cgy/PozJ7KyCHePMPclr0LPhmE8oJfS86PYtUpkbI0BoRHDOzt4ez5oD5XDEUSsfcDVm5ImvjVirrSY5qwbOYMyRcYWPIIRWW+w2XIJVnjNyZXlg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB11404 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5PEPF00014B9F.eurprd02.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c662dd79-75c5-4eb3-4ae2-08dec18389d0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|35042699022|36860700016|14060799003|82310400026|376014|6133799003|11063799006|22082099003|18002099003|56012099006; X-Microsoft-Antispam-Message-Info: RC0/2Hcc7K21ftZcGrIUPhx2rEmH31Z8dvISqtg7p5ne2MR4QRJZoCiUHie4Osjtkjbj5a8gCH5u0GHI4om3Ss0WWyJmaeQvaqt2nKDpj/QsIhsrdt1B4ePuc3C9etfOcwFuxb7l4tmh0CMYofGUJw8PSrLZN1ZFrYHmTIXIrPoa/a0DSZKh29AbouK5G7ii/2oX4RY1TGACwGF8XyN4i0vAW1PonfefqfiWjJRoBISv3djV10uEtj+KARnrP74PWusgts13loVUgQ123RsrLkPJ0p+LfrbHQiUy1nk1d/LF27Z4B1tmwBD363iMjCvDe0yg36QFrOo1o7owChZB2vln9m8y/yyizblbV3vnnyNKEpwxNikjb6pdrZts6FZdT1M5FgJgq3zDOOheK0+0Qeo12TyVWRJVDGpcQeDZpH5YUH3uLifpVIiiiM0tEijvB3ZWRu37U9YvMIhCjkB6KxZPJAKppxnaFKElHe8/eoLCKt5QimHfbBxQOsqtl+JsVhrN3rnesCXKmPeolBLY8AZMjAY1Z4dHPBkZoh7IFYhldRIJ8/I5waCtjSqJha7lwZtQqJY+IDKJMJpH+I7s8PK3luNq+JNRYnW4MRx2ZuLbzc9PdS0Q9GyCLLO/CcK+b6eemQ2V/q3teT3H3XFIyYCDfe/2rkR3GxagVDOn9gX6MdzWllrNc7bwpasHykZ0mnav3IzL90MiLwJ/hJPC1qqIf/8Mhi4tCCO3TfzKKA0= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(35042699022)(36860700016)(14060799003)(82310400026)(376014)(6133799003)(11063799006)(22082099003)(18002099003)(56012099006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7O38U/o/MA7urtHh3wMRonD0inw46kwGQBggSq9KyHSPYHjsHsrBzAzGUK3dk9WO3XugrOvbZ3/8X2kAgO+nWxBRioX3f4eRbbT2v/dvOTSAHf6GruoR6Z2RzrwTdX30QOqZ6e4Be/syzlvNXc5wMwMXZ0z0n3gFvXSHdeHzBbqnJHRCqEJ1ChkjFCO4VOA/CkDspH1GWsohUuHMY2LOZ1UOZXrECjSX67uyPDduawhQHKH3az/1yssH5jOijYqxMG6VqiymhoW5LPlO/47qurej1VGRxAxN2Ea3pRHwVXraa4AE+vRtQQTqKw/mG5plg3pkOW3tshtTjiWLYmelmy4D56xVsS58P4z7c5DkwScwY0mHmhYJTbT2oaxEAbdMpytikJoEAapMmDghZjn17PSTVTi21OfNK2UBcLYRC7FgU0/6WYt5jOMf5hGjPvoP X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2026 15:20:48.8452 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4b1421b4-882f-43ea-4a14-08dec183b11d X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB5PEPF00014B9F.eurprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB10273 X-Spam-Status: No, score=-10.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, URIBL_BLOCKED shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on 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~patchwork=sourceware.org@gcc.gnu.org Update all callers to pass a pointer to the vectorizer state into this helper function. Its value is temporarily unused but will be required for BB SLP with predicated tails. gcc/ChangeLog: * tree-vect-loop.cc (vectorizable_lane_reducing): Pass loop_vinfo to vect_maybe_update_slp_op_vectype. (vectorizable_reduction): As above. (vectorizable_lc_phi): As above. (vectorizable_phi): Pass vinfo to vect_maybe_update_slp_op_vectype. (vectorizable_recurr): Pass loop_vinfo to vect_maybe_update_slp_op_vectype. (vectorizable_induction): As above. * tree-vect-slp.cc (vectorizable_slp_permutation_1): Pass vinfo to vect_maybe_update_slp_op_vectype. * tree-vect-stmts.cc (vectorizable_bswap): As above. (vectorizable_call): As above. (vectorizable_simd_clone_call): As above. (vectorizable_conversion): As above. (vectorizable_assignment): As above. (vectorizable_shift): As above. (vectorizable_operation): As above. (vectorizable_store): As above. (vectorizable_load): As above. (vectorizable_condition): As above. (vectorizable_comparison_1): As above. (vect_maybe_update_slp_op_vectype): Update definition to accept a parameter of type vec_info *. This is preparatory: the the argument is currently unused. * tree-vectorizer.h (vect_maybe_update_slp_op_vectype): Update declaration to accept a parameter of type vec_info *. --- gcc/tree-vect-loop.cc | 20 ++++++++------- gcc/tree-vect-slp.cc | 2 +- gcc/tree-vect-stmts.cc | 57 ++++++++++++++++++++++-------------------- gcc/tree-vectorizer.h | 2 +- 4 files changed, 43 insertions(+), 38 deletions(-) diff --git a/gcc/tree-vect-loop.cc b/gcc/tree-vect-loop.cc index 51e7f05100d..6d602c67108 100644 --- a/gcc/tree-vect-loop.cc +++ b/gcc/tree-vect-loop.cc @@ -6843,7 +6843,7 @@ vectorizable_lane_reducing (loop_vec_info loop_vinfo, stmt_vec_info stmt_info, return false; } - if (!vect_maybe_update_slp_op_vectype (slp_op, vectype)) + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, slp_op, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -6980,7 +6980,7 @@ vectorizable_reduction (loop_vec_info loop_vinfo, unsigned j; slp_tree child; FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (slp_node), j, child) - if (!vect_maybe_update_slp_op_vectype (child, + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, child, SLP_TREE_VECTYPE (slp_node))) { if (dump_enabled_p ()) @@ -7113,7 +7113,7 @@ vectorizable_reduction (loop_vec_info loop_vinfo, vectype_op = get_vectype_for_scalar_type (loop_vinfo, type_op); if (!vectype_op - || !vect_maybe_update_slp_op_vectype (op_node, + || !vect_maybe_update_slp_op_vectype (loop_vinfo, op_node, vectype_op)) return false; } @@ -7814,7 +7814,8 @@ vectorizable_reduction (loop_vec_info loop_vinfo, if (single_defuse_cycle || reduction_type == FOLD_LEFT_REDUCTION) for (i = 0; i < (int) op.num_ops; i++) - if (!vect_maybe_update_slp_op_vectype (slp_op[i], vectype_op[i])) + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, slp_op[i], + vectype_op[i])) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -8512,7 +8513,8 @@ vectorizable_lc_phi (loop_vec_info loop_vinfo, /* Deal with copies from externs or constants that disguise as loop-closed PHI nodes (PR97886). */ - if (!vect_maybe_update_slp_op_vectype (SLP_TREE_CHILDREN (slp_node)[0], + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, + SLP_TREE_CHILDREN (slp_node)[0], SLP_TREE_VECTYPE (slp_node))) { if (dump_enabled_p ()) @@ -8588,7 +8590,7 @@ vectorizable_phi (bb_vec_info vinfo, "PHI node with unvectorized backedge def\n"); return false; } - else if (!vect_maybe_update_slp_op_vectype (child, vectype)) + else if (!vect_maybe_update_slp_op_vectype (vinfo, child, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -8777,7 +8779,7 @@ vectorizable_recurr (loop_vec_info loop_vinfo, stmt_vec_info stmt_info, unsigned j; slp_tree child; FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (slp_node), j, child) - if (!vect_maybe_update_slp_op_vectype (child, vectype)) + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, child, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -9660,8 +9662,8 @@ vectorizable_induction (loop_vec_info loop_vinfo, unsigned j; slp_tree child; FOR_EACH_VEC_ELT (SLP_TREE_CHILDREN (slp_node), j, child) - if (!vect_maybe_update_slp_op_vectype - (child, SLP_TREE_VECTYPE (slp_node))) + if (!vect_maybe_update_slp_op_vectype (loop_vinfo, child, + SLP_TREE_VECTYPE (slp_node))) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, diff --git a/gcc/tree-vect-slp.cc b/gcc/tree-vect-slp.cc index f91d3e723ec..1850af4e753 100644 --- a/gcc/tree-vect-slp.cc +++ b/gcc/tree-vect-slp.cc @@ -11458,7 +11458,7 @@ vectorizable_slp_permutation_1 (vec_info *vinfo, gimple_stmt_iterator *gsi, FOR_EACH_VEC_ELT (children, i, child) { if ((SLP_TREE_DEF_TYPE (child) != vect_internal_def - && !vect_maybe_update_slp_op_vectype (child, op_vectype)) + && !vect_maybe_update_slp_op_vectype (vinfo, child, op_vectype)) || !types_compatible_p (SLP_TREE_VECTYPE (child), op_vectype) || !types_compatible_p (TREE_TYPE (vectype), TREE_TYPE (op_vectype))) { diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc index 1cfa2177add..cd3ba6fa1cb 100644 --- a/gcc/tree-vect-stmts.cc +++ b/gcc/tree-vect-stmts.cc @@ -3469,7 +3469,7 @@ vectorizable_bswap (vec_info *vinfo, if (cost_vec) { - if (!vect_maybe_update_slp_op_vectype (slp_op[0], vectype_in)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op[0], vectype_in)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -3831,7 +3831,7 @@ vectorizable_call (vec_info *vinfo, if (cost_vec) /* transformation not required. */ { for (i = 0; i < nargs; ++i) - if (!vect_maybe_update_slp_op_vectype (slp_op[i], + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op[i], vectypes[i] ? vectypes[i] : vectype_in)) { @@ -4550,7 +4550,8 @@ vectorizable_simd_clone_call (vec_info *vinfo, stmt_vec_info stmt_info, if (cost_vec) /* transformation not required. */ { for (unsigned i = 0; i < nargs; ++i) - if (!vect_maybe_update_slp_op_vectype (slp_op[i], arginfo[i].vectype)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op[i], + arginfo[i].vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -5817,8 +5818,8 @@ vectorizable_conversion (vec_info *vinfo, if (cost_vec) /* transformation not required. */ { - if (!vect_maybe_update_slp_op_vectype (slp_op0, vectype_in) - || !vect_maybe_update_slp_op_vectype (slp_op1, vectype_in)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op0, vectype_in) + || !vect_maybe_update_slp_op_vectype (vinfo, slp_op1, vectype_in)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -6171,7 +6172,7 @@ vectorizable_assignment (vec_info *vinfo, if (cost_vec) /* transformation not required. */ { - if (!vect_maybe_update_slp_op_vectype (slp_op, vectype_in)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op, vectype_in)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -6500,13 +6501,13 @@ vectorizable_shift (vec_info *vinfo, if (cost_vec) /* transformation not required. */ { - if (!vect_maybe_update_slp_op_vectype (slp_op0, vectype) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op0, vectype) || ((!scalar_shift_arg || dt[1] == vect_internal_def) - && (!incompatible_op1_vectype_p - || dt[1] == vect_constant_def) - && !vect_maybe_update_slp_op_vectype - (slp_op1, - incompatible_op1_vectype_p ? vectype : op1_vectype))) + && (!incompatible_op1_vectype_p || dt[1] == vect_constant_def) + && !vect_maybe_update_slp_op_vectype (vinfo, slp_op1, + incompatible_op1_vectype_p + ? vectype + : op1_vectype))) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -6932,9 +6933,9 @@ vectorizable_operation (vec_info *vinfo, } /* Put types on constant and invariant SLP children. */ - if (!vect_maybe_update_slp_op_vectype (slp_op0, vectype) - || !vect_maybe_update_slp_op_vectype (slp_op1, vectype) - || !vect_maybe_update_slp_op_vectype (slp_op2, vectype)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_op0, vectype) + || !vect_maybe_update_slp_op_vectype (vinfo, slp_op1, vectype) + || !vect_maybe_update_slp_op_vectype (vinfo, slp_op2, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -8408,9 +8409,9 @@ vectorizable_store (vec_info *vinfo, vls_type, group_size, &ls, mask_node); - if (!vect_maybe_update_slp_op_vectype (op_node, vectype) + if (!vect_maybe_update_slp_op_vectype (vinfo, op_node, vectype) || (mask_node - && !vect_maybe_update_slp_op_vectype (mask_node, + && !vect_maybe_update_slp_op_vectype (vinfo, mask_node, mask_vectype))) { if (dump_enabled_p ()) @@ -8847,7 +8848,7 @@ vectorizable_store (vec_info *vinfo, above only handles the mask and the first store operand node. */ for (slp_tree child : SLP_TREE_CHILDREN (slp_node)) if (child != mask_node - && !vect_maybe_update_slp_op_vectype (child, vectype)) + && !vect_maybe_update_slp_op_vectype (vinfo, child, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -10044,7 +10045,7 @@ vectorizable_load (vec_info *vinfo, } if (mask_node - && !vect_maybe_update_slp_op_vectype (mask_node, + && !vect_maybe_update_slp_op_vectype (vinfo, mask_node, mask_vectype)) { if (dump_enabled_p ()) @@ -12392,13 +12393,14 @@ vectorizable_condition (vec_info *vinfo, || !expand_vec_cond_expr_p (vectype, vec_cmp_type)))) return false; - if (!vect_maybe_update_slp_op_vectype (SLP_TREE_CHILDREN (slp_node)[0], + if (!vect_maybe_update_slp_op_vectype (vinfo, + SLP_TREE_CHILDREN (slp_node)[0], comp_vectype) || (op_adjust == 1 - && !vect_maybe_update_slp_op_vectype - (SLP_TREE_CHILDREN (slp_node)[1], comp_vectype)) - || !vect_maybe_update_slp_op_vectype (then_slp_node, vectype) - || !vect_maybe_update_slp_op_vectype (else_slp_node, vectype)) + && !vect_maybe_update_slp_op_vectype ( + vinfo, SLP_TREE_CHILDREN (slp_node)[1], comp_vectype)) + || !vect_maybe_update_slp_op_vectype (vinfo, then_slp_node, vectype) + || !vect_maybe_update_slp_op_vectype (vinfo, else_slp_node, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -12841,8 +12843,8 @@ vectorizable_comparison_1 (vec_info *vinfo, tree vectype, } /* Put types on constant and invariant SLP children. */ - if (!vect_maybe_update_slp_op_vectype (slp_rhs1, vectype) - || !vect_maybe_update_slp_op_vectype (slp_rhs2, vectype)) + if (!vect_maybe_update_slp_op_vectype (vinfo, slp_rhs1, vectype) + || !vect_maybe_update_slp_op_vectype (vinfo, slp_rhs2, vectype)) { if (dump_enabled_p ()) dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, @@ -14090,7 +14092,7 @@ vect_is_simple_use (vec_info *vinfo, slp_tree slp_node, for example when conflicting vector types are present. */ bool -vect_maybe_update_slp_op_vectype (slp_tree op, tree vectype) +vect_maybe_update_slp_op_vectype (vec_info *vinfo, slp_tree op, tree vectype) { if (!op || SLP_TREE_DEF_TYPE (op) == vect_internal_def) return true; @@ -14104,6 +14106,7 @@ vect_maybe_update_slp_op_vectype (slp_tree op, tree vectype) && SLP_TREE_DEF_TYPE (op) == vect_external_def && SLP_TREE_LANES (op) > 1) return false; + (void) vinfo; /* FORNOW */ SLP_TREE_VECTYPE (op) = vectype; return true; } diff --git a/gcc/tree-vectorizer.h b/gcc/tree-vectorizer.h index f79f04ff8ac..62f6ad320f0 100644 --- a/gcc/tree-vectorizer.h +++ b/gcc/tree-vectorizer.h @@ -2534,7 +2534,7 @@ extern bool vect_is_simple_use (vec_info *, slp_tree, unsigned, tree *, slp_tree *, enum vect_def_type *, tree *, stmt_vec_info * = NULL); -extern bool vect_maybe_update_slp_op_vectype (slp_tree, tree); +extern bool vect_maybe_update_slp_op_vectype (vec_info *, slp_tree, tree); extern tree perm_mask_for_reverse (tree); extern bool supportable_widening_operation (code_helper, tree, tree, bool, code_helper*, code_helper*,