get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/2195023/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2195023,
    "url": "http://patchwork.ozlabs.org/api/patches/2195023/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260210113104.60335-9-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-9-chris.bazley@arm.com>",
    "list_archive_url": null,
    "date": "2026-02-10T11:31:01",
    "name": "[v9,08/11] AArch64/SVE: Optimize vec_init for partial SVE vector modes",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "a4684fa236851ae1b2d906e34f2337992e21ffeb",
    "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-9-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/2195023/comments/",
    "check": "pending",
    "checks": "http://patchwork.ozlabs.org/api/patches/2195023/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=SyvxYE17;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=SyvxYE17;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::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=SyvxYE17;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=SyvxYE17",
            "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.13"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::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 4f9KH21lDsz1xvb\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 22:34:54 +1100 (AEDT)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 2D74E4CF3076\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 10 Feb 2026 11:34:52 +0000 (GMT)",
            "from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013013.outbound.protection.outlook.com\n [52.101.83.13])\n by sourceware.org (Postfix) with ESMTPS id 2D0944CF3116\n for <gcc-patches@gcc.gnu.org>; Tue, 10 Feb 2026 11:33:21 +0000 (GMT)",
            "from DU7P195CA0012.EURP195.PROD.OUTLOOK.COM (2603:10a6:10:54d::22)\n by AM7PR08MB5414.eurprd08.prod.outlook.com (2603:10a6:20b:105::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Tue, 10 Feb\n 2026 11:33:16 +0000",
            "from DB1PEPF000509F8.eurprd02.prod.outlook.com\n (2603:10a6:10:54d:cafe::f4) by DU7P195CA0012.outlook.office365.com\n (2603:10a6:10:54d::22) 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:16 +0000",
            "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DB1PEPF000509F8.mail.protection.outlook.com (10.167.242.154) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8\n via Frontend Transport; Tue, 10 Feb 2026 11:33:16 +0000",
            "from DUZPR01CA0028.eurprd01.prod.exchangelabs.com\n (2603:10a6:10:46b::7) by GV4PR08MB11579.eurprd08.prod.outlook.com\n (2603:10a6:150:2dc::22) 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:32:10 +0000",
            "from DB1PEPF000509F4.eurprd02.prod.outlook.com\n (2603:10a6:10:46b:cafe::60) by DUZPR01CA0028.outlook.office365.com\n (2603:10a6:10:46b::7) 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:32:10 +0000",
            "from nebula.arm.com (172.205.89.229) by\n DB1PEPF000509F4.mail.protection.outlook.com (10.167.242.150) 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:10 +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; Tue, 10 Feb\n 2026 11:31:53 +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:53 +0000"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 2D74E4CF3076",
            "OpenDKIM Filter v2.11.0 sourceware.org 2D0944CF3116"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 2D0944CF3116",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 2D0944CF3116",
        "ARC-Seal": [
            "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1770723201; cv=pass;\n b=D5QQMBkixIrNkrkBCar80l/jfcyEkwu2BwV1hK22fskq5SU93RBX3aeDEq4EcByytxi3icLQFjltOTnqK1Bj6pcWG6qwKHjn0VE9YwuxQ/oXblQWMssStongrnzBnuj7UFiQ1sqy/Rh7ebZmRjHZGpCXoyL07tBgT/HnmhLTpxc=",
            "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=EQAwpV7TKp/0IEUtovRBvQFDy35Di2ql9xWix2vncmvHMnWC29HEjJremHiZaBfqhpZYkZccco6vdo3Nc6OHGK5q0BVRdADCRqnpHpu9S1CvYff8UnGU0WiioI4I3/FsXmRNHEN2dW6oB++AAL3VmZD4WcrN9SCDGKn3Il02eRDuWD58sJNOlsb5mpLLcI//BnB/mFQjfubJJZbQqGkRWKcFnC+80Yd92QqBjbhPBMyLOa2gqEgqbpolp25cKVwmhGeVr16Jh5Ngjja4Q4ADjLDbeWjMbVMTeB55z57CsExrIxdPeTULdhEbB1Jg0WS0FlZAi68K5fQovf8dKL7t9g==",
            "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=JYw1wC9jpT0PSLLxF3ICpCM0uR7zDe35c188FCixDRSCE89rUP4Atxdcodu4Q1rLFxn5bF+Kbd1c/f0bTzVluFaEy9q1iGJ1YNKSI5mJQB7DPZMpKcLKCi9raqPX6dVw3FSgVwjZ8BR8Fdbs1bgIEkPw9C+FtLUpYf9x1saZ03UXy5BcPmYH9BFDP9J42VYeE0dtsM7t03Af8MiqXn+VkRF4RtxNHL8PKRIyAtksPhtj88/fVU84Evx0EP/PS8EEgctaiKCdsRFH40YfUNI2wL8AH2HAS7bqadrD+vN+2S8iuVmPvlbXW0uRCI9dian9LA4qXTVXCWrpRe2R/mfOtA=="
        ],
        "ARC-Message-Signature": [
            "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1770723201; c=relaxed/simple;\n bh=gmGkg5SAUh09CgtcOBKQMkfvVCwENIPPf1kiM8dxJQA=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=tTTN9x1szE/F7fb3TaIRx2vg/17UUmXol7B/CcarTgJZeRZAyS8AUJM7XdlCdGdGgt404dUVeQi+oKfDO+fWnj+R2Q9Lrl7x1XBMA/vbCf8z+qStLdp/pQu3meb3oauHZVNOhWtcxMpVTOeJv/FZFU8LkdeCauxiK+waAyMhhVI=",
            "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=DRkdRkfP9XV5YjoggUrWqYDt74rCMjik33cu6rH6Pws=;\n b=E5Q6/IExoWvC3KK4MwzsHzCidJb5jJhU89xxUkOuN0+56NdZkE9w1Th4dNvKE09hSUD1LGnxnwHUeuobEEuORK/Mt83etKWsAdB/4h6wHogOAWsglpsqZcRpAlWBh1sSiEKXULQYpm6nW4NHKr15v92Rbd/8RU56lYiNJ8HfpFN2Uk8ff/5lM6s3DnjWtD+p5wga2b83pfo+ejdFJJ8tXhSDVQ/YklsNaWg+sJxkoGlP0tNFoi0ITeBlVQRmJffkcGiieh16YbboHLvUk2OgBR8pZT28FTSMa1yA2UuoEZHzEDS825rOSR4pLxttN8f2Mu+xDDiUB0eQJAR4ZMpKPA==",
            "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=DRkdRkfP9XV5YjoggUrWqYDt74rCMjik33cu6rH6Pws=;\n b=wOCgPC8br2Ms51eX1uBqC9cQpx8PhoosqFcfMbtCtqQSvUL8ha+Y/vCWf3ncTe82cMYdQXrD/nXn3QqpNwcfJrtpb44BWDDLrE/9uQ+z5S2TO5BGWLZtHSUwlEkZ7uTH8zbrNueYLom8KQx9yBOUjD7XdkghD+ZIxTh1GsCoLQ1H4A70BrKz2cP1beXUkguxESc10dt2+5jhYHTasuLkOZ4UN+LJeyrLS16zvMDwG6ekBnBjv8xfxShwV5jr8P/U0Y1xa+u/dcvxlMSxwHcFjL6ZJLr58ddxLF6oXwIhwCqeRmch421sD7RYx+szAP1NPohZvONG9Z9F4NLeDHiO0g=="
        ],
        "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=DRkdRkfP9XV5YjoggUrWqYDt74rCMjik33cu6rH6Pws=;\n b=SyvxYE17g2dBe0I16AtaEyc5aNvPLs+K1yeMJR7byWIxwUqydLbkuVipqGdqn+WF7NUQWa8BNL4D4K3FVHhLi5z1VdAwOnax/LXUEANbY6HS28weUHmzFVqSK9E6BgUx4JVk7ZmD73f5/Yvux/ueM6a2ih6VBlyeuDpgvnUvQOw=",
            "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=DRkdRkfP9XV5YjoggUrWqYDt74rCMjik33cu6rH6Pws=;\n b=SyvxYE17g2dBe0I16AtaEyc5aNvPLs+K1yeMJR7byWIxwUqydLbkuVipqGdqn+WF7NUQWa8BNL4D4K3FVHhLi5z1VdAwOnax/LXUEANbY6HS28weUHmzFVqSK9E6BgUx4JVk7ZmD73f5/Yvux/ueM6a2ih6VBlyeuDpgvnUvQOw="
        ],
        "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 08/11] AArch64/SVE: Optimize vec_init for partial SVE\n vector modes",
        "Date": "Tue, 10 Feb 2026 11:31:01 +0000",
        "Message-ID": "<20260210113104.60335-9-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 DB1PEPF000509F4:EE_|GV4PR08MB11579:EE_|DB1PEPF000509F8:EE_|AM7PR08MB5414:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "88f7b897-b80b-4960-144c-08de68982eb8",
        "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|376014|36860700013;",
        "X-Microsoft-Antispam-Message-Info-Original": "\n ysxohB5Ep+T0Ddj1q3uSi+DFGBto18NWe2TfssnTxaxwARhVf1BEq66H7UIfwnwPOYHrInxkOuXlfocdLEZdmNiZ28v/I4FxrnBvt+1tQZm446vv1IGVL7M/0qdIhtyTSZtHlmkQFz9xcdbyOhuFRuB7xYwzu4Btez9edm73knXujirhYjlR4el8A5y0dqQMnsJh9jTwxDW/bkcsjAdq6/euF4/bj291fDb64pT/ZMqmYQNkszPSDkvE6BWGyUWD4PZcNMgv9+zeyYDphKlH8vl/3WNJqRBUwO5FtfXQbwpZJ/vmCc7vxyIqD+irzwAV2RyocUSP3818G13u4mPPgF75qSwcPkmepNdQg5P+pSYQgFkIm3Vw/8IfFrzxqdQWOXBlGpYpQhKleqU8GGDYndciqRz/z1w/rgfLpCIat7FXfr2My4lGj0Qh4/68wxn2wbwVheX2N8xEJfDcjBhase7uVzmsg7jm7sXYpHMQTzwLkG3fa1A/o3GyctdVccC6Ihcim6/8yASBQPlJF5SPZ7ADfFbAY2xB2/3I1uws9pP2ODO/AsqT92JaH9JXbIA1YcxOpZDVJjDRPK1CjxfFxvGm4Ca+UQCrdXaO8+J11434No4WR6bfdVymcMpETJ/mLtnm0EvV8fo8ZFMB2TwgzoI1nuqz0/5U3I3rbFkwCGa7LQ6ad1bzWPKFYCPuhS9A+099txoU6nWpyxiY82PKfsSVgBEi29d31MZLNiVB6p6D7o9zDtu4hIhPPkS+6zo1BOlvaPGWlrQHJMAG9IHjbLv/dxsgiExM/jbZ8DTLMv9RQqmEiQJsZPYUjRExpOa7r2/G1pmFl4B+F/qMYhHVt1E0Y43YgCtyBBzibOydZAyy1kyXq2kiauQFTTC4nnm/jREz62SJS7uoBmGROn48hIgOcHzSJbORPDGDVSw1Pd7BiqnPNbEl4bDskykclMMQYahJHYr55pg0/Jsoi6RPCq1wBJ3uDLg06P7EB0r75I9DwJbpVeIQuxNz+cUEnHl6Tw1AYEIxRPWLh8R4iSMxFpKd5Iriy5L1KhE86dktw+FD4egGqEDjmOXAROLhWHUT0jP6vYL8wgO12F6CroIBRMFrBTnkuqjnd6qiX96S1rEvdOXXagt0p1n6ls4+WX5yWj9u2w6ZS54xIWigd4mlMJo4UHlB6KpBYtIFWLPghfs9H8gZ5FT5vTo9JT1NS8ZmeH0JJXt5h70p+Uk2l/JBKNBuK5FhWx8RtNWbPYZH4NAxB9UOdGtx+rdjGCQEaSSWMT1MhDk8Xmcjsagj7LowTk4QUb+5hUQ3PDnJDyxOF5Kyqx1QXjEu1CGkyd+n/OfjmD0M3DvtzUtyJKCapjN7cC9lYy5e5RxEh2aqnnJj+pqQ3C/RSnuvvwKmOhju2fw8XgqYmIsY9VUP2IwRh1MUZYFU/tWkFVGAT8ToHsBJu+NgZ0oHtaz/oqcPITa5KP+O5+PdZrGju1SJ3KF3XFz/0ZOCDSHPYuj5dmPutX0tO/PtIHvm7ukY+OEGKvnInPNhMkRja12chr4bLv4IoAnhSztdu0O50lQtcJ9oEZHoLHgDsRfIYjeri2OCA0nDo6ADkbU/81s9T+NynHF2x2HXqYU2woJ5uy8x7pkqYPbIgZs=",
        "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)(376014)(36860700013);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [
            "GV4PR08MB11579",
            "AM7PR08MB5414"
        ],
        "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n DB1PEPF000509F8.eurprd02.prod.outlook.com",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 75b77fa0-ceb7-41c5-32e4-08de689807b1",
        "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|82310400026|14060799003|1800799024|35042699022|376014|36860700013|13003099007;",
        "X-Microsoft-Antispam-Message-Info": "\n qCgnii+OOoQ2cuoPPmAFC9J/JcpW96uhZp0fV2velXDODidR9lypBiz6OknVVlqRadPdX1N2Qi3Pudm5R/w7ZAV4jL574nc8yjiO2vG1nlc4g4egwYjDOFfgbDjd7kijFQ45JlBl5CkPO2G2/k5ucJjrOp660D2UtN37u+oVzcO3E1ZRQGjyHCeb3rv1PPAk0rxnBCtde2/eqaybRPvi0TWXFKlyJ9RhWaA1pVILiUGi4SeNex/y7Bp47POxwxk4V3UiHF2D9E/gVCLInnbNhPsPCSr/m0ycHCubMpSye2P2RCw4W8asqt3j4X0z5ignfejqy+lTSBhwk1GFYofb7hiKRgi/PvcjPDe/CWMxuqyeZ4GJqwKPagYVffRGE0WY0knGzPMtMoiuDCmgnfW5LjzdMNQ7TTm6Zid5mAw+RxtfHr5EoVZ+iclYXX4ghjYDIThqXyg58JrrvgoxCeqwjUXMrJLNjeVHZS3/EcBGgnTR5s+Zl5phkMvobZ5TcmvJoNnNyy8Amg20b75lDOnY/yk/P7zGPFSl2O3Alyurxwe2p9B9Rliv35L1fz3BjfofYKQwDcq74ZuGIJlBT57L2sLRDzt5G5A1BlUJRYKjM83AhJznoD0bibq/tABFS8hKe91wVJCt+IcZ8rvvN6a65QL4WDBNvA8FQFDSMXaF5Q27TMpodW911evOahJZVNTj3glOVPg/RPbBpd+8uxuufD+NyHP6zDFODiAQxeg2TZIjMSy0BHd+1N8M7DR9zgCAjKr7AHcDNoDnAqtaliSI27MwIHDicHKdCer3FFCYbCeEXQrDGxjBypt32ZYwpwyp5HEaB/QfKWsfef1E5L0P8oREShjTEOWhUsrAkTJ7MALiNUtuws4Fw0vVZHahDfv4eRLKAV9JXcS26LOWGgrjb0wIM/eKVHyuPgHsv6mZIQmBsbNg22J8JabEQE0+XDfWDdJyQ8xSvvp5kcA97MRIl5YFW16Bp1BLJcQolVUMPqGySXWasm5e8xO2S5oa1bTJ+jX4PIsin593/yqI63v4J2gfIj6MOCTobGuPDNrA8hFVdW64OtalQiidN5uEzwAcdqWh+vABwwToXPa7o388t6Hme/Qx9AWm2mJ2AG2CqJ0g8s6YrAX69817PzWcsZKrcflbu/P8wKSefHAz7O5c1pB9fC/SKQvVt680Jranr1IwID8LWo2VmHXfAWAYzaGSdi6JUo/CZ9SRXywP6IOlunh0YI1d3oEd/DHFXrQTSdEICH1mLbn1S2OBVcQAlxDVgSTRL3Ry4JLiw3ZJXFpfE3FGdBf/6DTJIr5RycOZVR823AdBC3A0a/udMTVfLOEZybkGIn+fCcmmHoFQPf0jXgnLB7xuSs6bU0B3NYaEDLeG5ojT/czgJ9U737UeTVlJ0JHjOmO/ObqYLefIaEK6GgFBDpzYe8m4GW2afV0YBh8ew2Ja966UORqo1HqXe9np4SzqXeZAtKXJdBT+KP+C0hFybxYAmOJzKArUCqOyxctySIOD59OjBIGQf2dGcAgoxU14C1FIuRoMbHkAn6HZXn4j3Q2KtdS8JK/ohneMS81QzvEaobcbK/oeF9Fk4T9++XVXh2ha4O5Y2yeMFFKaYl7bw7UxOXxq/ePx71D4icU=",
        "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)(82310400026)(14060799003)(1800799024)(35042699022)(376014)(36860700013)(13003099007);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "\n 7xctwAVV7godT41+QMGHtTXQk+OaldiL6bSq1xXchI2trYiFK8hifSR2RJmAxYaJBGb/p62MR+bDDPWhJi0bG8nbHDVgnp9BVFztIESnbibwHv5j+5Ql8LDN1mywek/+Kq5HWtr0Y8UkVGuuPL1Anv8P7ha1G6tEysywIgxayO7p6CI62MM1VEAbrUga/hxGr/dWGfPYOtuF0dyYTtpLClZyfpqy15XoHgwmuWoppWJjZ7m0O40Jkhs0SNUHvVeEIxRFdPFNc3CvOr9if/BCZql3gbT2ak2LwAQWNWAJoY89JBkWHDNU+CapqUoGcWRdCw0xrBDWrJg2ii2CbEMIdDLVdRjoKtgHHpUFOY+2JwTOfmgI8MEYaD/VhHmdxxu4Tu6PVfYJJnya0RMAZVgb848CcGxsExaezuypuVqAVBqOasMvBk8LEGs/8+LGVXs5",
        "X-OriginatorOrg": "arm.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "10 Feb 2026 11:33:16.0178 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 88f7b897-b80b-4960-144c-08de68982eb8",
        "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 DB1PEPF000509F8.eurprd02.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": "When basic block vectorization is extended to support predicated\nvector tails, it attempts to vectorize more stores. This is only\ndone if the cost model deems it profitable, but the cost model\nassumes that vec_init is cheap; in practice, that was not always\ntrue.\n\nFor example,\n\n  uint8_t * vectp.2689;\n  vector([4,4]) unsigned char _846;\n  vector([4,4]) <signed-boolean:4> slp_mask_848;\n  ...\n  _846 = {_20, _30, _40, _50};\n  vectp.2689_847 = src_61(D) + 64;\n  slp_mask_848 = .WHILE_ULT (0, 4, { 0, ... });\n  .MASK_STORE (vectp.2689_847, 8B, slp_mask_848, _846);\n\nwas expected to have a vector cost of 4 (the same as the scalar\ncost) but the code actually generated for\n\n_846 = {_20, _30, _40, _50};\n\nwas a repetitive series of write-modify-read operations\nusing four stack locations for temporary storage:\n\n(set (reg:VNx16BI Y)\n        (const_vector:VNx16BI repeat [\n                (const_int 1 [0x1])\n            ]))\n\n(set (mem/c:VNx4QI (plus:DI (reg/f:DI 96 virtual-stack-vars)\n                (const_poly_int:DI [-O, -O])) [0  S[O, O] A8])\n        (unspec:VNx4QI [\n                (subreg:VNx4BI (reg:VNx16BI Y) 0)\n                (reg:VNx4QI 205 [ _845 ])\n            ] UNSPEC_PRED_X))\n\n(set (reg:QI Z)\n        (subreg:QI (reg:SI X [ _W ]) 0))\n\n(set (mem/c:QI (plus:DI (reg/f:DI 96 virtual-stack-vars)\n                (const_poly_int:DI [-O, -O])) [0  S1 A8])\n        (reg:QI Z))\n\n(set (reg:VNx4QI 205 [ _845 ])\n        (unspec:VNx4QI [\n                (subreg:VNx4BI (reg:VNx16BI V) 0)\n                (mem/c:VNx4QI (plus:DI (reg/f:DI 96 virtual-stack-vars)\n                        (const_poly_int:DI [-O, -O])) [0  S[O, O] A8])\n            ] UNSPEC_PRED_X))\n\n(repeated four times)\n\nwhich compiled to something like:\n\n\taddpl   x5, sp, #6\n\tst1b {z27.s}, p7, sp, #3, mul vl\n\tstrb w10, [x5]\n\tld1b {z28.s}, p7/z, sp, #3, mul vl\n\n(repeated four times)\n\nWith these changes, the compiled code is instead:\n\n\tmov\tz31.b, w0\n\tinsr\tz31.s, s28\n\tinsr\tz31.s, s29\n\tinsr\tz31.s, s30\n\nwhich is not yet optimal but is a great improvement.\n\nTo achieve that, \"vec_init<mode><Vel>\" was modified to\naccept all SVE vector modes, which means that the\nassociated function aarch64_sve_expand_vector_init\nmust now handle all partial modes (namely, VNx8QI, VNx4QI,\nVNx2QI, VNx4HI, VNx2HI, VNx2SI, VNx2HF, VNx4HF, VNx2SF,\nVNx2BF, VNx4BF).\n\nI verified that the following dependencies already\nhandle partial vector modes:\n- \"@aarch64_sve_<perm_insn><mode>\" (for ZIP1)\n- \"*vec_duplicate<mode>_reg\"\n- maybe_code_for_aarch64_sve_rev\n\nI did not verify that emit_move_insn (which is a dependency\nof aarch64_sve_expand_vector_init_handle_trailing_constants)\nhandles partial vector modes, but it seems highly likely.\n\n\"vec_shl_insert_<mode>\" has been modified to accept SVE_ALL\ninstead of only SVE_FULL and operate on container instead of\nelement types.\n\ngcc/ChangeLog:\n\n\t* config/aarch64/aarch64-sve.md: Update\n\tvec_init<mode><Vel> and vec_shl_insert_<mode> to\n\taccept all SVE vector modes.\n\ngcc/testsuite/ChangeLog:\n\n\t* gcc.target/aarch64/sve/slp_stack.c: New test.\n\n---\n gcc/config/aarch64/aarch64-sve.md             | 16 +++++------\n .../gcc.target/aarch64/sve/slp_stack.c        | 27 +++++++++++++++++++\n 2 files changed, 35 insertions(+), 8 deletions(-)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/slp_stack.c",
    "diff": "diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md\nindex 97fd9516959..8f783afb51d 100644\n--- a/gcc/config/aarch64/aarch64-sve.md\n+++ b/gcc/config/aarch64/aarch64-sve.md\n@@ -2945,7 +2945,7 @@ (define_insn \"@aarch64_sve_ld1ro<mode>\"\n ;; -------------------------------------------------------------------------\n \n (define_expand \"vec_init<mode><Vel>\"\n-  [(match_operand:SVE_FULL 0 \"register_operand\")\n+  [(match_operand:SVE_ALL 0 \"register_operand\")\n     (match_operand 1 \"\")]\n   \"TARGET_SVE\"\n   {\n@@ -2989,17 +2989,17 @@ (define_expand \"vec_initvnx16qivnx2qi\"\n \n ;; Shift an SVE vector left and insert a scalar into element 0.\n (define_insn \"vec_shl_insert_<mode>\"\n-  [(set (match_operand:SVE_FULL 0 \"register_operand\")\n-\t(unspec:SVE_FULL\n-\t  [(match_operand:SVE_FULL 1 \"register_operand\")\n+  [(set (match_operand:SVE_ALL 0 \"register_operand\")\n+\t(unspec:SVE_ALL\n+\t  [(match_operand:SVE_ALL 1 \"register_operand\")\n \t   (match_operand:<VEL> 2 \"aarch64_reg_or_zero\")]\n \t  UNSPEC_INSR))]\n   \"TARGET_SVE\"\n   {@ [ cons: =0 , 1 , 2  ; attrs: movprfx ]\n-     [ ?w       , 0 , rZ ; *              ] insr\\t%0.<Vetype>, %<vwcore>2\n-     [ w        , 0 , w  ; *              ] insr\\t%0.<Vetype>, %<Vetype>2\n-     [ ??&w     , w , rZ ; yes            ] movprfx\\t%0, %1\\;insr\\t%0.<Vetype>, %<vwcore>2\n-     [ ?&w      , w , w  ; yes            ] movprfx\\t%0, %1\\;insr\\t%0.<Vetype>, %<Vetype>2\n+     [ ?w       , 0 , rZ ; *              ] insr\\t%0.<Vctype>, %<vccore>2\n+     [ w        , 0 , w  ; *              ] insr\\t%0.<Vctype>, %<Vctype>2\n+     [ ??&w     , w , rZ ; yes            ] movprfx\\t%0, %1\\;insr\\t%0.<Vctype>, %<vccore>2\n+     [ ?&w      , w , w  ; yes            ] movprfx\\t%0, %1\\;insr\\t%0.<Vctype>, %<Vctype>2\n   }\n   [(set_attr \"sve_type\" \"sve_int_general\")]\n )\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/slp_stack.c b/gcc/testsuite/gcc.target/aarch64/sve/slp_stack.c\nnew file mode 100644\nindex 00000000000..76be816e0d6\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/slp_stack.c\n@@ -0,0 +1,27 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2 -ftree-vectorize -mcpu=neoverse-n2 --param=aarch64-autovec-preference=sve-only -msve-vector-bits=scalable\" } */\n+\n+#include <stdint.h>\n+\n+/* Without an efficient implementation of vec_init for partial SVE types, a\n+   decision to vectorize a group in the basic block vectorizer can result in\n+   code that repeatedly stores a whole vector on the stack, overwrites one\n+   element, reloads the whole vector, stores it to another location,\n+   overwrites another element, etc. This is a fairly minimal reproducer.  */\n+void\n+vec_slp_pathological_stack (uint8_t *src)\n+{\n+  int lt = src[-33];\n+  int l0 = src[-1];\n+  int l1 = src[31];\n+  int t0 = src[-32];\n+  int t1 = src[-31];\n+  int t2 = src[-30];\n+  src[64] = (l1 + (2 * l0) + lt + 2) >> 2;\n+  src[65] = (lt + t0 + 1) >> 1;\n+  src[66] = (t0 + t1 + 1) >> 1;\n+  src[67] = (t1 + t2 + 1) >> 1;\n+}\n+\n+/* { dg-final { scan-assembler-not {sp} } }\n+ */\n",
    "prefixes": [
        "v9",
        "08/11"
    ]
}