Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2228682/?format=api
{ "id": 2228682, "url": "http://patchwork.ozlabs.org/api/patches/2228682/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/patch/20260427080642.371531-5-artemiy.volkov@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": "<20260427080642.371531-5-artemiy.volkov@arm.com>", "list_archive_url": null, "date": "2026-04-27T08:06:11", "name": "[4/4] aarch64/sve: combine AdvSIMD and SVE vec_duplicates", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "19fafd866c7c64f780a11a2f712d9a9b8f035985", "submitter": { "id": 91911, "url": "http://patchwork.ozlabs.org/api/people/91911/?format=api", "name": "Artemiy Volkov", "email": "artemiy.volkov@arm.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/gcc/patch/20260427080642.371531-5-artemiy.volkov@arm.com/mbox/", "series": [ { "id": 501601, "url": "http://patchwork.ozlabs.org/api/series/501601/?format=api", "web_url": "http://patchwork.ozlabs.org/project/gcc/list/?series=501601", "date": "2026-04-27T08:06:07", "name": "aarch64: vector initialization improvements", "version": 1, "mbox": "http://patchwork.ozlabs.org/series/501601/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2228682/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2228682/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=dE7ixVU5;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=dE7ixVU5;\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=dE7ixVU5;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=dE7ixVU5", "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.84.33" ], "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 4g3x8L2WMRz1xvV\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 18:10:42 +1000 (AEST)", "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 460C74BB3B8E\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 27 Apr 2026 08:10:40 +0000 (GMT)", "from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010033.outbound.protection.outlook.com [52.101.84.33])\n by sourceware.org (Postfix) with ESMTPS id 432B34B99F6C\n for <gcc-patches@gcc.gnu.org>; Mon, 27 Apr 2026 08:08:31 +0000 (GMT)", "from DUZPR01CA0353.eurprd01.prod.exchangelabs.com\n (2603:10a6:10:4b8::16) by DU0PR08MB9440.eurprd08.prod.outlook.com\n (2603:10a6:10:42c::16) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 27 Apr\n 2026 08:08:24 +0000", "from DB1PEPF00050A01.eurprd03.prod.outlook.com\n (2603:10a6:10:4b8:cafe::9a) by DUZPR01CA0353.outlook.office365.com\n (2603:10a6:10:4b8::16) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.26 via Frontend Transport; Mon,\n 27 Apr 2026 08:08:24 +0000", "from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DB1PEPF00050A01.mail.protection.outlook.com (10.167.242.43) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9791.48\n via Frontend Transport; Mon, 27 Apr 2026 08:08:23 +0000", "from CWLP265CA0511.GBRP265.PROD.OUTLOOK.COM (2603:10a6:400:18c::16)\n by AS8PR08MB6216.eurprd08.prod.outlook.com (2603:10a6:20b:29c::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9846.26; Mon, 27 Apr\n 2026 08:07:21 +0000", "from AM2PEPF0001C711.eurprd05.prod.outlook.com\n (2603:10a6:400:18c:cafe::c3) by CWLP265CA0511.outlook.office365.com\n (2603:10a6:400:18c::16) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9846.26 via Frontend Transport; Mon,\n 27 Apr 2026 08:07:21 +0000", "from nebula.arm.com (172.205.89.229) by\n AM2PEPF0001C711.mail.protection.outlook.com (10.167.16.181) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9846.18 via Frontend Transport; Mon, 27 Apr 2026 08:07:21 +0000", "from AZ-NEU-EX03.Arm.com (10.240.25.137) 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; Mon, 27 Apr\n 2026 08:06:58 +0000", "from ip-10-249-56-202.eu-west-1.compute.internal (10.249.56.202) by\n mail.arm.com (10.240.25.137) with Microsoft SMTP Server id\n 15.2.2562.29 via Frontend Transport; Mon, 27 Apr 2026 08:06:58 +0000" ], "DKIM-Filter": [ "OpenDKIM Filter v2.11.0 sourceware.org 460C74BB3B8E", "OpenDKIM Filter v2.11.0 sourceware.org 432B34B99F6C" ], "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 432B34B99F6C", "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 432B34B99F6C", "ARC-Seal": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1777277311; cv=pass;\n b=ISiMoRdoQbR0vbrR+VVTFG3MaT1D2LwLrUxen8sg3EGj2BGveFxUuGhGNc06VvAgqOqOKfmhMQPFwv0b1lGCQdVoPRKLqLzi3vkvNzpP4Q7Dr7rWXOJhdIyp3W6zsKPu+E7QeiYVvSq5znipuDH50VGVbe5vL7JBnh1i/lLZD/0=", "i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=iBx3Z6T2JnwAX/w+sl1f5Xo2WBv5TpAFN9G6cLkoE4patXXANKO2gpxaof5BOhHYOIr/qxLOztv/mt2ncDlubfEay+d/xN9siTaTpIhF1lwEhft6hk4od2lCWa9sFILOAN9RDrUJSZEjzX7eLPK+ROUxrHDrR3FsTXrUnURIC0+cbInI3je5TioVxdHIPzbB8AmEV90pNfPhuUze9VaX3L0/CSdud7kMGS2msoomO6lcb7bKyg35aIqi8FRCEH3jTNkara0dJi7BGa6nvnX2EJRLuayY7q23UMdKIWIAzXhU5lGQ1zU6VuTd8R9htKO6T5TxEHhyeL1jtYpHxyBMVA==", "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=mmQyWycfs/UG+BuMI+R4U7qlDZqgjTPtTIDvOav6bRer0EeDLUf9zvL+yAoDQSrO8vFJIRw2s0bq8/HKiUqsyQk58QTONrhXXuSaajd/m+1XG++IDIo3MBwg8Z1DN3eybaTJN1gUgDgjlcrA/vSBKmIihGIbz7qVObXzbJgW1vbJ7ytxz7wtTBdwVQtk7ixbQ4KnEYOZd5oQST8KQ40o9Frsmh/hW4wDckH2tQqju0t/fKE3UsOHY9tUfV4XW9QidIT29Lq9Zor2xqYpbvuP+hSBkukOXYxgUvR5k/QU1HsqsyAvjqdhHMsGZPkyYg/2MBSNPnAf+gxkUcOOiKPYwA==" ], "ARC-Message-Signature": [ "i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777277311; c=relaxed/simple;\n bh=nZ1LDP2uoqOVRaysRg75MCz+PhrT80FdBHPaGS8jzNE=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=Nuo/yvUi5M9f2LCI5yC0W0KCZKnwGbfbN5WSvJGP5oreVtgZsZVFOz7LAJFy8XEMYeE4DWEysp/3YP3tSDDGAOuKrh84VbohwDOXNhNKvxBgdZFZ2fEy1cjKnkqCr+oAGSmr3Bv1l2Owwx/V9uhO8ykk7Qk53px5yKbqjVropiw=", "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=sSnV27HxbER58XOSIj9ZWOy060g8E+RgFxAICiTM+t4=;\n b=LCyUAkjTutzoGdHbu83WnVCyQIJbq77JlHsXr9FwcxyjFqtxV6pXwf0UCehK3+dHmX7Ld6wdxvTnu540p3Aio/2uUehbpU+dOIE/HIryzua7RffBizd3QmL7dgxMWjIxP5LH+w5VKmLTIR8ExAnbcUSHGnfMW8DpnQwAo3eOPYR3nNcRq20nEp6z23DMtRUB2aTqvnvfbtyJbO6HoMuc0aOZMoqWOhHI0llIpRTMj8UTRImQFNlgLU6mIbbH1iEDDApILjDvi0TYgxh7eaDq7/jCMI6fkSNj9Jys1plrNwCMCnpnJt7H+TKWXSwXfwbBionFLaUrmShOLxI7CL8tNA==", "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=sSnV27HxbER58XOSIj9ZWOy060g8E+RgFxAICiTM+t4=;\n b=DAMaN390E5LC5HWIAeeVy8nXG9OjvUOfVsftYGZy6+UY/73+AFMBMf0mux078bgI88lS/7ICm0vBeFtPiunuB64bZDu9wOu9q8A35zix8/yY7D9DpCWZYS+YiWUb/NVXjZ8ZsvB6r7Z62h1xT1GzrgG3ZlXJkm9bFkL7jBTrdtwYGo0/fMGakuksea7yjDED/B1pRb9ZJIeOhgmAhpPWxoffvr9KSkWuS1jiIKP+K4m/DzffBAj6aLCbJUTQgnufZZPM+TSp6/kwLAEnwfhDzqcvy0Vbtitool8k8QyccvBqYEVE8NLYLEu77prPZ8imxLNqCv6i/mpWRYKbhfw6KQ==" ], "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=sSnV27HxbER58XOSIj9ZWOy060g8E+RgFxAICiTM+t4=;\n b=dE7ixVU5whJWqjvHsEqeG2WjMxpQjjHVajHVXDNZ2dmNy4yFGQFlvsX/waLDhCjWWFsiJtcBprdTiF4SsQVLfaobqc/3jFRCoBiu27gtISR32ojGH1OJldSWA7/Aqrbu1RhmGpl8YRKedudYL9XGd/x0X4FV4/1ttwCYcSYWbpA=", "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=sSnV27HxbER58XOSIj9ZWOy060g8E+RgFxAICiTM+t4=;\n b=dE7ixVU5whJWqjvHsEqeG2WjMxpQjjHVajHVXDNZ2dmNy4yFGQFlvsX/waLDhCjWWFsiJtcBprdTiF4SsQVLfaobqc/3jFRCoBiu27gtISR32ojGH1OJldSWA7/Aqrbu1RhmGpl8YRKedudYL9XGd/x0X4FV4/1ttwCYcSYWbpA=" ], "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": "Artemiy Volkov <artemiy.volkov@arm.com>", "To": "<gcc-patches@gcc.gnu.org>", "CC": "<tamar.christina@arm.com>, <wilco.dijkstra@arm.com>,\n <andrew.pinski@oss.qualcomm.com>, <richard.earnshaw@arm.com>,\n <ktkachov@nvidia.com>, <alice.carlotti@arm.com>, <alex.coplan@arm.com>,\n Artemiy Volkov <artemiy.volkov@arm.com>", "Subject": "[PATCH 4/4] aarch64/sve: combine AdvSIMD and SVE vec_duplicates", "Date": "Mon, 27 Apr 2026 08:06:11 +0000", "Message-ID": "<20260427080642.371531-5-artemiy.volkov@arm.com>", "X-Mailer": "git-send-email 2.43.0", "In-Reply-To": "<20260427080642.371531-1-artemiy.volkov@arm.com>", "References": "<20260427080642.371531-1-artemiy.volkov@arm.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain", "X-EOPAttributedMessage": "1", "X-MS-TrafficTypeDiagnostic": "\n AM2PEPF0001C711:EE_|AS8PR08MB6216:EE_|DB1PEPF00050A01:EE_|DU0PR08MB9440:EE_", "X-MS-Office365-Filtering-Correlation-Id": "fcb82c91-800d-4d83-c2c3-08dea4342762", "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|36860700016|1800799024|82310400026|22082099003|18002099003|56012099003;", "X-Microsoft-Antispam-Message-Info-Original": "\n ex9MSIqOleLkLPnAcnthxmcJdcR7wk9e3ANZqQJMDvBLqQULsuZUoTS3Qf2S8QGmP3hn+6xl1+doBqHsr0DUVQobmjwVaDQL+z25OV0fCCxT+rmR4WxgtFLtmvHKX/Hi/+47Y367qU1vHx6rMDCJr3MV7rlFz3ILkn1tiaH0XhrXmjUxaTmgcNS82JzyWUVljtmSVOT7pNaENFwwhgK42m4Vprmxs+3rLqFtG9AhHSWX6JB68msbjSjXVQUdboyM+7i/3sn2tHN+onaGCQeIGG3OekrhlPBtYJOLLGp+vvclPt6tLupC5w8Ftq6euzGLKDJxjENUWXGltLBoqEkbvQa89xZYsU3weSE9fO7Tf1PHNuu2cyurMJVW39bpttemIsj9yELFpDhhODJxKQ1LDOaMwtODsPhqh0Vskm2i6hC1eC47cH5dUCTZVlGkdQnHOpN+tJRKl+yd+iCb2EAcxCNPVuUcUrHeuKBQ00EpGV5orqTpLGguuxdsEoFdiowVLwZ8aKwRwus7ox0Y5MIAWTHixbtQKSOudpAASvkUwx6iLALanxiHVo1bfcwVvZQcN5cWaGGiyIaioMP6LPzy6bJp2bBm7aCAn3ogIXsyDTXwzWNmZC5nlGdyRn01GVLZZ6E10indAo3/oPA3YuhEXRzsDUkEAPkGJaPiUj5xjjqPFroH86Ovfh7ZtHGJTk9cPXO/M+Zd4vQIjZ+z0sJP23UujZf5M4mGSfzC9wOJxWM=", "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)(36860700016)(1800799024)(82310400026)(22082099003)(18002099003)(56012099003);\n DIR:OUT; SFP:1101;", "X-Exchange-RoutingPolicyChecked": "\n Y+yLFgWCwres9hdlqP9WCG2cJby8M4In+EgD8VU2kAF6Z5iIEOB8iNxrOuxX0nV1zKS465ji5rIO0WTYRI8gAdJheHn1cjWpLXd7DYHwgKlbQ4GyEqAYcK2Tc1JTw7V8og7gcEpDQqkuw6GExcsBt+XbXU7FwaZYGLrOCU2ITh6u7UI3hEin7Pj/uUBp30E1JF5xEqNlv5aLxfwvmiLtjjc0tQxv4/XH8qt0mHBko9H9XmHBdzRtOtuqSmX7ncZHtxArHpixNXwY26oUZaj4aLIs95bX+tKUMNEjJxnskPN2nkWmuRFjTaNV9zI9XZ3LSulsSc1OAKFGF8l6gnq1gw==", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "AS8PR08MB6216", "DU0PR08MB9440" ], "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n DB1PEPF00050A01.eurprd03.prod.outlook.com", "X-MS-PublicTrafficType": "Email", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 142990d6-5b1c-4ee8-5272-08dea43401ee", "X-Microsoft-Antispam": "BCL:0;\n ARA:13230040|35042699022|376014|82310400026|36860700016|14060799003|1800799024|56012099003|18002099003|22082099003|13003099007;", "X-Microsoft-Antispam-Message-Info": "\n nG0WAzMhbqWb4dow/ocrXAVjaxkD9NTH8mzO6J9crofYCM5blKxUA4hzd6BA3TkESyqXUTf4oWCWL30p11RxafZ3UnoJyq0ETXclC9JSm9hKXWUFw0gSGR7N12RypOrJVyBGztdGKRpvR2ahAvu+9zFzUzPzd/NtuAfivZsbYuzYT0N8qbJwXVxOHojefamqsXf7PD82DU0XVMprmJfg0K8+iXyCkNhPa+z7rPoIV/bYuA+mg3loHctREDMWl/0Tm+GWbGs4zoZz7ezpjINBu8Mn7OiR4vx++Yg6AusPuBjMgUGYxWUXfDAwCB66dQbRyJMlh4v1L/X1zQrgO7aL8rzOZkXbXwfvhIkUQuswWbCVEVIrXUbCeK2Ekk4r94DWSvQ2Y2qQDY4H7nAhhRvoBHvELtYvsJm2v3oylIuD4eO3GxuUxM+4boWF49yVIxnIqUuGyVk0E9jj/dGtXipKeOki5Q2JHlx2PJQ4U7E65J+LrTT+i1tl1WlIrKQ3Dqpb/ddTkeaQHStyWRh9UojBTy3vvm2/A/Me7xVJhOauAVarb77Aj2sSjmvheBXGwvRV9hiaOO6XbOAUbEzzsUwl2hEp+z/ApbLMfvDuJBSlgBga18q1ql0L0JrzjGWEpAq5nkAArD2b61U4hrCSwCxwPmX7vmTGxO//bTfy1O8Wosw5iG09dk0V0DZIDqLkhr8XnkqgRhpRRZ1bKRABXcfpj7b82br7F9Qnw9aYlLe0QWc=", "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)(35042699022)(376014)(82310400026)(36860700016)(14060799003)(1800799024)(56012099003)(18002099003)(22082099003)(13003099007);\n DIR:OUT; SFP:1101;", "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1", "X-MS-Exchange-AntiSpam-MessageData-0": "\n 8X03kSApbiGBdu++tqA/eozi4z9qPZsDIhKeWKZm4zmgWxgG0Qx4uR7jHbS+JJxl/NKZQNKih2oFaANyqHkq3Fy6Vkz7ygHn5e9LiwQyCGR+GoIjjRbRfny1h1ds9o4ZqDTTKrB+puWYcTHSdiVYnBa7RlgeLs43CqBflII9nvg+vE20GujKLFuWLFmHxi7uotBLlzpjD05JXCTY31OXpOiQMekGeUZvcuPLW+eS5VnbkmDisLTPfD5Wi90rVW+FC0Gh9I0anGImQzX9Xe00eMuP32s9D5fqDbcHObJiVeZ7J5tk+C8WOjaFV7MHbvaeu7+/eHpr4IbupfuzQAkcXHRLxpnd9LMkufg7OkRI7pkAYdwuMurKOmHNKJIPj3CpXBrQOlQt/hd/RynCYhYpcE1uQaHWVeG2w2+E+/RVTQCu8jYzNesmmIHQiguPYc61", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Apr 2026 08:08:23.6616 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n fcb82c91-800d-4d83-c2c3-08dea4342762", "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 DB1PEPF00050A01.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": "Currently, to duplicate a 64-bit or narrower value into a SVE register, we\nchoose to go via an intermediate 128-bit AdvSIMD register, viz.:\n\nsvfloat32_t foo(float x) {\n return svdupq_n_f32(x, x, x, x);\n}\n\nwhich will produce the following code:\n\n dup v0.4s, v0.s[0]\n dup z0.q, z0.q[0]\n ret\n\nwhen compiled with -O2 -march=armv9-a+sve.\n\nThis can be simplified into a single dup instruction going to an SVE\nregister directly from a scalar (or a smaller vector) value:\n\n\tmov\tz0.s, s0\n\tret\n\nTo facilitate this, this patch adds a pattern that combine can use to\nmerge two vec_duplicate instructions (scalar -> AdvSIMD and AdvSIMD ->\nSVE) into a single one (scalar -> SVE).\n\nTo demonstrate the effect of this patch, the vec-init-23.c test from\nAdvSIMD was reused as a new SVE test (vec_init_5.c).\n\ngcc/ChangeLog:\n\n * config/aarch64/aarch64-sve.md\n\t(*aarch64_vec_duplicate_subvector<SVE_FULL:mode><VQ:mode><VDUP:mode>):\n\tNew pattern.\n\ngcc/testsuite/ChangeLog:\n\n * gcc.target/aarch64/sve/vec_init_5.c: New test.\n---\n gcc/config/aarch64/aarch64-sve.md | 14 +\n .../gcc.target/aarch64/sve/vec_init_5.c | 380 ++++++++++++++++++\n 2 files changed, 394 insertions(+)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c", "diff": "diff --git a/gcc/config/aarch64/aarch64-sve.md b/gcc/config/aarch64/aarch64-sve.md\nindex 019630eb8d2..46bb8eb82ad 100644\n--- a/gcc/config/aarch64/aarch64-sve.md\n+++ b/gcc/config/aarch64/aarch64-sve.md\n@@ -2890,6 +2890,20 @@\n [(set_attr \"sve_type\" \"sve_int_general\")]\n )\n \n+;; Initialize an SVE vector by duplicating a 128-bit AdvSIMD register that\n+;; itself contains a duplicated scalar or subvector value.\n+(define_insn \"*aarch64_vec_duplicate_subvector<SVE_FULL:mode><VQ:mode><VDUP:mode>\"\n+ [(set (match_operand:SVE_FULL 0 \"register_operand\")\n+\t(vec_duplicate:SVE_FULL\n+\t (vec_duplicate:VQ\n+\t (match_operand:VDUP 1 \"register_operand\"))))]\n+ \"TARGET_SVE\"\n+ {@ [ cons: =0 , 1 ]\n+ [ w , r ] mov\\t%0.<VDUP:single_type>, %<VDUP:single_wx>1\n+ [ w , w ] mov\\t%0.<VDUP:single_type>, %<VDUP:single_type>1\n+ }\n+)\n+\n ;; This is used for vec_duplicate<mode>s from memory, but can also\n ;; be used by combine to optimize selects of a vec_duplicate<mode>\n ;; with zero.\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c b/gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c\nnew file mode 100644\nindex 00000000000..3decc9ab1b6\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/vec_init_5.c\n@@ -0,0 +1,380 @@\n+/* { dg-do compile } */\n+/* { dg-options \"-O2\" } */\n+/* { dg-final { check-function-bodies \"**\" \"\" \"\" } } */\n+\n+#include <arm_sve.h>\n+\n+#define TESTCASE(TYPE, ETYPE, T, SZ, NUM, MULT, ...)\\\n+ sv##TYPE##SZ##_t test_##TYPE##SZ##_##NUM (ETYPE x0, ETYPE x1, ETYPE x2, ETYPE x3,\\\n+\t\t\t\t\t ETYPE x4, ETYPE x5, ETYPE x6, ETYPE x7)\\\n+ {\\\n+ return svdupq_n_##T##SZ (__VA_ARGS__);\\\n+ }\n+\n+#include \"../vec-init-23.c\"\n+\n+/*\n+** test_int8_1:\n+**\tmov\tz0\\.b, w0\n+**\tret\n+*/\n+\t\n+/*\n+** test_int8_2:\n+**\tbfi\tw0, w1, 8, 8\n+**\tmov\tz0\\.h, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int8_3:\n+**\tbfi\tw0, w1, 8, 8\n+**\tbfi\tw0, w2, 16, 8\n+**\tbfi\tw0, w3, 24, 8\n+**\tmov\tz0\\.s, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int8_4:\n+**\tbfi\tw0, w2, 8, 8\n+**\tbfi\tw1, w3, 8, 8\n+**\tbfi\tw0, w4, 16, 8\n+**\tbfi\tw1, w5, 16, 8\n+**\tbfi\tw0, w6, 24, 8\n+**\tbfi\tw1, w7, 24, 8\n+**\tdup\tv31\\.2s, w0\n+**\tdup\tv30\\.2s, w1\n+**\tzip1\tv31\\.16b, v31\\.16b, v30\\.16b\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int8_5:\n+**\tuxtb\tw0, w0\n+**\tmov\tz0\\.h, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int8_6:\n+**\tmov\tw1, 0\n+**\tbfi\tw1, w0, 8, 8\n+**\tmov\tz0\\.h, w1\n+**\tret\n+*/\n+\n+/*\n+** test_int8_7:\n+**\tmov\tw2, 16777472\n+**\tbfi\tw2, w0, 0, 8\n+**\tbfi\tw2, w1, 8, 8\n+**\tmov\tz0\\.s, w2\n+**\tret\n+*/\n+\n+/*\n+** test_int8_8:\n+**\tmov\tw2, 16777472\n+**\tbfi\tw2, w0, 16, 8\n+**\tbfi\tw2, w1, 24, 8\n+**\tmov\tz0\\.s, w2\n+**\tret\n+*/\n+\n+/*\n+** test_int8_9:\n+**\tmov\tw2, 16842752\n+**\tbfi\tw2, w0, 0, 8\n+**\tbfi\tw2, w1, 16, 8\n+**\tmov\tz0.s, w2\n+**\tret\n+*/\n+\n+/*\n+** test_int8_10:\n+**\tbfi\tw0, w1, 8, 8\n+**\tbfi\tw0, w2, 16, 8\n+**\tbfi\tw0, w3, 24, 8\n+**\tdup\tv31\\.2s, w0\n+**\tadrp\tx0, .LANCHOR[0-9]+\n+**\tldr\td30, \\[x0, #:lo12:.LANCHOR[0-9]+\\]\n+**\tzip1\tv31\\.16b, v31\\.16b, v30\\.16b\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int8_11:\n+**\tbfi\tw0, w1, 8, 8\n+**\tadrp\tx4, .LANCHOR[0-9]+\n+**\tbfi\tw0, w2, 16, 8\n+**\tldr\td31, \\[x4, #:lo12:\\.LANCHOR[0-9]+\\]\n+**\tbfi\tw0, w3, 24, 8\n+**\tdup\tv30\\.2s, w0\n+**\tzip1\tv31\\.16b, v31\\.16b, v30\\.16b\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int8_12:\n+**\tmov\tw4, 33685504\n+**\tbfi\tw4, w0, 0, 8\n+**\tmov\tw0, 257\n+**\tmovk\tw0, 0x303, lsl 16\n+**\tbfi\tw0, w1, 0, 8\n+**\tbfi\tw4, w2, 16, 8\n+**\tbfi\tw0, w3, 16, 8\n+**\tdup\tv31\\.2s, w4\n+**\tdup\tv30\\.2s, w0\n+**\tzip1\tv31\\.16b, v31\\.16b, v30\\.16b\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int8_13:\n+**\tmov\tw4, 33685504\n+**\tbfi\tw4, w0, 8, 8\n+**\tmov\tw0, 257\n+**\tmovk\tw0, 0x303, lsl 16\n+**\tbfi\tw0, w1, 8, 8\n+**\tbfi\tw4, w2, 24, 8\n+**\tbfi\tw0, w3, 24, 8\n+**\tdup\tv31\\.2s, w4\n+**\tdup\tv30\\.2s, w0\n+**\tzip1\tv31\\.16b, v31\\.16b, v30\\.16b\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_float16_1:\n+**\tfcvt\th0, s0\n+**\tmov\tz0\\.h, h0\n+**\tret\n+*/\n+\n+/*\n+** test_float16_2:\n+**\tfcvt\th1, s1\n+**\tfcvt\th0, s0\n+**\tuzp1\tv0\\.4h, v0\\.4h, v1\\.4h\n+**\tmov\tz0\\.s, s0\n+**\tret\n+*/\n+\n+/*\n+** test_float16_3:\n+**\tuzp1\tv2\\.2s, v0\\.2s, v2\\.2s\n+**\tuzp1\tv3\\.2s, v1\\.2s, v3\\.2s\n+**\tzip1\tv3\\.4s, v2\\.4s, v3\\.4s\n+**\tfcvtn\tv3\\.4h, v3\\.4s\n+**\tmov\tz0\\.d, d3\n+**\tret\n+*/\n+\n+/*\n+** test_float16_4:\n+**\tfcvt\th0, s0\n+**\tfmov\th0, h0\n+**\tmov\tz0\\.s, s0\n+**\tret\n+*/\n+\n+/*\n+** test_float16_5:\n+**\tmovi\tv31\\.4h, #0\n+**\tfcvt\th0, s0\n+**\tuzp1\tv0\\.4h, v31\\.4h, v0\\.4h\n+**\tmov\tz0\\.s, s0\n+**\tret\n+*/\n+\n+/*\n+** test_float16_6:\n+**\tfcvt\th2, s0\n+**\tfcvt\th1, s1\n+**\tfmov\th31, 1.0e\\+0\n+**\tfmov\th2, h2\n+**\tuzp1\tv1\\.4h, v1\\.4h, v31\\.4h\n+**\tdup\tv0\\.2s, v2\\.s\\[0\\]\n+**\tdup\tv1\\.2s, v1\\.s\\[0\\]\n+**\tzip1\tv0\\.8h, v0\\.8h, v1\\.8h\n+**\tdup\tz0\\.q, z0\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_float16_7:\n+**\tfcvt\th3, s0\n+**\tfcvt\th2, s1\n+**\tmovi\tv0\\.4h, #0\n+**\tfmov\th1, 1.0e\\+0\n+**\tuzp1\tv1\\.4h, v1\\.4h, v2\\.4h\n+**\tuzp1\tv0\\.4h, v0\\.4h, v3\\.4h\n+**\tdup\tv1\\.2s, v1\\.s\\[0\\]\n+**\tdup\tv0\\.2s, v0\\.s\\[0\\]\n+**\tzip1\tv0\\.8h, v0\\.8h, v1\\.8h\n+**\tdup\tz0\\.q, z0\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_float16_8:\n+**\tfcvt\th1, s1\n+**\tfcvt\th0, s0\n+**\tmovi\tv31\\.2s, 0x3c, lsl 24\n+**\tuzp1\tv0\\.4h, v0\\.4h, v1.4h\n+**\tdup\tv0\\.2s, v0\\.s\\[0\\]\n+**\tzip1\tv0\\.8h, v31\\.8h, v0\\.8h\n+**\tdup\tz0\\.q, z0\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int16_1:\n+**\tmov\tz0\\.h, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int16_2:\n+**\tbfi\tw0, w1, 16, 16\n+**\tmov\tz0\\.s, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int16_3:\n+**\tbfi\tw0, w2, 16, 16\n+**\tbfi\tw1, w3, 16, 16\n+**\tdup\tv31\\.2s, w0\n+**\tdup\tv30\\.2s, w1\n+**\tzip1\tv31\\.8h, v31\\.8h, v30\\.8h\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int16_4:\n+**\tuxth\tw0, w0\n+**\tmov\tz0\\.s, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int16_5:\n+**\tmov\tw1, 0\n+**\tbfi\tw1, w0, 16, 16\n+**\tmov\tz0\\.s, w1\n+**\tret\n+*/\n+\n+/*\n+** test_int16_6:\n+**\tuxth\tw0, w0\n+**\tdup\tv31\\.2s, w0\n+**\tmov\tw0, 1\n+**\tbfi\tw1, w0, 16, 16\n+**\tdup\tv30\\.2s, w1\n+**\tzip1\tv31\\.8h, v31\\.8h, v30\\.8h\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int16_7:\n+**\tmov\tw2, 0\n+**\tbfi\tw2, w0, 16, 16\n+**\tmov\tw0, 65537\n+**\tbfi\tw0, w1, 16, 16\n+**\tdup\tv31\\.2s, w2\n+**\tdup\tv30\\.2s, w0\n+**\tzip1\tv31\\.8h, v31\\.8h, v30\\.8h\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int16_8:\n+**\tbfi\tw0, w1, 16, 16\n+**\tmovi\tv31\\.2s, 0x1, lsl 16\n+**\tdup\tv30\\.2s, w0\n+**\tzip1\tv31\\.8h, v31\\.8h, v30\\.8h\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_float32_1:\n+**\tmov\tz0\\.s, s0\n+**\tret\n+*/\n+\n+/*\n+** test_float32_2:\n+**\tuzp1\tv0\\.2s, v0\\.2s, v1\\.2s\n+**\tmov\tz0\\.d, d0\n+**\tret\n+*/\n+\n+/*\n+** test_float32_3:\n+**\tfmov\ts0, s0\n+**\tmov\tz0\\.d, d0\n+**\tret\n+*/\n+\n+/*\n+** test_float32_4:\n+**\tmovi\tv31\\.2s, #0\n+**\tuzp1\tv0\\.2s, v31\\.2s, v0\\.2s\n+**\tmov\tz0\\.d, d0\n+**\tret\n+*/\n+\n+/*\n+** test_int32_1:\n+**\tmov\tz0\\.s, w0\n+**\tret\n+*/\n+\n+/*\n+** test_int32_2:\n+**\tfmov\ts0, w0\n+**\tins\tv0\\.s\\[1\\], w1\n+**\tmov\tz0\\.d, d0\n+**\tret\n+*/\n+\n+/*\n+** test_int32_3:\n+**\tfmov\ts0, w0\n+**\tmov\tz0\\.d, d0\n+**\tret\n+*/\n+\n+/*\n+** test_int32_4:\n+**\tdup\tv30\\.2s, w0\n+**\tmovi\tv31\\.2s, 0\n+**\tzip1\tv31\\.4s, v31\\.4s, v30\\.4s\n+**\tdup\tz0\\.q, z31\\.q\\[0\\]\n+**\tret\n+*/\n+\n+/*\n+** test_int64_1:\n+**\tmov\tz0\\.d, x0\t\n+**\tret\n+*/\n+\n+/*\n+** test_float64_1:\n+**\tmov\tz0\\.d, d0\t\n+**\tret\n+*/\n+\n", "prefixes": [ "4/4" ] }