{"id":2175757,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175757/?format=json","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/1.0/projects/17/?format=json","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":"<20251218211109.3562-5-chris.bazley@arm.com>","date":"2025-12-18T21:11:02","name":"[v7,04/10] Refactor check_load_store_for_partial_vectors","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"404988c49c691511ed37c7759f33f9bb5f3fb21a","submitter":{"id":89471,"url":"http://patchwork.ozlabs.org/api/1.0/people/89471/?format=json","name":"Christopher Bazley","email":"Chris.Bazley@arm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20251218211109.3562-5-chris.bazley@arm.com/mbox/","series":[{"id":485915,"url":"http://patchwork.ozlabs.org/api/1.0/series/485915/?format=json","date":"2025-12-18T21:10:58","name":"Extend BB SLP vectorization to use predicated tails","version":7,"mbox":"http://patchwork.ozlabs.org/series/485915/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175757/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=pbkXgl5m;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=pbkXgl5m;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=38.145.34.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=pbkXgl5m;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=pbkXgl5m","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=40.107.159.15"],"Received":["from vm01.sourceware.org (vm01.sourceware.org [38.145.34.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 4dXNmY2hkjz1xpw\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 08:17:49 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 6B5A44BA2E31\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 21:17:47 +0000 (GMT)","from OSPPR02CU001.outbound.protection.outlook.com\n (mail-norwayeastazon11013015.outbound.protection.outlook.com [40.107.159.15])\n by sourceware.org (Postfix) with ESMTPS id 61EC04BA2E05\n for <gcc-patches@gcc.gnu.org>; Thu, 18 Dec 2025 21:12:41 +0000 (GMT)","from DU2PR04CA0352.eurprd04.prod.outlook.com (2603:10a6:10:2b4::23)\n by GV1PR08MB7705.eurprd08.prod.outlook.com (2603:10a6:150:50::17)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec\n 2025 21:12:34 +0000","from DU2PEPF00028D12.eurprd03.prod.outlook.com\n (2603:10a6:10:2b4:cafe::58) by DU2PR04CA0352.outlook.office365.com\n (2603:10a6:10:2b4::23) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,\n 18 Dec 2025 21:12:34 +0000","from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DU2PEPF00028D12.mail.protection.outlook.com (10.167.242.26) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9412.4\n via Frontend Transport; Thu, 18 Dec 2025 21:12:33 +0000","from DU7P194CA0016.EURP194.PROD.OUTLOOK.COM (2603:10a6:10:553::19)\n by PR3PR08MB5578.eurprd08.prod.outlook.com (2603:10a6:102:83::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.7; Thu, 18 Dec\n 2025 21:11:30 +0000","from DB1PEPF0003922F.eurprd03.prod.outlook.com\n (2603:10a6:10:553:cafe::2) by DU7P194CA0016.outlook.office365.com\n (2603:10a6:10:553::19) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,\n 18 Dec 2025 21:11:29 +0000","from nebula.arm.com (172.205.89.229) by\n DB1PEPF0003922F.mail.protection.outlook.com (10.167.8.102) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9412.4 via Frontend Transport; Thu, 18 Dec 2025 21:11:30 +0000","from AZ-NEU-EX04.Arm.com (10.240.25.138) 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; Thu, 18 Dec\n 2025 21:11:29 +0000","from ip-10-248-139-165.eu-west-1.compute.internal (10.248.139.165)\n by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29\n via Frontend Transport; Thu, 18 Dec 2025 21:11:29 +0000"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 6B5A44BA2E31","OpenDKIM Filter v2.11.0 sourceware.org 61EC04BA2E05"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 61EC04BA2E05","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 61EC04BA2E05","ARC-Seal":["i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1766092361; cv=pass;\n b=E0M9xogOO7zMb9NgC1TkIPkXzIl2FWQ2LN0xkvyHjLwa50Uf5OSB5OsfaKn8yw33BEArIDlK73eHRileaVACGxFV2HEvqFpRXp5zPUzTxvjl1x2k3tKg2p2/0lBvarwhs0y8r1cNE9f2OPHEK5Y0PXcMO4fJE7oBF8LBmQ1FEHA=","i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=czQF9EaSXq4Fj1cm7D9Z1pz3chsBQST5BtQfS+mUWHa1Y+0QukN6GDf8+j4lOdvMKahK5jkfN83nALZp0s2J0q8zMFEQukJ6/IiHtRMzce5zskAtZ4UmgZRCmQFDotxZDyTeCHfzQQR3QTggrM0lC6ghQV7jbqA1d/G0ucMiloeZ4MHm8/KwDNPdcCZ9tEPtdz2zJjvpIAVoK37IHn16MMaPNQL3/frsQpjnpGU0Nhn+ae4VUGQ0VbvkAOaIArxDVMWNuSmSJ0n/W7kmA0NRCo+DlBfHDc3SvioKqYdqgJQW7aKoB7/uGeBz3fZH6rnxmB/cJDN62bH26lkDRfNH3Q==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=xCNXgjbgpi8DUUGYeZmIt1eYFCaehoIz22sVMU89HawxlUbyZSsMHM9/bLVmnkbdurUURX1BOoC+iiImYXmDZQCEQ2LkXdT5ldQSghHtPfkwNO96P8H/ZwEbnnUrx5OdenNiRpNAC6M2N+8YPNJuOdC/PDhpSjejS1jaITn7W6pXLd/bFRtl4bsG6DU6R7T5FzieA1t6pGrYV7I8WjkYWjtyS14HaJiFWD1cUfScXkf0+7RCFKjjvvMfsv6vmXILv17qYBmkT55ZLaU8UU/vfBKEd3k+AIl0ycOlEOGLq/UUhmXRPQRN/hZH8ZKGgJrTMKvb1IUD34BQNGVIchKhmw=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1766092361; c=relaxed/simple;\n bh=vhIs/BwANo2TGQkh+aIblhNg+e0PKTXU+Ja7uXvC8XM=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=inSNb4WmaQUA4Kfec37lC+AhWqB1OOgcBkc/VII1iqhGWllVRIAoTY4PPrP6VyPgDbG9+XRm45lERkKXEftfFho8q52eF20ak6nLee9HjqT6a24WayenOVXX2azeZ/2WstcxyRnQZRswaolgnizRjFAOrVkC24VHptiR6/V4QOE=","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=Ke8uxblgaM5VdPs18Vp2czKisrzgo9vg+R7J6b2uyow=;\n b=zW5DlY47nzP4DHjkGQYJ3qOmI0SSowzRSgwPXaH64wNdK5Fi/5X0dWFKDVEGp7OAM6CebDZ8YDT3OHxqeylE4L0QB/51EcIGkQaIqd76VgZZjdZ8IeXlMVjsECoHldM8L63COFBU4Bxf0myoQk/ZxdKlrJfJkDQWksd1HRkRdsoYNW8F4kZncJ0n/dG8sPdz7syE0RTv+DdSOZWcTSZVZrb70RWVIN+M+1P3wrezKXSCSblDZ8YNyqmYgC0zOynYxCckAbYAhC5hSgjDymupmp8ZTOBuck5Xq75lxhmbedH8T/v1Olz2rAv3fJQ1wfJJGCLkPs5dJvDTv92OP4/DTg==","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=Ke8uxblgaM5VdPs18Vp2czKisrzgo9vg+R7J6b2uyow=;\n b=pvfQ+EKzW9Qh2JCybXeFQGb+JTAgmbLZJXrhnbdmX/z0fDxa0eIzy/cjc3+xjGyQ5mH2omfZhgnFiK0wjXwQykCXTV904tzuRtT5O+Kl8wTyMly5sr7LMrFvq2TcrINnJrwfAwZM1/lq0YjvX0NCKfMA7xZonP+rABvdxnpOAmtkHxZo2fXYZAA0SXwyv1JjggZ+RBDDrlwOgIkcp4NMwSlk6B7kRv+B2IUWeZ2ef78uDdNTzSG6zIng/3567xAXfiwpc/3w/scgGgx+KhOCYkwuHAsam7yVm8RaEIF5abF3FVr5OR/9Ibe07EuoIVFCUpzMMW1LB/RKjFJrBgApvQ=="],"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=Ke8uxblgaM5VdPs18Vp2czKisrzgo9vg+R7J6b2uyow=;\n b=pbkXgl5myFUKpJEiEfkC9kkh7NkUtlYeCES6QQxH2iSZ/ibuNfj0Mxflflv36ow1DNodYOE6TwYFPY8iVXTmRFs3pBit6HMsvxZT5kjB+ft+4JrPVvF4SNTmHDRe04zoLaY+g2tCxvgyC36o41phwLxvrT/QS8He0JCTA6B22pw=","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=Ke8uxblgaM5VdPs18Vp2czKisrzgo9vg+R7J6b2uyow=;\n b=pbkXgl5myFUKpJEiEfkC9kkh7NkUtlYeCES6QQxH2iSZ/ibuNfj0Mxflflv36ow1DNodYOE6TwYFPY8iVXTmRFs3pBit6HMsvxZT5kjB+ft+4JrPVvF4SNTmHDRe04zoLaY+g2tCxvgyC36o41phwLxvrT/QS8He0JCTA6B22pw="],"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":"Christopher Bazley <chris.bazley@arm.com>","To":"<gcc-patches@gcc.gnu.org>","Subject":"[PATCH v7 04/10] Refactor check_load_store_for_partial_vectors","Date":"Thu, 18 Dec 2025 21:11:02 +0000","Message-ID":"<20251218211109.3562-5-chris.bazley@arm.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20251218211109.3562-1-chris.bazley@arm.com>","References":"<20251218211109.3562-1-chris.bazley@arm.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-EOPAttributedMessage":"1","X-MS-TrafficTypeDiagnostic":"\n DB1PEPF0003922F:EE_|PR3PR08MB5578:EE_|DU2PEPF00028D12:EE_|GV1PR08MB7705:EE_","X-MS-Office365-Filtering-Correlation-Id":"17b7a684-01af-4381-cca5-08de3e7a298e","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|36860700013|376014;","X-Microsoft-Antispam-Message-Info-Original":"\n CDC21Iwa6mI4Vm+O4vE+6I104rJXGfyyT9n3vzWH4BAao1eQI1ZLEJR32irI4uOheWDqLYq2LEr2gEzHdTeTDmk7Ca00BK7j30dCskc9qYVuvPAvHtla0K/rztytERPsu3avg+uYSCTaR/Q5BnIHlVn7hNEx9ZvYIT08Kz8dv86USS8mBQY8mkCkSDxokl2X60QZe85vTK2K1kCCSaq8gGnEhGGhnxfnfIA7tgv24CFIEldVejBmDILoWYCNqZFrGDionC7m9IspsBTsW4iAjKWQtRatPJzC76U9JyebK0D0AaPS7Ry65XkTjRTUuDg3aQjYQX+T0AtamoTVeS6UkNuXME+3Bg6Vmm/g2VMbFA9iMUBtNHDzssDEzAXLTo/W75Gt0SMHaNBnCDUQRVgLD2/A6T234ZaXZQW7hUJyyFgjysROwg+KjLcjjBw2zdguKx7w3XEDXwN0bGFwiqid8Ijm2Qe1tt9FQ6dlsZM7lymgKmcobsrJS1B5eQO/z2BTKM/1c1YGjNkH/pB/p3LUKMDtLBfAIxxO/bSxrnuVRv1HKwpJ3aUouHCCGMNoP2XAFv3QgPfzQmCjckN/6ErTCVF7Ucsu2s1l/OUBkaa+DajDFp5WWynCQndcEUEn+WtT48aJb1xOZkgvCAKQeP9CJgqEpNzKcXv19wDcUDGy6UM+91N5AafbtX/9ZEM6iQtcD6svhAemkaEi5hbxOldTKglT7d74AhfjdBL8ZHaS3zRB7w4jC/6iLHucirXNWNfE6t2Jz8+W4HHCCc42F+GbDmapuBeaC7zNgG75cQGo+ditKTROFO87O/zmmwmVQeJSW75EeWmJmCJG9uA0qozr6BysD6oHFj48Htmn7H9jljPBU8JfSK+rDkC+zbde/wlOo9zKJvalaev18NYGMm3RkGuveLCUICTT/Pb9E00TPbZ/rL8OyuR/gL1eiop7kUYzl8aNXN/c/pGlRaNJ8ZpHKu9PS+5QU/MBxz71v/NxWd4iLbUEz6aGA5SwtTqscIRSFElWsWtIC/8EPgLG9SmInQ8YHrjhVlEkoq8A7Ejg1cd2nrjxplurr75d8rsjGv3iarkFG1+QG7XilHaI24/m0vc1UmiYfbEamjCTvXXSZtk+gkq61SLi/CiqExcgI20Q7S9HIv95swDkJ6uz98oyRAcC6qRol4wgjcH7Qv5dU9rzyexLm583t5t+VVU67CkiDZAJAvQy1NkVKnYj5SBFBOtKTjrzeGrJosR+nBJG4+cI4H1tL87J3PNVANesG2SkVwwMFnOj/a9WzWWosIM643K5bUvS5bgetIoBWAXy9uj7mYFJOcJRHIsM4p7BdX37LfqKoaZfGro9IMqodH3bU/rdS19gIPZJ1I05hYpSKV4kmRKLH1Jm0D6fB9Ngz6y2F955VtFy92+Es/sZ2viAXVeEjNstTtE2GHoNzYbGHJbUTwy47uF9BAQgL7nLo5ElJ3CBkfR/Gg5K9lp3U/BVF8DiZPCJ7ehicebDXdwKqLosPGPIB2wht15WkVBHVjcNvJC73ilpI3Sq/pQhTkqHoOag9oz4cxPzKUyhwWQMSH4=","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; SFS:(13230040)(1800799024)(82310400026)(36860700013)(376014);\n DIR:OUT; SFP:1101;","X-MS-Exchange-Transport-CrossTenantHeadersStamped":["PR3PR08MB5578","GV1PR08MB7705"],"X-MS-Exchange-Transport-CrossTenantHeadersStripped":"\n DU2PEPF00028D12.eurprd03.prod.outlook.com","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id-Prvs":"\n 4e3b77c0-0f1b-4d94-2238-08de3e7a03a3","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|36860700013|14060799003|1800799024|82310400026|376014|35042699022;","X-Microsoft-Antispam-Message-Info":"\n 9EfxPuCvqDl2YtPj2NwnVBDdSv/VBgpuLOnN/CDs9NPAtl15ac9H+T/qs7oGMEQqvUwNk1GKsvOccb4evnVp2dvTcwsvVzaNe9rG95NZelPN+HXrKYRCJxn/LVh8E8mqzvmmyWdKmJfQQA3mSJftTWnabV000SVewcLZ1ylr97xqmdMyqlXvE8cWD1Y64lja11EfruDmhdQHfyikz66ikOh5tgYI2Z4BYMZRCKZ6S/vtetq/JBi+JeuUm+Ntm2d69mV/a7Bt898/uduqsjs2AoHjmxJla4aOggIScyyQaxCagwlkRTjGyQE/VJlvEAHFnWlbgyXOgLM1HGjhrnSBj48gBXbLYV+JhrGePyMnllFLILnx25ci3BNoQdftQjgly5h6imW2SQcrrU6rczw3G6I8ty9ir12J7BT83wBEcANPWf2KTJn8sRDXqkZFgL6TZWNZXAi1h6v7HQPvof7CUcyn8ApEqOKgdU9X8gKIFpk+QBLXQCK3DWr+7hdfDO39sMhaEkwgIrAikgWb5aZOjaGhst2fg8zn62Hg/JZ0OFlcIC5MkwD2Co08AzwFy1kHpaT+pUiCYg+CxUbfuu7FTJR0Zfho2DpvvvJp5KESru2FZdHO+rndubzeY49mPaf2v2PN/W8m5gJsSf2adyHncnb/bl4OjClCtT9fC9nhBdzr/I3j6A/nVksoiQNsqkQkrWQu8+eyExPQRnw59OX+RLzoMnTeoMyr5yWmCILYSxtyrUnS0ys2jL1ih1AXMv5rmfwwY1l3ju5va71++BhIxzXVon8VXqRy8fsorNL3VTtRPbDaVPGugFDvywmWnTa7A0625IU8T7GXJ2ACLWQLWvM2hYRkrswhk228Z3LminNxYHuNBIuEHdTQ2o27CMXLnXfcsvyNHg7aEBXOt+sxsaep47aiJNQDmn5QCTuhcOC3cEUq5uQicWWC7V566MRb6DuGHqNrpYzud1zRXHeof4bEluthZiPpLbmqczQ7GNOqUpH1rhwnwylaGabfT/HuE31NPryshzhuAqJNUN6DLNqaz8ZKKK2kZBW0gEP+DsaFQJqh4Q30zhFjUQ5sigCl2fwxwTWpP+Mc2A49faVSgbg7zRe6IoKG/onCJUhNrhLzYumoJ9UoX/hxQ72HIY7CXR1ZmZZ/Quyjen3fbiNPnfE7K1B7dbIXWmApAC+Awa2Xy753UGDkG5aEL8zRygFamzD7iEGdI+XYAaiZux7Z0Uy+7rVrz/onhCwEhD62gqb9SRBGTPsCMeM/02VS/YnAwFINegUyaZPY/bea9gtvcRb49PvJy3GHXbXRX8Q35G8kbfbwzwi6jnIgUQ9TXL6U0dlkTFOPfxI8t/GxBYnt/v49RHBROqxQLfp+wwhwkppQ6B2YCllzgjbzYdYYjEVXAUH1VTw92DkPxgn5gnrjetL6S7ofm6vhlQwUnFsiDcsNlljSn3BJcMvgCCnUaqa5bma9+VoSbRqxf7TN1fca2sCY63ZCFa5TCycYrzRM5LjHAn5gfpFLo8V16Piaq82IfgeGvnUd6DylLbpp8I9d+nYV8mNOirk2c9rKfFf8BYs=","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)(36860700013)(14060799003)(1800799024)(82310400026)(376014)(35042699022);\n DIR:OUT; SFP:1101;","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"18 Dec 2025 21:12:33.7018 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 17b7a684-01af-4381-cca5-08de3e7a298e","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 DU2PEPF00028D12.eurprd03.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":"Moved existing code to determine the partial vector\nstyle for a load or store into a new function\nthat will be reused for BB SLP with predicated tails.\n\ngcc/ChangeLog:\n\n\t* tree-vect-stmts.cc (vect_get_partial_vector_style): Define a\n\tnew function to get the partial vectors style supported by the\n\ttarget.\n\t(check_load_store_for_partial_vectors): Use the new function in\n\tplace of existing custom code to do the same thing.\n\n---\n gcc/tree-vect-stmts.cc | 71 ++++++++++++++++++++++++++++++++++--------\n 1 file changed, 58 insertions(+), 13 deletions(-)","diff":"diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc\nindex 93c87f4b329..dbca9ea3af2 100644\n--- a/gcc/tree-vect-stmts.cc\n+++ b/gcc/tree-vect-stmts.cc\n@@ -1462,6 +1462,56 @@ vect_get_len (vec_info *vinfo, slp_tree slp_node, gimple_stmt_iterator *gsi,\n static tree permute_vec_elements (vec_info *, tree, tree, tree, stmt_vec_info,\n \t\t\t\t  gimple_stmt_iterator *);\n \n+/* If target supports vector load/store (determined by IS_LOAD) with length for\n+   VECTYPE, return VECT_PARTIAL_VECTORS_LEN; otherwise, if it supports vector\n+   masked load/store for mode for VECTYPE, return\n+   VECT_PARTIAL_VECTORS_WHILE_ULT; otherwise, return VECT_PARTIAL_VECTORS_NONE.\n+   If load/store with length or mask is supported and ELSVALS is not null,\n+   store the possible else values in the vector it points to.  Unless FACTOR\n+   is null, *FACTOR is set to the number of separate subelements that each\n+   element of VECTYPE should be split into.  (This is always 1 except in the\n+   case of VECT_PARTIAL_VECTORS_LEN when the machine mode of VECTYPE can only\n+   be supported by using a length in bytes instead of a length in lanes.)\n+ */\n+static enum vect_partial_vector_style\n+vect_get_partial_vector_style (tree vectype, bool is_load,\n+\t\t\t       unsigned *factor = nullptr,\n+\t\t\t       vec<int> *elsvals = nullptr)\n+{\n+  machine_mode vecmode = TYPE_MODE (vectype);\n+\n+  /* TYPE_MODE tries to map vector modes that are unsupported by the target to\n+     same-sized scalar modes, so reject scalar modes here.  */\n+  if (VECTOR_MODE_P (vecmode))\n+    {\n+      machine_mode mask_mode, vmode;\n+      if (get_len_load_store_mode (vecmode, is_load, nullptr, elsvals)\n+\t    .exists (&vmode))\n+\t{\n+\t  if (factor)\n+\t    *factor = (vecmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vecmode);\n+\t  return vect_partial_vectors_len;\n+\t}\n+\n+      if (factor)\n+\t*factor = 1;\n+\n+      if (targetm.vectorize.get_mask_mode (vecmode).exists (&mask_mode)\n+\t  && can_vec_mask_load_store_p (vecmode, mask_mode, is_load, NULL,\n+\t\t\t\t\telsvals))\n+\t{\n+\t  return vect_partial_vectors_while_ult;\n+\t}\n+    }\n+\n+  if (dump_enabled_p ())\n+    dump_printf_loc (MSG_NOTE, vect_location,\n+\t\t     \"the target doesn't have the appropriate partial\"\n+\t\t     \" vectorization %s for vector data type %T.\\n\",\n+\t\t     is_load ? \"load\" : \"store\", vectype);\n+  return vect_partial_vectors_none;\n+}\n+\n /* Check whether a load or store statement in the loop or SLP group described by\n    VINFO is possible using partial vectors.  This is\n    testing whether the vectorizer pass has the appropriate support,\n@@ -1627,28 +1677,23 @@ check_load_store_for_partial_vectors (vec_info *vinfo, tree vectype,\n \n   poly_uint64 nunits = TYPE_VECTOR_SUBPARTS (vectype);\n   poly_uint64 vf = LOOP_VINFO_VECT_FACTOR (loop_vinfo);\n-  machine_mode mask_mode;\n-  machine_mode vmode;\n-  bool using_partial_vectors_p = false;\n-  if (get_len_load_store_mode\n-      (vecmode, is_load, nullptr, elsvals).exists (&vmode))\n+  unsigned factor;\n+  vect_partial_vector_style partial_vector_style\n+    = vect_get_partial_vector_style (vectype, is_load, &factor, elsvals);\n+\n+  if (partial_vector_style == vect_partial_vectors_len)\n     {\n       nvectors = group_memory_nvectors (group_size * vf, nunits);\n-      unsigned factor = (vecmode == vmode) ? 1 : GET_MODE_UNIT_SIZE (vecmode);\n       vect_record_len (vinfo, slp_node, nvectors, vectype, factor);\n-      using_partial_vectors_p = true;\n     }\n-  else if (targetm.vectorize.get_mask_mode (vecmode).exists (&mask_mode)\n-\t   && can_vec_mask_load_store_p (vecmode, mask_mode, is_load, NULL,\n-\t\t\t\t\t elsvals))\n+  else if (partial_vector_style == vect_partial_vectors_while_ult)\n     {\n       nvectors = group_memory_nvectors (group_size * vf, nunits);\n       vect_record_mask (vinfo, slp_node, nvectors, vectype, scalar_mask);\n-      using_partial_vectors_p = true;\n     }\n-\n-  if (!using_partial_vectors_p)\n+  else\n     {\n+      gcc_assert (partial_vector_style == vect_partial_vectors_none);\n       if (dump_enabled_p ())\n \tdump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,\n \t\t\t \"can't operate on partial vectors because the\"\n","prefixes":["v7","04/10"]}