{"id":2175651,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175651/?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":"<20251218171459.75831-4-claudio.bantaloukas@arm.com>","date":"2025-12-18T17:14:53","name":"[v5,3/9] aarch64: add widening sme2 fp8 conversions","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"427f2359bd1e8b471752ca250dd043daea1f08ac","submitter":{"id":88972,"url":"http://patchwork.ozlabs.org/api/1.0/people/88972/?format=json","name":"Claudio Bantaloukas","email":"claudio.bantaloukas@arm.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/20251218171459.75831-4-claudio.bantaloukas@arm.com/mbox/","series":[{"id":485887,"url":"http://patchwork.ozlabs.org/api/1.0/series/485887/?format=json","date":"2025-12-18T17:14:53","name":"aarch64: Add fp8 sme 2.1 features per ACLE 2024Q4","version":5,"mbox":"http://patchwork.ozlabs.org/series/485887/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175651/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=PdUwiGwl;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=PdUwiGwl;\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=PdUwiGwl;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=PdUwiGwl","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.68"],"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 4dXHRL6N11z1y2f\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 04:17:33 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 5B1EF4BA2E22\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 17:17:31 +0000 (GMT)","from GVXPR05CU001.outbound.protection.outlook.com\n (mail-swedencentralazon11013068.outbound.protection.outlook.com\n [52.101.83.68])\n by sourceware.org (Postfix) with ESMTPS id 419824BA2E05\n for <gcc-patches@gcc.gnu.org>; Thu, 18 Dec 2025 17:16:37 +0000 (GMT)","from DUZPR01CA0162.eurprd01.prod.exchangelabs.com\n (2603:10a6:10:4bd::10) by MRWPR08MB11759.eurprd08.prod.outlook.com\n (2603:10a6:501:98::14) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.6; Thu, 18 Dec\n 2025 17:16:30 +0000","from DB1PEPF000509F1.eurprd03.prod.outlook.com\n (2603:10a6:10:4bd:cafe::96) by DUZPR01CA0162.outlook.office365.com\n (2603:10a6:10:4bd::10) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.8 via Frontend Transport; Thu,\n 18 Dec 2025 17:16:42 +0000","from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DB1PEPF000509F1.mail.protection.outlook.com (10.167.242.75) with Microsoft\n SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6\n via Frontend Transport; Thu, 18 Dec 2025 17:16:30 +0000","from DB9PR05CA0021.eurprd05.prod.outlook.com (2603:10a6:10:1da::26)\n by AM8PR08MB5700.eurprd08.prod.outlook.com (2603:10a6:20b:1d5::20)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9412.9; Thu, 18 Dec\n 2025 17:15:25 +0000","from DB1PEPF000509F3.eurprd02.prod.outlook.com\n (2603:10a6:10:1da:cafe::a3) by DB9PR05CA0021.outlook.office365.com\n (2603:10a6:10:1da::26) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.6 via Frontend Transport; Thu,\n 18 Dec 2025 17:15:16 +0000","from nebula.arm.com (172.205.89.229) by\n DB1PEPF000509F3.mail.protection.outlook.com (10.167.242.149) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9434.6 via Frontend Transport; Thu, 18 Dec 2025 17:15:25 +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; Thu, 18 Dec\n 2025 17:15:08 +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; Thu, 18 Dec\n 2025 17:15:07 +0000","from e72c20ac6da1.eu-west-1.compute.internal (10.249.56.29) by\n mail.arm.com (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29 via Frontend\n Transport; Thu, 18 Dec 2025 17:15:07 +0000"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org 5B1EF4BA2E22","OpenDKIM Filter v2.11.0 sourceware.org 419824BA2E05"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 419824BA2E05","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 419824BA2E05","ARC-Seal":["i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1766078197; cv=pass;\n b=XY3dUTfb6VQ8vNpRz189SuyVpnyrglKfCuOoJQYzxT3abNeOrR3/RJZ2JMMmkwEOVgr4I4ue+waOauFe+ILT5PEfy3LGeRx3QGTf+1U1Ai+2Jcqe/AEI20DFQT1vQ01Nugea4Y3l4bh2KLxbQmw5bLWaIM2r7xEgtYPFJ69kkTY=","i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=m4b4rzkY/aTvj6QBt4ebByE0D53PcSwgEAsRcBgP67k+6tzurZ/IoOi6fh00kM8d+ZGfItmfocQ1c+xKLl5A41rudWYgsRHkT9SNirlSNhe3R89F6sTLzQgXzWCYoyvO17ZkSiYfWR2nFa29DiG7uKL7fncGNwx8/Ix84/DlFmQXu8Xeuto+gOoU7xointuZtqneFoMFzdq4p5QATf1wUtdCWFZ7OVAc2ufpdPkowjNKfL1z2mt9LFkmhqBMYPYVmyVz0WQU0+zrPXrsi81GwCCLhqCBbW7xQLfxEI8EHjMAz3LLzupNbaDaeDvJS0KWp3BV1ghDX8rhsOXXjr5SCQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=O+cXXGZNJwjYkLWgmX2qg4Pcvsmp2NqDQcQqkUcvm2dLjy8oKDxUNR0DVg4BnK8Af3cOQxqWHtpbaHDCM9KqT4XqRUfmeQyHWWJJHC0MvwR7v0zaaFVF8e8Z1N9QyT+v1juUvYvH9KEKJM7g+yM6U4/klUKW8hidfRSfe6cZn0QN2WSCEBT3b3i0isrU3Coo266wGwYOYl70Bd7yL7YX5xL5/Y5LkG/qkukdrlnsEhjBJkgkdNX3lzc6Z2a27eFeQ7d10mtAwCx+77/ZwML4eOdZWfY1sCZKT4OwusKFSBs7JJXyMzOFa1YT+L0az0hYVTq9OV8xtnvlnNb0U2n/4g=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1766078197; c=relaxed/simple;\n bh=P2+uTIIgvdKR2mCrXDfoF+KaYWmU+l1y81U3oPpoMlk=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=VGRyQ9SqdULs0/CiHl0UUnP1Vr12znE9hpAPwLF5ML/dX1jzCdqwvZ2qML7G8jvHBelE3iZjTM0JHlSNWhT2ehq0Jqy450VorzoIg5AMG/Lvd/tQj87nzNzURjGBMf07PP7q8cOthA8olQWqlr8CCyou6v8XjxhAMteHVbAclDQ=","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=dQ0yMx1ebYye/8eZhVtAyl2kF984nWWlBIGigeVwt28=;\n b=LaQs1r6ac4vWXRk14Fo7k2T+y/JicRgNymCjunt03GTA3Oz1GcHIgZ0D1K9UTJQjwRqXD+Baafd+QnDuyk4O63969zwW0krq5v5wPsvDDMG0BJfB5g7oTZvuNF6aDhKmB6tgaYOIdLxzdgqmG4t/K5bEdDO+psdu2MCTr9wGexYU1Y9GtPQMRQLNrTF2K+XHd1xutrPou1nOMumQMYJJ/PPTSVrfDGAjvqICdEtzRr9JFAqwxbLFFSdgT39LK18n3VmGtJbu80l4dnWUyqRv2xHtTuUFJDSq7oFsGHan9TPOYQGcwAvuqF22Fcw/mgGW0/UhzjmPN1Dtz04o/iwi0w==","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=dQ0yMx1ebYye/8eZhVtAyl2kF984nWWlBIGigeVwt28=;\n b=bnG5wSbfh1cQukijm862Rsk38JBMd4SW71dzw19oOSgnB8FQA1+/eDlTMdL7jNAyFbMgjgjltViF4hldLRlVNNiioG9UUFGo8EokWAQFuGd+g7CbQtKxQ9Nq4JMiukGPRJosztPVeTX3zOI36x0j/EbyFtnSMU19RpePhVyfELjqLHcQKznTgaCohRLDWjseF/7xO+nUjP1lB/1mB52BjNzp27E9GSzyW5GNfsZpqZVmiofGqb/6e8mnoZx7N2j/UeCFxmGNjteynrqtEwry/j+j5/nfZ23kDhCR6t2PYAY2r+JlZhJ5qtcR9NaxWwRhxMqlNTl8i1jLN72AphshgQ=="],"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=dQ0yMx1ebYye/8eZhVtAyl2kF984nWWlBIGigeVwt28=;\n b=PdUwiGwlyXY3gb1wE5V85TKIP10ZJwNZS+UfcEig0jd/9OdrIiQpCm4TGbQeXppSMBrZFo+jxsr/pbsnM/SZgVcia95mFH4I9KyYeV86EQe0rXBzKeMWRojAwWGLDB9tXGiWDN6/01PzeYg5rU2wUwXbgQYkK1QbNcsAj5erRVs=","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=dQ0yMx1ebYye/8eZhVtAyl2kF984nWWlBIGigeVwt28=;\n b=PdUwiGwlyXY3gb1wE5V85TKIP10ZJwNZS+UfcEig0jd/9OdrIiQpCm4TGbQeXppSMBrZFo+jxsr/pbsnM/SZgVcia95mFH4I9KyYeV86EQe0rXBzKeMWRojAwWGLDB9tXGiWDN6/01PzeYg5rU2wUwXbgQYkK1QbNcsAj5erRVs="],"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":"Claudio Bantaloukas <claudio.bantaloukas@arm.com>","To":"Gcc Patches ML <gcc-patches@gcc.gnu.org>","CC":"Alex Coplan <alex.coplan@arm.com>, Alice Carlotti\n <alice.carlotti@arm.com>, Andrew Pinski <andrew.pinski@oss.qualcomm.com>,\n Kyrylo Tkachov <ktkachov@nvidia.com>, Richard Earnshaw\n <richard.earnshaw@arm.com>, Tamar Christina <tamar.christina@arm.com>, \"Wilco\n Dijkstra\" <wilco.dijkstra@arm.com>, Claudio Bantaloukas\n <claudio.bantaloukas@arm.com>","Subject":"[PATCH v5 3/9] aarch64: add widening sme2 fp8 conversions","Date":"Thu, 18 Dec 2025 17:14:53 +0000","Message-ID":"<20251218171459.75831-4-claudio.bantaloukas@arm.com>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<20251218171459.75831-1-claudio.bantaloukas@arm.com>","References":"<20251218171459.75831-1-claudio.bantaloukas@arm.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-EOPAttributedMessage":"1","X-MS-TrafficTypeDiagnostic":"\n DB1PEPF000509F3:EE_|AM8PR08MB5700:EE_|DB1PEPF000509F1:EE_|MRWPR08MB11759:EE_","X-MS-Office365-Filtering-Correlation-Id":"8e03ce56-6602-47b5-c1cf-08de3e592f9a","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|36860700013|82310400026|376014|13003099007;","X-Microsoft-Antispam-Message-Info-Original":"\n ugaiTmjf473+3wDu6oDPgQ6DmCqKtftN1gdorYuRYQQQi2oQhA2QS2Z44kI1z1Q9RkGMrt4LC+mMZC/i16ejSqsjyDywAy3+ipt71a5bC3289KLWlrKSQDLdmQk7n5wXomB2tbrgmrB4dPqpPaTNmfUOag7Cskzs3fB5X99ZYtbNPG6/rVU1dhh/JyHN2mm2m0zXQRME3DwWXn60NefvKjaqFzir+e3yNPD2aoAbJhUL3YxCp2zJVxqawm98fWS1xGDNKIVv5FtqdUGEaNbJM5eEVuq2jwlcAROaWnY61Ndgxxm65uOaPpaWx3eBjyAizmyCzSCoRERG0F7WE4XnD4emaKog6e6CDAMWBopqfw1GmXez6pYylGYq9aRqM7KxBnQPOIOcA/jR+2hGcFDJtx7bO1/JRg7lnI0cIgRGHMfFcUhitFcS9KLRJ2QCic1J7m47gUauofL26M0eMI4m/lVlHXPbGN7m0Fm6NtWjSYYoWvY28Ywy+HSTBYZPk0PYzGFxYfYq49P7F3KBHe/Hc3LXJz7hlHzGkIXocsQ54dpxgcIkxO3J0h/0fzTdfsMrAi/PbgpZ7qyCDYLSW0Wl+WwTsXzSUckd7RHCSQ/dMtrEoPixxSjp4NRNKwUerKSYtdyymHkavVv7cu26r7PvMG/1UtacnQUU+M2uEGJrlVQQPsNjMLsBPiK8b3tixoPNgOMLUc0L4sHomyNCnluy8pgdmsZiLa/7b4n9nsH0AVoaM2Cyf6URz+/MsLe1JadvHhIbUNUufrZOqL9P7CqLr76ktl46q2CuKez0fabCpKI/keU47Cb7ob0ukmnD9x44vb1+gfSpEKzk7S3Q0aOF3TQkbn1zx9k3TGTCB807G+IUHj7ZW0LoZ66bPF4v21g2ckXJw30coNarkRqfLeMgMsTHvs6tmUSNKoS7ylUCiTMgWPWBcvd4xd5V1dOhwtB68SrGDUrOi86WkgrlJU55NmJffLe9z6K+Cw0RENBhV6jyR7hglz6mVjecnXj6yo/tG9uJB7RAqXIgVqPVZcr1nm7WvVtBX4NvvnQLTzv1SaGskBTGmTmwcajfuDJK5S/+NigR/WVmh11GedXmIFbhFNOBWoWZOBhnuL4Pp+0bqBMnD2plTNxMoE3uBdKZeG8uVOqOodryeEaNUQIxcav0WlpyJHow7nM2xkzQ0IWVA2Cn5npgvCLtIWprh2MlAuLTgofHHIdRIHgp11AzM/2GP1Q+BA+6npX0Wfm1SaALfFHGMgLfO93rUIncFemJ4c41AAfkH6QxGWL8eOa1d8iscYsZUEK1YL9kTXD7nQw4E4X6hMMAxQ6XzCTTwn3Zfb/45bmJYXpeDFp7OEV/64ts/ZtUddkjQjbF3Auv17nT4VPooVhnyJD6p66+YhyjmAO/yARdAuSazjmY7ase+cpRbmMPTRSsB7ENJczn5sigv2KLUZYqfOFyDuhPqDPRWCRITnY7LN1IC2sZhPU/8BtNPmF0IcW6hBXlHAhsn75r3w/Tqo1R2B2JLs8y3p46O0FF","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)(1800799024)(36860700013)(82310400026)(376014)(13003099007);\n DIR:OUT; SFP:1101;","X-MS-Exchange-Transport-CrossTenantHeadersStamped":["AM8PR08MB5700","MRWPR08MB11759"],"X-MS-Exchange-Transport-CrossTenantHeadersStripped":"\n DB1PEPF000509F1.eurprd03.prod.outlook.com","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id-Prvs":"\n 5fb1156a-1c95-4c24-6036-08de3e5908c2","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|82310400026|1800799024|35042699022|36860700013|14060799003|376014|13003099007;","X-Microsoft-Antispam-Message-Info":"\n lkc0noGVCZ0ED764e2iaKKLwQpA+KXVBafKEU60ZNxrT4ajlzFvhl7K2idBh4kLbXd9yXErxTZPzgKg3AyPhraJWA5PrQxI5izSCHjAcKlkcn2CGsCxLyup4DThkV7qYb2egWu4Dlp7AnRIYBQpzGuZJAXrRoHD0A0lJ3PT0gtXGtJc5mlfKgbsCVCsJA3IpO9dLSh910umm83TC1IoTO9zPShauSbV7ENqeBH03qb25JaP12CnZkSIEtMES/rB8oZrPPdZmpfdsksUtUuc3eLoilZ4fsIFLKz9iNmPLX+HHHrXmb/gyETTuLWpWqiZYZBJCvKv4dfmjI5ksyT3CjVhoVmo4pG7bgKsWTUIRv+KAuTPiCselcEy6JOH6TtBKg2WxHnTxyDIjxNSeWSd6+45Ysi4eLq3TLq8ZFakbqb8YUrdJH/eFW0BdEvbRKWU1/U65Yc6ztrs3ucS+kx1qQj8evjHT4WpX1WHaCu6MGrPcQdn9hwvqA+tm01+oSH/yLggQgcnWAU59xUBLD3AcOhM3SCRLUNviJe1gZ+0KuI8O8q0Xw9NB+GfyJNUGbMj3KH6xrPP2NSCM+6C+0O8Lkwoe48axs0a4ycbv4sEW/atxyY8nzlO9fwffwkVfWt0eBdPMF3TMBYDyny9egdf1xjF1IEA/r9h753vkf6C2bvMI5O8rHzqQTAtBAiiezWSgozlWtsWjCa8NqTXMT7EQ29QZqW+/zO23wX6Yu0RWm7vCicwSTXe6Wn4egO2N8ylx3lXK6AnWZXeSTgIscIozkxXtyb8Qia8AsFcThqPe2iHCriMChbFznB8c/uqAFOQ9KqNA9F6v+ytXONQ+S/LGXBSbFV5uy8ZEU7iDounJM8mYLQA+zBbvWVbOc+5XZf1vohG6M/w+O0HoxU69hSXYIXYgX911VypJEh/EQVXOns6WRBRKkZcIDIgf2fCpPIlQFnU5JgUoQbop9wxj6bTygtMPpogmfFzyG7X8f+WGVJKvQJ6iUBaYcmEQhdf2dvo+FoW+5XddRg65V/Kx0UZjAcDLIVH7KD9EGBQyOsxj2BFZbfaBNKOLPIQYsZY9ZHb6ZOzgh2+yST21W6HRz4X5VI6BQ8g+PXZ+2ubg4Sb+d/mQ3UIx/LYZmhFBK5huZb7JCZbmmOOZA7mxDTaEMxDIjXLrd689+zx3QR94Pf9ZcXLn+OZQIDNtGtAPaKEy9QwpYFKyAcoZD9lT+QYQpOtJz05aEI+UeYRKoR/pzGQtSfrV5aljyylc+eLgu/Aqf0kjOpqZ+Rdpipnw1GJ8Y+o1MlBt3qBu2br7xM79QzvS8pAHS5cVOw7DDJS4WoGPXBho04esKIpyKMuMQAqycGbDWVDwBbMZnB2nHZxdlTIYzJ772UCnmi5FKNzIg/c4D/W7v2Izm7ZPUgAHi157SbdkCu7RgU0yNt2TmNMlPqzOmds9IrhSJ5Qi/bvUMD/ydUmIcf34xiyxbUoW1jqyWTFj2wDTUevw0zDU5rvm4CM7DLolaVKqFxPAcBhBVKsvR/AW","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)(1800799024)(35042699022)(36860700013)(14060799003)(376014)(13003099007);\n DIR:OUT; SFP:1101;","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"18 Dec 2025 17:16:30.3758 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 8e03ce56-6602-47b5-c1cf-08de3e592f9a","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 DB1PEPF000509F1.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":"This patch adds the following intrinsics (all __arm_streaming only) along with\nasm tests for them under the +sme2+fp8 flags:\n- svfloat16x2_t svcvt1_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvt2_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvt1_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvt2_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvtl1_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvtl2_f16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvtl1_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n- svfloat16x2_t svcvtl2_bf16[_mf8]_x2_fpm(svmfloat8_t zn, fpm_t fpm)\n\ngcc/\n\t* config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl1, svcvtl2): Added\n\tnew FUNTIONs.\n\t* config/aarch64/aarch64-sve-builtins-sve2.def\n\t(svcvt1, svcvt2, svcvtl1, svcvtl2): Added new DEF_SVE_FUNCTION_GS_FPM.\n\t* config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl1, svcvtl2): Added\n\tnew function_base.\n\t* config/aarch64/aarch64-sve-builtins.cc\n\t(function_resolver::resolve_unary): use group_suffix_id when resolving\n\tC overloads.\n\t* config/aarch64/aarch64-sve2.md\n\t(@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>): Added new define_insn.\n\t* config/aarch64/aarch64.h (TARGET_SSME2_FP8): Added new define.\n\t* config/aarch64/iterators.md\n\t(UNSPEC_F1CVTL. UNSPEC_F2CVTL): Added new unspecs.\n\t(FP8CVT_UNS): Extended int_iterator.\n\t(fp8_cvt_uns_op): Likewise.\n\ngcc/testsuite/\n\t* g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp: Use tuning flag\n\tto reduce churn in testsuites.\n\t* gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp: Likewise.\n\t* gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c: Added test file.\n\t* gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_x2.c: Likewise.\n\t* gcc.target/aarch64/sve/acle/asm/test_sve_acle.h (TEST_X2_WIDE): Added\n\tfpm0 argument for intrinsics.\n---\n .../aarch64/aarch64-sve-builtins-sve2.cc      |  2 +\n .../aarch64/aarch64-sve-builtins-sve2.def     |  8 ++++\n .../aarch64/aarch64-sve-builtins-sve2.h       |  2 +\n gcc/config/aarch64/aarch64-sve-builtins.cc    |  3 +-\n gcc/config/aarch64/aarch64-sve2.md            | 10 ++++\n gcc/config/aarch64/aarch64.h                  |  2 +\n gcc/config/aarch64/iterators.md               |  6 +++\n .../aarch64/sme2/aarch64-sme2-acle-asm.exp    |  3 +-\n .../aarch64/sme2/aarch64-sme2-acle-asm.exp    |  3 +-\n .../aarch64/sme2/acle-asm/cvt_mf8_x2.c        | 47 +++++++++++++++++++\n .../aarch64/sme2/acle-asm/cvtl_mf8_x2.c       | 47 +++++++++++++++++++\n .../aarch64/sve/acle/asm/test_sve_acle.h      |  1 +\n 12 files changed, 131 insertions(+), 3 deletions(-)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_x2.c","diff":"diff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc\nindex 95c5ed81d61..ee392c3a745 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc\n+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.cc\n@@ -1020,6 +1020,8 @@ FUNCTION (svclamp, svclamp_impl,)\n FUNCTION (svcvt1, svcvt_fp8_impl, (UNSPEC_F1CVT))\n FUNCTION (svcvt2, svcvt_fp8_impl, (UNSPEC_F2CVT))\n FUNCTION (svcvtl, svcvtl_impl,)\n+FUNCTION (svcvtl1, svcvt_fp8_impl, (UNSPEC_F1CVTL))\n+FUNCTION (svcvtl2, svcvt_fp8_impl, (UNSPEC_F2CVTL))\n FUNCTION (svcvtlt1, svcvt_fp8_impl, (UNSPEC_F1CVTLT))\n FUNCTION (svcvtlt2, svcvt_fp8_impl, (UNSPEC_F2CVTLT))\n FUNCTION (svcvtlt, unspec_based_function, (-1, -1, UNSPEC_COND_FCVTLT))\ndiff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\nindex 7075e3ff123..c271b97de87 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\n+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\n@@ -418,3 +418,11 @@ DEF_SVE_FUNCTION_GS_FPM (svdot_lane, ternary_mfloat8_lane_group_selection, s_flo\n DEF_SVE_FUNCTION_GS_FPM (svdot, ternary_mfloat8, h_float_mf8, none, none, set)\n DEF_SVE_FUNCTION_GS_FPM (svdot_lane, ternary_mfloat8_lane_group_selection, h_float_mf8, none, none, set)\n #undef REQUIRED_EXTENSIONS\n+\n+#define REQUIRED_EXTENSIONS \\\n+  streaming_only (AARCH64_FL_SME2 | AARCH64_FL_FP8)\n+DEF_SVE_FUNCTION_GS_FPM (svcvt1, unary_convert, cvt_mf8, x2, none, set)\n+DEF_SVE_FUNCTION_GS_FPM (svcvt2, unary_convert, cvt_mf8, x2, none, set)\n+DEF_SVE_FUNCTION_GS_FPM (svcvtl1, unary_convert, cvt_mf8, x2, none, set)\n+DEF_SVE_FUNCTION_GS_FPM (svcvtl2, unary_convert, cvt_mf8, x2, none, set)\n+#undef REQUIRED_EXTENSIONS\ndiff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h\nindex 6d7d0af2641..7c1745f5c9e 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.h\n+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.h\n@@ -64,6 +64,8 @@ namespace aarch64_sve\n     extern const function_base *const svcvt1;\n     extern const function_base *const svcvt2;\n     extern const function_base *const svcvtl;\n+    extern const function_base *const svcvtl1;\n+    extern const function_base *const svcvtl2;\n     extern const function_base *const svcvtlt;\n     extern const function_base *const svcvtlt1;\n     extern const function_base *const svcvtlt2;\ndiff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc\nindex e8eeedb4d36..03481ee4a77 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins.cc\n+++ b/gcc/config/aarch64/aarch64-sve-builtins.cc\n@@ -3207,7 +3207,8 @@ function_resolver::resolve_unary (type_class_index merge_tclass,\n   /* Handle convert-like functions in which the first type suffix is\n      explicit.  */\n   if (type_suffix_ids[0] != NUM_TYPE_SUFFIXES)\n-    return resolve_to (mode_suffix_id, type_suffix_ids[0], type);\n+    return resolve_to (mode_suffix_id, type_suffix_ids[0], type,\n+\t\t       group_suffix_id);\n \n   return resolve_to (mode_suffix_id, type);\n }\ndiff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch64-sve2.md\nindex 91091835182..ab8098d3327 100644\n--- a/gcc/config/aarch64/aarch64-sve2.md\n+++ b/gcc/config/aarch64/aarch64-sve2.md\n@@ -3591,6 +3591,16 @@ (define_insn \"@aarch64_sve_cvtl<mode>\"\n   [(set_attr \"sve_type\" \"sve_fp_cvt\")]\n )\n \n+(define_insn \"@aarch64_sve2_fp8_cvt_<fp8_cvt_uns_op><mode>\"\n+  [(set (match_operand:SVE_FULL_HFx2 0 \"aligned_register_operand\" \"=Uw2\")\n+\t(unspec:SVE_FULL_HFx2\n+\t  [(match_operand:VNx16QI 1 \"register_operand\" \"w\")\n+\t  (reg:DI FPM_REGNUM)]\n+\t  FP8CVT_UNS))]\n+  \"TARGET_SSME2_FP8\"\n+  \"<b><fp8_cvt_uns_op>\\t%0, %1.b\"\n+)\n+\n ;; -------------------------------------------------------------------------\n ;; ---- [FP<-FP] Multi-vector narrowing conversions\n ;; -------------------------------------------------------------------------\ndiff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h\nindex 8e1018e4014..e3eb807fb53 100644\n--- a/gcc/config/aarch64/aarch64.h\n+++ b/gcc/config/aarch64/aarch64.h\n@@ -538,6 +538,8 @@ through +ssve-fp8dot2.  */\n \t\t(TARGET_SVE2 && TARGET_FP8DOT2) || TARGET_STREAMING) \\\n \t\t&& (AARCH64_HAVE_ISA(SSVE_FP8DOT2) || TARGET_NON_STREAMING))\n \n+#define TARGET_SSME2_FP8 (TARGET_FP8 && TARGET_STREAMING_SME2)\n+\n /* Standard register usage.  */\n \n /* 31 64-bit general purpose registers R0-R30:\ndiff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md\nindex c5120c37afa..026c3101e38 100644\n--- a/gcc/config/aarch64/iterators.md\n+++ b/gcc/config/aarch64/iterators.md\n@@ -1055,8 +1055,10 @@ (define_c_enum \"unspec\"\n     UNSPEC_EORBT\t; Used in aarch64-sve2.md.\n     UNSPEC_EORTB\t; Used in aarch64-sve2.md.\n     UNSPEC_F1CVT\t; Used in aarch64-sve2.md.\n+    UNSPEC_F1CVTL\t; Used in aarch64-sve2.md.\n     UNSPEC_F1CVTLT\t; Used in aarch64-sve2.md.\n     UNSPEC_F2CVT\t; Used in aarch64-sve2.md.\n+    UNSPEC_F2CVTL\t; Used in aarch64-sve2.md.\n     UNSPEC_F2CVTLT\t; Used in aarch64-sve2.md.\n     UNSPEC_FADDP\t; Used in aarch64-sve2.md.\n     UNSPEC_FCVTNB\t; Used in aarch64-sve2.md.\n@@ -4044,6 +4046,8 @@ (define_int_iterator SET_FPSCR\n (define_int_iterator FP8CVT_UNS\n   [UNSPEC_F1CVT\n    UNSPEC_F2CVT\n+   UNSPEC_F1CVTL\n+   UNSPEC_F2CVTL\n    UNSPEC_F1CVTLT\n    UNSPEC_F2CVTLT])\n \n@@ -5187,6 +5191,8 @@ (define_int_attr atomic_ldoptab\n (define_int_attr fp8_cvt_uns_op\n   [(UNSPEC_F1CVT \"f1cvt\")\n    (UNSPEC_F2CVT \"f2cvt\")\n+   (UNSPEC_F1CVTL \"f1cvtl\")\n+   (UNSPEC_F2CVTL \"f2cvtl\")\n    (UNSPEC_F1CVTLT \"f1cvtlt\")\n    (UNSPEC_F2CVTLT \"f2cvtlt\")])\n \ndiff --git a/gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp b/gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\nindex 334b1108ddc..b182f9d4a96 100644\n--- a/gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\n+++ b/gcc/testsuite/g++.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\n@@ -39,7 +39,8 @@ if { [check_effective_target_aarch64_sme2] } {\n \n # Turn off any codegen tweaks by default that may affect expected assembly.\n # Tests relying on those should turn them on explicitly.\n-set sme2_flags \"$sme2_flags -mtune=generic -moverride=tune=none\"\n+# Reduce testsuite churn when writing to fmpr\n+set sme2_flags \"$sme2_flags -mtune=generic -moverride=tune=none -moverride=tune=cheap_fpmr_write\"\n \n global gcc_runtest_parallelize_limit_minor\n if { [info exists gcc_runtest_parallelize_limit_minor] } {\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp b/gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\nindex 6bd8784779c..256c484bb84 100644\n--- a/gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/aarch64-sme2-acle-asm.exp\n@@ -39,7 +39,8 @@ if { [check_effective_target_aarch64_sme2] } {\n \n # Turn off any codegen tweaks by default that may affect expected assembly.\n # Tests relying on those should turn them on explicitly.\n-set sme2_flags \"$sme2_flags -mtune=generic -moverride=tune=none\"\n+# Reduce testsuite churn when writing to fmpr\n+set sme2_flags \"$sme2_flags -mtune=generic -moverride=tune=none -moverride=tune=cheap_fpmr_write\"\n \n global gcc_runtest_parallelize_limit_minor\n if { [info exists gcc_runtest_parallelize_limit_minor] } {\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c\nnew file mode 100644\nindex 00000000000..0fb20c8edf8\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_x2.c\n@@ -0,0 +1,47 @@\n+/* { dg-do assemble { target { aarch64_asm_fp8_ok && aarch64_asm_sme2_ok } } } */\n+/* { dg-do compile { target { ! { aarch64_asm_fp8_ok && aarch64_asm_sme2_ok } } } } */\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#include \"test_sme2_acle.h\"\n+\n+#pragma GCC target \"+fp8\"\n+\n+/*\n+** cvt1_f16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tf1cvt\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvt1_f16_mf8_x2_fpm, svfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvt1_f16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvt1_f16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvt1_bf16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tbf1cvt\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvt1_bf16_mf8_x2_fpm, svbfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvt1_bf16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvt1_bf16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvt2_f16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tf2cvt\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvt2_f16_mf8_x2_fpm, svfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvt2_f16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvt2_f16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvt2_bf16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tbf2cvt\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvt2_bf16_mf8_x2_fpm, svbfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvt2_bf16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvt2_bf16_x2_fpm (z0, fpm0))\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_x2.c\nnew file mode 100644\nindex 00000000000..8a8326bd068\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtl_mf8_x2.c\n@@ -0,0 +1,47 @@\n+/* { dg-do assemble { target { aarch64_asm_fp8_ok && aarch64_asm_sme2_ok } } } */\n+/* { dg-do compile { target { ! { aarch64_asm_fp8_ok && aarch64_asm_sme2_ok } } } } */\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#include \"test_sme2_acle.h\"\n+\n+#pragma GCC target \"+fp8\"\n+\n+/*\n+** cvtl1_f16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tf1cvtl\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvtl1_f16_mf8_x2_fpm, svfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvtl1_f16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvtl1_f16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvtl1_bf16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tbf1cvtl\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvtl1_bf16_mf8_x2_fpm, svbfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvtl1_bf16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvtl1_bf16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvtl2_f16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tf2cvtl\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvtl2_f16_mf8_x2_fpm, svfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvtl2_f16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvtl2_f16_x2_fpm (z0, fpm0))\n+\n+/*\n+** cvtl2_bf16_mf8_x2_fpm:\n+**\tmsr\tfpmr, x0\n+**\tbf2cvtl\t{z0\\.h - z1\\.h}, z0\\.b\n+**\tret\n+*/\n+TEST_X2_WIDE (cvtl2_bf16_mf8_x2_fpm, svbfloat16x2_t, svmfloat8_t,\n+\t      z0_res = svcvtl2_bf16_mf8_x2_fpm (z0, fpm0),\n+\t      z0_res = svcvtl2_bf16_x2_fpm (z0, fpm0))\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h\nindex 0adb39ad8b2..7c156c4cf2a 100644\n--- a/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h\n+++ b/gcc/testsuite/gcc.target/aarch64/sve/acle/asm/test_sve_acle.h\n@@ -767,6 +767,7 @@\n #define TEST_X2_WIDE(NAME, TTYPE, ZTYPE, CODE1, CODE2)\t\t\\\n   PROTO (NAME, void, ())\t\t\t\t\t\\\n   {\t\t\t\t\t\t\t\t\\\n+    register fpm_t fpm0 __asm (\"x0\");\t\t\t\t\\\n     register ZTYPE z0 __asm (\"z0\");\t\t\t\t\\\n     register ZTYPE z5 __asm (\"z5\");\t\t\t\t\\\n     register TTYPE z6 __asm (\"z6\");\t\t\t\t\\\n","prefixes":["v5","3/9"]}