Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2195028/?format=api
{ "id": 2195028, "url": "http://patchwork.ozlabs.org/api/patches/2195028/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260210113104.60335-11-chris.bazley@arm.com/", "project": { "id": 17, "url": "http://patchwork.ozlabs.org/api/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, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260210113104.60335-11-chris.bazley@arm.com>", "list_archive_url": null, "date": "2026-02-10T11:31:03", "name": "[v9,10/11] AArch64/SVE: Tests for use of predicated vector tails for BB SLP", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "69ad5e0fb9cc018d5fd348452620a51e881cb126", "submitter": { "id": 89471, "url": "http://patchwork.ozlabs.org/api/people/89471/?format=api", "name": "Christopher Bazley", "email": "Chris.Bazley@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260210113104.60335-11-chris.bazley@arm.com/mbox/", "series": [ { "id": 491659, "url": "http://patchwork.ozlabs.org/api/series/491659/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=491659", "date": "2026-02-10T11:30:56", "name": "Extend BB SLP vectorization to use predicated tails", "version": 9, "mbox": "http://patchwork.ozlabs.org/series/491659/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2195028/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2195028/checks/", "tags": {}, "related": [], "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=S6o1xpE2;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=S6o1xpE2;\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=S6o1xpE2;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=S6o1xpE2", "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.69" ], "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 4f9KR72VCgz1xtV\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 22:41:55 +1100 (AEDT)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2555D4CF3064\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 11:41:53 +0000 (GMT)", "from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013069.outbound.protection.outlook.com\n [52.101.83.69])\n by sourceware.org (Postfix) with ESMTPS id 77A584CF3106\n for <gcc-patches@gcc.gnu.org>; Tue, 10 Feb 2026 11:33:31 +0000 (GMT)", "from AM7PR02CA0006.eurprd02.prod.outlook.com (2603:10a6:20b:100::16)\n by AM9PR08MB6001.eurprd08.prod.outlook.com (2603:10a6:20b:2d5::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.18; Tue, 10 Feb\n 2026 11:33:19 +0000", "from AM4PEPF00025F98.EURPRD83.prod.outlook.com\n (2603:10a6:20b:100::4) by AM7PR02CA0006.outlook.office365.com\n (2603:10a6:20b:100::16) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Tue,\n 10 Feb 2026 11:33:19 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AM4PEPF00025F98.mail.protection.outlook.com (10.167.16.7) with Microsoft SMTP\n Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9632.0 via\n Frontend Transport; Tue, 10 Feb 2026 11:33:18 +0000", "from DB8PR04CA0003.eurprd04.prod.outlook.com (2603:10a6:10:110::13)\n by PA4PR08MB6173.eurprd08.prod.outlook.com (2603:10a6:102:e5::20)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.17; Tue, 10 Feb\n 2026 11:32:14 +0000", "from DB1PEPF000509F9.eurprd02.prod.outlook.com\n (2603:10a6:10:110:cafe::25) by DB8PR04CA0003.outlook.office365.com\n (2603:10a6:10:110::13) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.20 via Frontend Transport; Tue,\n 10 Feb 2026 11:32:05 +0000", "from nebula.arm.com (172.205.89.229) by\n DB1PEPF000509F9.mail.protection.outlook.com (10.167.242.155) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9611.8 via Frontend Transport; Tue, 10 Feb 2026 11:32:14 +0000", "from AZ-NEU-EXJ02.Arm.com (10.240.25.139) 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; Tue, 10 Feb\n 2026 11:31:55 +0000", "from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EXJ02.Arm.com\n (10.240.25.139) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 10 Feb\n 2026 11:31:54 +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; Tue, 10 Feb 2026 11:31:54 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 2555D4CF3064", "OpenDKIM Filter v2.11.0 sourceware.org 77A584CF3106" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 77A584CF3106", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 77A584CF3106", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1770723211; cv=pass;\n b=oYfE3FkGJ0Bsh+sftZGiVPuVq1KrzK0x77w/dY+C7u8VM+OBY3XCQd7N90Jd1oxKeIUu+2IlP6ovV2il0naXsrRBdGfSRCAiRtaCOioHKN6JCgRYTqNJW5vWqI+kOpKsh8B3NBn3qqzvstOIxqGtyUrkj3otYdbzPqTsS60RnA4=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=n/yGmQb2zIlu8dtPmNRxwSpMyCcht85hHShanuRYFogcgvmdKZ2ifX3JKDT/GlB47USisj0lccPQpil0tEjlbPlWiiDP08n3OBNG/DaZy6Jk1cr5+Pie8taf758p12/49kGWcnVsxyZ6IoGVjZvVh8M2oWHWZulyPaWZum68RQj7uc36gto/c9CbQ/GQiQw6NGeqjlH3kuQ+x02HJ28jRfY5PzSvbhd9UtTRXzdt5YYRmROYhIz1/fLPt8hqLD3GeFNPbXTc0VwhX9mDQA/+sDy3jXN+WvWcH+JSH+porNLP4TZiDo+gxV65892i/a1CuQDVb2YvWnkMQwhYSlwPgA==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=fUaHV5JPO/BBPw9gWB5+FDGh6sNrR7W0mlqmhdF/qzlkqd3RqmJL6NvDI7U1HGfABmhA/CvrqzEF4V75fKY55N1f5l0Kbpus7jhXOIycmyhQUdwBdA23g7juNSOTg8x6Qaqpmmfd3lFBu0fxuosEZkhygtNlXDR1hfA2THP+imk+y91W3orrqARpBw7+kfwsrUrKX5ytGQCYt9VcJ/Ox8kkOKsNVz/slJE/avIkuaENGV0PdRERPgFh4z4NtFUB+UzYVMr18XHYXtf653sGSVVfKhtc6RfQOBMKXj4KIbUkWqydwxCGAH1SPZAvQwCZSu6fpjO7qQv8IHZx0WwUsuA==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1770723211; c=relaxed/simple;\n bh=CanoRNfi5tQH2VqY6/v6lp23xlaUZgRFLzGdnkrVvEM=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=K1Gdl1RKiI9NpQG2NsLi5JscGgosXgQybwK1cvnv1qrhP5v0ZuLu8ivovpzrfNZgwOdzPbkXP4Wo3baDKOf1ypdXOJEKlLf76ykb/6uYcg33PBFcAKj1ro2s8mqR6w93S9Hic0Otrqs6pOhArBLdZBY5cmB1PLXR+cRg8uyfJ0s=", "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=P8x2/06EcTCsdFsCp59cCmU3dDU8r8H7+lY/TXmfE/w=;\n b=pBknFfyjvkLthwjqKOrCsKTvlcbqBdOlPiJo5mQ+qFsz3MNz7DPBbkFFOnwBtITG6VgAOBQkLz8bnV/oBqvxJY9xdVbk/07osI7YamkSkgxduzdUpPAr12uzGFApVQJEbZngJ2Ojsdgm4sfw/xEGttSsDEOP5iMwGuIAI/J100wG/wQqnksQfQQTU7JsPaLLgN8+u78ICRwyI7NPO64xc99aAb5LUVS2Eo6szTv7+iHtmBYNrhBd3EydaDJOwJ0Ag1hemzwqgiLBrn103jYi5eskP+f1aif013DAcNkpgUxaGGKdVTdxNaovHLLxmJiDN7niytiTtHebGG8Xg1jRSQ==", "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=P8x2/06EcTCsdFsCp59cCmU3dDU8r8H7+lY/TXmfE/w=;\n b=keHa6ohj/8NRkO5Id8czWaa06SHBxH9jS03EXG10OO8+RDGPGScpJjTR9LdS1NAgSa/jpIG2UUlbZ6R1maFro+0T/EBj5Yhk67+o6jt43A+xcqR5fJntE5KLZqtoOC6A/6L8TjgQ7DzRYpIakUtxyYGkhYTlDXnpvTgaf7qe1XD28F9ObH3zrMrJ+Ko9oF52QMmsB8mn33vIDkmqCJkT4MCE0rSwVdrEAy0F6CBrMf1tolKsHIydqig1Lk+0TKNTnyzN27diHRX63g/PBJSXcIzFDUN3T+s6xupsPexSdF3btKgF+J1E+2b5ukv8TKbgOpp+sucBuY4J95eVOe5Asw==" ], "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=P8x2/06EcTCsdFsCp59cCmU3dDU8r8H7+lY/TXmfE/w=;\n b=S6o1xpE2nVuDovJI6bH4ldp2NsS+XSsEZzgY4jJ6JlkDUBlc1zItX2g4U/rBiGRYQi8/o5EmXTtftJPPjrvjYHIYPb7fa0fpgzLxExVlOGk3mDRKmYSYJBbFFjKXuhS8rzQo++2iOZWbrf3rd7dhM8Uo5kVpAdtsbJQn1giQTNU=", "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=P8x2/06EcTCsdFsCp59cCmU3dDU8r8H7+lY/TXmfE/w=;\n b=S6o1xpE2nVuDovJI6bH4ldp2NsS+XSsEZzgY4jJ6JlkDUBlc1zItX2g4U/rBiGRYQi8/o5EmXTtftJPPjrvjYHIYPb7fa0fpgzLxExVlOGk3mDRKmYSYJBbFFjKXuhS8rzQo++2iOZWbrf3rd7dhM8Uo5kVpAdtsbJQn1giQTNU=" ], "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>", "CC": "<rguenther@suse.de>, <Tamar.Christina@arm.com>,\n <rdsandiford@googlemail.com>, Christopher Bazley <chris.bazley@arm.com>", "Subject": "[PATCH v9 10/11] AArch64/SVE: Tests for use of predicated vector\n tails for BB SLP", "Date": "Tue, 10 Feb 2026 11:31:03 +0000", "Message-ID": "<20260210113104.60335-11-chris.bazley@arm.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260210113104.60335-1-chris.bazley@arm.com>", "References": "<20260210113104.60335-1-chris.bazley@arm.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-EOPAttributedMessage": "1", "X-MS-TrafficTypeDiagnostic": "\n DB1PEPF000509F9:EE_|PA4PR08MB6173:EE_|AM4PEPF00025F98:EE_|AM9PR08MB6001:EE_", "X-MS-Office365-Filtering-Correlation-Id": "b7be79d2-3578-4c3c-8122-08de6898306b", "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|376014|36860700013|82310400026|1800799024|13003099007;", "X-Microsoft-Antispam-Message-Info-Original": "\n BTj7uN1eHoVWBUb1HhlEhRtpJ55LOtrKF2PIVtfepZWMimfByjvjK/pFlWL3wgE8mL8RR/JDwfd8w4IAQtjZyK26JdVe8Bd477rdwTuYI8oAfAnXESax3wVrZFIQvEewVP6CBtxkZ5zoa9z5//YKa02t9RBZy1TbGRDQfpmx+XRG+fSMn06kfIP/dCIgQ5yO4wU0lM3dzjpIb932FiyPQKNSSMB8VLDeHiJM1LcX3P8+Pw4qUkUwk6Y7CjhmsdwwIzEo/T0cs2Ufq9Y+1BlzR19iMyloaoR9MpSmtju2TWTwn1GQ9W+2HB0tnaxsBnIgN6fWYLFMR9nFXusnhSjG2BmX2xoBHL3AJZjJB8DLbJzO1PYsBrfnF6vmmClIc3O+ycnjCpOA1cq3okbdoC2FIn7DKivLqyffPpN55PNuZriqKKTTvp2zmZvxNRoAIoC9hsoHj/nMoaSCxsCTXAwxD65pPO0eGJNch/XqigCiV1a0zaDin+EwXiB6pmjDku+w1Kb7hnebC2QdHMvR3ZmwPFj5OBbidG/fwd5Yzh0FBmROfUTMIUOYRTbhWhM1QZchDUcuDwzrtI7+v8R3Wkn8UjN6ry/15CGYf6rsT1agwnX5ofwSCck6xCM+FaHufvaWEQQalIlXLXSUjuGom3VNIu9AC1IYOWGHIZEuf7lnQ0k02NHf5hV9SYkbA+EWUH34K9pYDCY0/1DDDIwXVEbaNPL34fCjX6iz3OrUwdVLTwzQK84jW5MyPasgx+2nX+6LGdjTHot4yrm0u6CX62QAguSRdVoI4iI9oFx6hr2isOe1N5PCUnrLewyILHgnWB8CZGO3uvM5aVWuthkSKFdtJ8IypMCd8QqT505wJi0rakFR91zS4VLVevwJUUQ30u8vtJTbFZLfgcBlejnrjQVgUYX0IbndOOQCXiB4z3A/x7IXqHzcBRL2q9FcJTLz+SRU1dF9QA1eV1am21YvBTJe/ZNqy5YwCKhrSXv7OyWigKnms05OjGPV2P5MA3mnQC1URNAAmMp++FfIfVauqgcqXTWbHW+196JEQp4OeWyElvdrfBv5mYJYoltd2TB1i2P6y+zZyM5ce9zTNRf1eJz+2kkf3UMGrOlB+RxympEqX0CvLSs7lGHE6lPkf2DU4GbKGe85i48/32I9LiUj/NT/k6xevZl260OtNL4uMr6/m++ZGq1yimC4LdXSrZsLDK+iSuGe8PImJ1KhCeVu9rZGMkoUDuIdAlJczNTQ6UGwpRtqvzo4gWNOpPOM2LVxpH0jP1SIstYhDAHVVdw2rCcoEy5yssalOPVk6AW+If9+8ilrUulPzLEEnHIbU+r1OZaDpcOTzeAneyK6SzhIjnDdwBMCe9zskz4jZfL26LkbxnKoJioAh/PVYalUDmmkT+ESXGpUpZDrv1xbnxtiniFVuQnQoUx9c72dRZVxSbcRw/q2Dh6O6iCZ1khsuv4gMxT1UGjTwgcpvgSYz/6s/2JUlliD7nD/ot9CgeryilxPE9LT4hEBBqVfQsBgClGVOtuAzNG474qXUTXtTiOQCuYbf4ZwSM0IF/eMypa2Tkpunv64dOjEULMJ7KZyJhWd70ylNF7ELdsVpz0v1g+GEvYNoD5+5BNvauTWf4ejil5+WtM=", "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)(376014)(36860700013)(82310400026)(1800799024)(13003099007);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "PA4PR08MB6173", "AM9PR08MB6001" ], "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM4PEPF00025F98.EURPRD83.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n a1dc4442-16f1-4d4c-9b5b-08de689809b8", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|376014|35042699022|36860700013|82310400026|14060799003|1800799024;", "X-Microsoft-Antispam-Message-Info": "\n BaV2UnGCRWIobBHsB4rjXuXXB3xStFso7u2T3myDQswgnvXACznSnf648F/QTazvg30TDONtyTSdx6cPpKG6fWcNo2y6/swi0WOhGhiXgJnGPuEJcjhjQkJ2TgH6/Qp95zurmIenuOIvgusmf+taMqEbBVwqpz2JiIHCKOH9B/Nd75Kn9s6dFR5sNpRWLeJALY++mAqJUnvRfc6EtaEFUFNcAAbcKvfZiOzr3+H9tLhtVKr+OSdqlW/fTbUNEQ/eCob1vF/w9MkWCy1H4BdCrXt1XXpyNNK8aWbqd+XcthT1wFJCUy119277rzzUywvzSkVqBM5FyF1fJuttKSo51xoOGvkmOpJBv0nqyCHYSkdZkFiQVcJw+xhajKMOhOfc3tX1UnNve68SD7s2eH/n2GFGeq+x4JAAMgcFUap3/liR3B7/Goc8oxKKoXqv9hZkh9q8DU0ray1V6qwBdlxD0XxAvZLnZJc4ccdv2Er8diRTYLdkLakUNgs3Dms3qd/tT0hVS0MbGSQIWY9udl8nxDxnxlc5d5HrvW0JO8zSqLOIiN2L3Dg/Y6Rp+Tq2QqZCX6eWXMQ+jjNhAci2b4OxIB041d52NiuigZGQ7BK1+47YaWvGVinq6eYjivgenGegvlR5wb63oL8JAd3u7JRV/Bz+UpJl0ObBk5PlFxaFentfrJClwEuT6P/MIvQ1FPPjMZimEWH7oXtAzN2IkrOLj7vW+Wjcr8WXUZrEgvluiGora3OY5flKcb3CfSr7n8D6APQH/qvNB3SEnYzSfkOXLmpGQb7M2pCQyXmZFOBz29Di6KV88nCXCE0hQ+S5fs7PWJElzRB9/W1ClyTeckG/LRh5vWroDPIh//kuvpqU/pyX8WQTzDDCs6K3t5kyHXYrYdkLhi0dpp7tlWXbSh38GCDobbRO+UizF/AgtebLcMs2YmwS3ZjrsNy+7KMha4KK/B720EdGlOWWo46UIRmHYa7VsO1Wwjcoi+C0A7rbd/OZwuTHsJtYVm2fH3Lcxk4Boi/EsWIe4r0FqXd4DbHfTw0NlRIR6CLRDOpFWVYSURqjB1fvdD26KKRQU8izbOOwI+FGPK2hiCQ28/JxDNxGvPWk/TvgMUjv07g8yrbJ1Vj7Zipvq22QmP4UAcZ7udQc6AbXUi1oq0Ly+C+nXIm05KrcdJhzw4dxeMmML1WNClLszsthOfS9cs87IazwFQiYAxNBUaHEIQq3SbquMYHk2e5jjgTFCv0wGINRcnirJYQEJm79St9/X2uVOHKM3xbjH4nS6g2VI5SwIC38EPgPVvxC1h+m98iQGsQCU2Q0/Uek8kIZHnJPJgxLGgd2z0FsAdoEeL6O+LW+ki0dn5X2zrP/mupZeTag/nnwxsvEEvp0m5WjRqfOFXNFXEEppivWPe0mCa1cp4wfdGLHxOwgyfdqKrdaNdrVe9azOh5W4V1qqJsDSHDHpRLOu1UgMkS1MhiLm5qQKyLbCSE2DkxhuwVoYlfnU199tAv/WKCDRVqFuNWBjT/Fa4bD0CA1nD9piFYyjdY4ubwamQicM6WO9ny29t9M/lqv7K1bePdzCIhQMPDxXni5lsDBBlwyS2Qq9+uAOYDmPNV1rRN6HZPVeNo0ufm4RKCGxXZsXxWfJpg=", "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)(35042699022)(36860700013)(82310400026)(14060799003)(1800799024);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n DyUvKU13JRn88qeYNrNfqk9noyCGdhe4XPivOAr8AgpHicmgoLaQIIPpxRXSuKMzMZnGiTLQAp5tON4FJKzib1GTAF9RMQ3Q49mnjguQGn2jzdFuUWazKxW6d2K1TAjStZPj0YuSB1nwqJ8DuBZs/3TPNxKWgaLojBC82fOMz+RALInL9HsdolxRT/oolO/Ar7hyJPRb7s0sJILC8u64DuzuLUdTJIifIjK8562EPFyi6zZtUaX1yPGSvc+iIZ0RKkRJ5XBNctgcytmwqu8qAAFIn3/jUHW7q8mdvnG2GaEEgstYRf86yF0l3KxeqjP9+UNLelA52mf7aCzgFu31dsYKrxs8Y7RIMHLG6d7zUfdus4jtyguvKK98xDaGkeTsbJil455t/iZjUNh+CY4hA9rLQkEB1a1UCVjEBfL1wdTnZXSrsneE5OMd9dmji+Jr", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Feb 2026 11:33:18.8915 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n b7be79d2-3578-4c3c-8122-08de6898306b", "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 AM4PEPF00025F98.EURPRD83.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": "New tests verify that GCC can generate predicated vector-length\nspecific code for AArch64 if the specified vector length is\nshorter than, equal to, or longer than the number of elements to\nbe processed (including if the specified length is sufficient but\nthe minimum length would not be); other tests verify that GCC can\ngenerate predicated vector-length agnostic code for AArch64 if\nthe minimum length (of 16 bytes) is shorter than, equal to, or\nlonger than the number of elements to be processed.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/aarch64/sve/slp_pred_1.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_1_run.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_2.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_3.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_3_run.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_4.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_5.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_6.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_6_run.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_7.c: New test.\n\t* gcc.target/aarch64/sve/slp_pred_harness.h: Test harness\n\tshared between tests for vectorization with SVE predication.\n\n---\n .../gcc.target/aarch64/sve/slp_pred_1.c | 33 ++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_1_run.c | 6 +++\n .../gcc.target/aarch64/sve/slp_pred_2.c | 33 ++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_3.c | 33 ++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_3_run.c | 6 +++\n .../gcc.target/aarch64/sve/slp_pred_4.c | 33 ++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_5.c | 36 +++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_6.c | 39 +++++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_6_run.c | 6 +++\n .../gcc.target/aarch64/sve/slp_pred_7.c | 38 ++++++++++++++++++\n .../gcc.target/aarch64/sve/slp_pred_harness.h | 28 +++++++++++++\n 11 files changed, 291 insertions(+)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1_run.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_2.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3_run.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_4.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_5.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6_run.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_7.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_pred_harness.h", "diff": "diff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1.c\nnew file mode 100644\nindex 00000000000..cfb732abd55\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1.c\n@@ -0,0 +1,33 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we can vectorize with SVE predication when generating vector-length\n+ agnostic code if the minimum possible vector length (of 16 bytes) is larger\n+ than the number of elements to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1; // one less than the minimum vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\twhilelo\\tp[0-7].b, xzr, x[0-9]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tld1b\\tz[0-9]+\\.b, p[0-7]/z, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tst1b\\tz[0-9]+\\.b, p[0-7], \\[x[0-9]\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1_run.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1_run.c\nnew file mode 100644\nindex 00000000000..b76f8d52a1f\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_1_run.c\n@@ -0,0 +1,6 @@\n+/* { dg-do run { target aarch64_sve_hw } } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+#include \"slp_pred_harness.h\"\n+#include \"slp_pred_1.c\"\n+\n+HARNESS (15)\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_2.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_2.c\nnew file mode 100644\nindex 00000000000..464f251f955\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_2.c\n@@ -0,0 +1,33 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=128\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we can vectorize with SVE predication when generating vector-length\n+ specific code if the configured vector length is larger than the number of\n+ elements to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1; // one less than the configured vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\tptrue\\tp[0-7].b, mul3\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tld1b\\tz[0-9]+\\.b, p[0-7]/z, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tst1b\\tz[0-9]+\\.b, p[0-7], \\[x[0-9]\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3.c\nnew file mode 100644\nindex 00000000000..7d16fdcad3e\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3.c\n@@ -0,0 +1,33 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we can vectorize with SVE predication when generating vector-length\n+ agnostic code if the minimum possible vector length (of 16 bytes) is equal to\n+ the number of elements to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1;\n+ x[15] += 2; // exactly fits the minimum vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\tldr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3_run.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3_run.c\nnew file mode 100644\nindex 00000000000..eb3093059d1\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_3_run.c\n@@ -0,0 +1,6 @@\n+/* { dg-do run { target aarch64_sve_hw } } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+#include \"slp_pred_harness.h\"\n+#include \"slp_pred_3.c\"\n+\n+HARNESS (16)\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_4.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_4.c\nnew file mode 100644\nindex 00000000000..915ddb74fd1\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_4.c\n@@ -0,0 +1,33 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=128\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we can vectorize with SVE predication when generating vector-length\n+ specific code if the configured vector length is equal to the number of\n+ elements to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1;\n+ x[15] += 2; // exactly fits the configured vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\tldr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_5.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_5.c\nnew file mode 100644\nindex 00000000000..e7dd8a832c5\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_5.c\n@@ -0,0 +1,36 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=256\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we can vectorize with SVE predication when generating\n+ vector-length specific code if the number of elements to be\n+ processed is greater than the minimum possible vector length\n+ (of 16 bytes) but less the configured vector length. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1;\n+ x[15] += 2;\n+ x[16] += 1; // one more than the minimum vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\twhilelo\\tp[0-7].b, xzr, x[0-9]+\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tld1b\\tz[0-9]+\\.b, p[0-7]/z, \\[x[0-9]+\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tst1b\\tz[0-9]+\\.b, p[0-7], \\[x[0-9]+\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6.c\nnew file mode 100644\nindex 00000000000..98e91b1af9a\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6.c\n@@ -0,0 +1,39 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we do not attempt to vectorize with SVE predication when\n+ generating vector-length agnostic code if the minimum possible\n+ vector length (of 16 bytes) is smaller than the number of elements\n+ to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1;\n+ x[15] += 2;\n+ x[16] += 1; // one more than the minimum vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\tldr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+\n+/* { dg-final { scan-assembler-times {\\tldrb\\tw[0-9]+, \\[x[0-9], 16\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tw[0-9]+, w[0-9]+, 1\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstrb\\tw[0-9]+, \\[x[0-9], 16\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6_run.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6_run.c\nnew file mode 100644\nindex 00000000000..d6b6537ac23\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_6_run.c\n@@ -0,0 +1,6 @@\n+/* { dg-do run { target aarch64_sve_hw } } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+#include \"slp_pred_harness.h\"\n+#include \"slp_pred_6.c\"\n+\n+HARNESS (17)\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_7.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_7.c\nnew file mode 100644\nindex 00000000000..ac9508301a3\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_7.c\n@@ -0,0 +1,38 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize --param=aarch64-autovec-preference=sve-only -msve-vector-bits=128\" } */\n+\n+#include <stdint.h>\n+\n+/* Test that we do not attempt to vectorize with SVE predication when\n+ generating vector-length specific code if the configured vector\n+ length is smaller than the number of elements to be processed. */\n+\n+void\n+f (uint8_t *x)\n+{\n+ x[0] += 1;\n+ x[1] += 2;\n+ x[2] += 1;\n+ x[3] += 2;\n+ x[4] += 1;\n+ x[5] += 2;\n+ x[6] += 1;\n+ x[7] += 2;\n+ x[8] += 1;\n+ x[9] += 2;\n+ x[10] += 1;\n+ x[11] += 2;\n+ x[12] += 1;\n+ x[13] += 2;\n+ x[14] += 1;\n+ x[15] += 2;\n+ x[16] += 1; // one more than the configured vector length\n+}\n+\n+/* { dg-final { scan-assembler-times {\\tldr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tz[0-9]+\\.b, z[0-9]+\\.b, z[0-9]+\\.b\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstr\\tq[0-9]+, \\[x[0-9]\\]\\n} 1 } } */\n+\n+/* { dg-final { scan-assembler-times {\\tldrb\\tw[0-9]+, \\[x[0-9], 16\\]\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tadd\\tw[0-9]+, w[0-9]+, 1\\n} 1 } } */\n+/* { dg-final { scan-assembler-times {\\tstrb\\tw[0-9]+, \\[x[0-9], 16\\]\\n} 1 } } */\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_harness.h b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_harness.h\nnew file mode 100644\nindex 00000000000..ac569fc670c\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_pred_harness.h\n@@ -0,0 +1,28 @@\n+/* Test harness shared between tests for vectorization with SVE predication. */\n+\n+#define HARNESS(N) \\\n+ int __attribute__ ((optimize (1))) main (void) \\\n+ { \\\n+ uint8_t a[N], b[N]; \\\n+ for (unsigned int i = 0; i < N; ++i) \\\n+ { \\\n+\ta[i] = i * 2 + i % 5; \\\n+\tb[i] = a[i]; \\\n+\tasm volatile (\"\" ::: \"memory\"); \\\n+ } \\\n+ f (a); \\\n+ for (unsigned int i = 0; i < N; i += 2) \\\n+ { \\\n+\tb[i]++; \\\n+\tif (a[i] != b[i]) \\\n+\t __builtin_abort (); \\\n+\tif (i + 1 < N) \\\n+\t { \\\n+\t b[i + 1] += 2; \\\n+\t if (a[i + 1] != b[i + 1]) \\\n+\t __builtin_abort (); \\\n+\t } \\\n+\tasm volatile (\"\" ::: \"memory\"); \\\n+ } \\\n+ return 0; \\\n+ }\n", "prefixes": [ "v9", "10/11" ] }