{"id":2175586,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175586/?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":"<20251218142621.57402-3-claudio.bantaloukas@arm.com>","date":"2025-12-18T14:26:14","name":"[v4,2/8] 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/20251218142621.57402-3-claudio.bantaloukas@arm.com/mbox/","series":[{"id":485861,"url":"http://patchwork.ozlabs.org/api/1.0/series/485861/?format=json","date":"2025-12-18T14:26:12","name":"aarch64: Add fp8 sme 2.1 features per ACLE 2024Q4","version":4,"mbox":"http://patchwork.ozlabs.org/series/485861/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2175586/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=qMBDytBK;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=qMBDytBK;\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=qMBDytBK;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=qMBDytBK","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.57"],"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 4dXChR6hl4z1y2f\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 01:28:39 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id DDC864BA2E38\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 14:28:37 +0000 (GMT)","from DB3PR0202CU003.outbound.protection.outlook.com\n (mail-northeuropeazon11010057.outbound.protection.outlook.com [52.101.84.57])\n by sourceware.org (Postfix) with ESMTPS id A2C5F4BA2E22\n for <gcc-patches@gcc.gnu.org>; Thu, 18 Dec 2025 14:27:40 +0000 (GMT)","from AS8PR04CA0200.eurprd04.prod.outlook.com (2603:10a6:20b:2f3::25)\n by VI0PR08MB10539.eurprd08.prod.outlook.com (2603:10a6:800:208::14)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9434.8; Thu, 18 Dec\n 2025 14:27:30 +0000","from AMS1EPF00000044.eurprd04.prod.outlook.com\n (2603:10a6:20b:2f3:cafe::e4) by AS8PR04CA0200.outlook.office365.com\n (2603:10a6:20b:2f3::25) with Microsoft SMTP Server (version=TLS1_3,\n cipher=TLS_AES_256_GCM_SHA384) id 15.20.9434.7 via Frontend Transport; Thu,\n 18 Dec 2025 14:27:13 +0000","from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n AMS1EPF00000044.mail.protection.outlook.com (10.167.16.41) 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 14:27:29 +0000","from CWLP123CA0012.GBRP123.PROD.OUTLOOK.COM (2603:10a6:401:56::24)\n by VI1PR08MB5470.eurprd08.prod.outlook.com (2603:10a6:803:136::18) with\n 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 14:26:29 +0000","from AMS1EPF0000004B.eurprd04.prod.outlook.com\n (2603:10a6:401:56:cafe::ea) by CWLP123CA0012.outlook.office365.com\n (2603:10a6:401:56::24) 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 14:26:30 +0000","from nebula.arm.com (172.205.89.229) by\n AMS1EPF0000004B.mail.protection.outlook.com (10.167.16.136) 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 14:26:29 +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 14:26:28 +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 14:26:27 +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 14:26:27 +0000"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org DDC864BA2E38","OpenDKIM Filter v2.11.0 sourceware.org A2C5F4BA2E22"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org A2C5F4BA2E22","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org A2C5F4BA2E22","ARC-Seal":["i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1766068060; cv=pass;\n b=TxhCWvCWyDwFP061VbC+D26qqje/5OXEBhFxVD4/Z2RH5riBvCwmhIZYj/Gd02ewnNDnhiPDHOV4vTk7mBCf0eKviQEMaSb1CTNajw6d7FuX5wWQOrGjftMqaFaqurvCt/JBE8tCcRgRPezCAsBTNQmDfQ4RZ9//iEU15Gs/Kx4=","i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=KFWm+gySPbOxG3WgscTJy1tjKnq01GgC21zCDrmIWiv96oWiA+MaCQySb0La+gz1NXBo3tJBgAK0O6b1n7D0AgFhVLlG0lMbwMcN5EqOPRv+VE/FNZqWMW3kUcActSJK2cSPXOenJsOK7pLFiGPuUHLfLdOLP8byLM/2Q9IKHTtmTL6/fcSXnUzvVe1FHxo49qCqsbnqgfy977/paF97/n9xOwDWOA/7EWFeTP25deba4nBiDKV9XX9FMA9s91lDNrdAneyVpJW5OzuU5NJMidLfZM/g4+vVqcU7c/PZwC9u0Z//ENaRcu8oJyrFkzJ4K/gjUksaCZWI+sARXJbYAg==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=WYoYyr0RwwawggtGDEAU/k5nhTeivxMO6qh+qWB0jd5xQMPwEmAGWPfDD2ieU+adkBHAKiZqaXzK9DDU8SAyvFyUfYntV0JGK30sJudnmttSfL7aZmFiYIrNhJqGctOqoG9sHiRSAswRGz72g7uMmx012QhSLKXvcr1NVHUXrDeUuwg4PwJtFTh//G4HJTBxC/Gw/Fg+S1JIHzfgbMqcXL0ZtsfufM52TfZHEt/2ZiW7br1nPH1zfGKCgVRQJ2R5E27eLgbTwi4vUKQVYfI+zULN2kWiAxB8+hkjL6KG2IeFgB7uiJIt7NcEa+TqAE890Lglr1M1Y0kE7VdXusl7ng=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1766068060; 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=dltqLZqmXuOak0eVDq72Zd5iz4VXRkLIBb0I2uAxFWhXMRb8KEm+7EvYAIRYZQPqO63JTp65re86zY6tVT1V82CaKnx59HlDxF6r4uEaZKDxsiJDP3vcGdoUVzXzhi7iXPOUHXIMBCqzTFe/v88Mf6jg4J/1F9v6kfPz2ljhHXU=","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=se0/pFOnxV/fyQdFz2w4u2f3AOb1Rd3YSav3Aj1ZlC9HygFp/EV3Mcu0yPkpI17v2D3WfoiTWTT8OhteLKeVq0fX37udDF7/zW/VC21ZAQbMPhTdVQ1ZpiOYdRvyggFusahsiSEkXD0/xDVvTtj560CbastOFL4oUsWHVdpjXMczoSKEtlfFXqUvIIkxTgVQvMnldzeu/o8Uv/wvHA/1LedV4GA8mvRqpG6bfoSkWMhOwL+D5W3gITPP1pudHwUMByTDMFnW1rwYpz5aY7SttEAhoV4vqs2oF0B0SGYLfrb6O5alrvOCvRPCX3tQ3ycTGh4viCrV4EteWwyXwEfG7w==","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=NvXfNkAfwEN8JML/p+DZZkkNxxtgN2Mio40t9Y9NKBMAZBOlbONQm8ePnIVpi860WL5SqzbGwvTPKG2lnLQyQCda+4fjOZbzxZrCdFi6eyRY4n/kGDDnZAkcHa8I7BTpLx+Kc10mFO1KidkK6s9nPN/8k1tEaB6FNxd9OLGrALt2lhzjJ2bqIRJJ7EBelBFmL5pXESYQ+B7trSe5ZRkG8LA7J52tm2qnCLdnmjSSya38FsrGkQh1fA/5SH6S1u7L+AApPGtKY1O6TL0NeViGsVbINoZNL90gpzccyZ+u2IcP5f+cCo3SBkW9QCgE2W+pAzQ8hI0HMMTh0qMOHQ8b7A=="],"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=oss.qualcomm.com smtp.mailfrom=arm.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com;\n dkim=pass (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=qMBDytBKRE8U2NkzKrd8PNfQhJk9v1C6ytfSVu4nsfk9nfISyTQKsfWo3Q0br5Vz3IKHu3q8ENzIj5xH2ruupKj9S9zEFNoXSlWUnwzUqjr9+7BGk5K1Fhb8g9T2MD+2xzSjPjXVPDf/A/97AqmXMSXwevvUZfpcx9fGzxRI08Y=","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=qMBDytBKRE8U2NkzKrd8PNfQhJk9v1C6ytfSVu4nsfk9nfISyTQKsfWo3Q0br5Vz3IKHu3q8ENzIj5xH2ruupKj9S9zEFNoXSlWUnwzUqjr9+7BGk5K1Fhb8g9T2MD+2xzSjPjXVPDf/A/97AqmXMSXwevvUZfpcx9fGzxRI08Y="],"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 v4 2/8] aarch64: add widening sme2 fp8 conversions","Date":"Thu, 18 Dec 2025 14:26:14 +0000","Message-ID":"<20251218142621.57402-3-claudio.bantaloukas@arm.com>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<20251218142621.57402-1-claudio.bantaloukas@arm.com>","References":"<20251218142621.57402-1-claudio.bantaloukas@arm.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-EOPAttributedMessage":"1","X-MS-TrafficTypeDiagnostic":"\n AMS1EPF0000004B:EE_|VI1PR08MB5470:EE_|AMS1EPF00000044:EE_|VI0PR08MB10539:EE_","X-MS-Office365-Filtering-Correlation-Id":"09134ce9-d8e3-4a44-28d4-08de3e41931a","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|36860700013|376014|1800799024|82310400026|13003099007;","X-Microsoft-Antispam-Message-Info-Original":"\n cOZ6/A1Ad6LiOPzlq7MhqvSh6JrwWWJmXqcUap3Kn8hoynlpaDOqibk7EmKcDX/UxCKIe/I9Wman4CBVCbs3f2Ow3HK9V5u6oqVNJkfCLmMXvMvL1I7NhPHHTS1cvoLKhyJiq1I2S59eez+qqvoRWjTgPoEgJX7RmgQZnpcS96mBsVg6tQR0O3l+JRoay2cJwiKZl13OWutJXOl8poL9QtQEixAZrc03y+uviP1HnH/WWIVcwTpNNv0w5qzlNgu6sis8e4IG4jp/jwvrb9rHcLYoMkrRvNnlyAHd0vc/nJ6TnDRm0n2m1pbNCXyjL1l8LbJuE41QQtfQLHdftIpAwZwF8vB/7VLXOz2POgLLY1gso6wE/qyAcNSwtXRG1k2GQCi73Iehjm0xXZfTmWDhXqTjWJT0ehJWmeRAsQBAqeoHxFGKDOL9RBXMp8QRzkOn73jSgeb/J1znCPikBIgve3cVcBOxPUYc3jDxRlR2zTWTpYFc5G79akbsp1+8JPWjDnmp2R3eFyzBPPGqtFu2+EVRoI//q2SPZJu04Ji9dCMPI88O89GUkTfEbgfT2CRsgp2ZzRSzzstDvb6agq/Pq5sRnuhqYv5+yypVoKciqsP2sb2loM56q8aups8WqyMQsXGcas62qxgB+CTFc+gT9usmHGOndnEwkPECgBCUJyJVbOzM+HDQkNfQYG3LX48DKA4m97Y8TsmezMBsK3dIINCeJcdSU/6hlvkzkasDDtiCjzRnDLQYIdbo/38GHSqW+Hs1PpWmpPPLELKEoFiG0y9vRrn6i816rRn4P7tUXYWUTgpQr+C2qKAgdFOdWQCsTA4HR4EtsfZKIiDGZE+z8KaMnCxz5zs4TKe++gAfwtwODH9lsr8X8lKyDE7niDYz21/jTzyq7Yh63pGEfCzK5ThLiF3DdwrPPaQDO8guuGkylHMRBJczAkO3ZW05dXZCoX0Uzbdl1shyGGPjhsCK5ijFfQ8PYezw1gqnq55ttKFojDUfbQj+Z2XJupzzKdz8UHuOelEDDFa87sgXJzUTuBGMMykiHFgWBvbR7OOIzg0PYtL8kNUSh7+VdjgnAR8iqGuYw4lBpNOfx0rdAnXBldozJrbvhkOePnamGz5BPaY4RamkqcMH813b9Q9gizIdJzj/JiLUgICf3A0NTlNKFBw1NJSSf2sPIJkAycDBU7HqKtimEbue7ZhP4DV5M/Bg0LP0k219aQ/VEVrcxvNsUUP3cWMo3DEr7Ks21EmH1VQvb1jGI86N/P5bzzWVoA23BmzApFIVY7BboHc8qbXauhEq53ZkWghXOGhiBSgfZDYEHrBt41CvJvop3s1cabKrHwb9oPD+YqCkTHrd56wC+ieQ45U1gWxNqNb6jvDuhcRuwW/KNTrhsUHYYcuUXae6buDJVXXBE7Fj+mD/o4uzWKn7KHQ7otFJwZG7mOYy45NCYtYK18WWUhDbJ/BIJWR4LTEjg2CWsHSpc+a+mYAMQE+F+YflS112sSQT1nDRZbhFDArG9mNo/Uz6cGm5I7wT","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)(36860700013)(376014)(1800799024)(82310400026)(13003099007);\n DIR:OUT; SFP:1101;","X-MS-Exchange-Transport-CrossTenantHeadersStamped":["VI1PR08MB5470","VI0PR08MB10539"],"X-MS-Exchange-Transport-CrossTenantHeadersStripped":"\n AMS1EPF00000044.eurprd04.prod.outlook.com","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id-Prvs":"\n 35052be1-db93-444d-84c9-08de3e416f65","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|14060799003|1800799024|376014|35042699022|82310400026|36860700013|13003099007;","X-Microsoft-Antispam-Message-Info":"\n yyaD2y1MMKMGRDP9QFKx72fbbIYyr/GVZaY1rg6hYibFt8SaEFpAdniH1S/BluTrBHWx6pNFDuQcVgV8F+jSuYPl0/5suY1Tp5xwDgVFmhBw8LNC8bTt1qN8YPTJcKG6LDRezy6er/dqd1jqFxULdb6918c7HZa8mhWpr8+rbL8qbF4WEX4D+Syx5mbSHYRvzBhUwsKq26ldsUto9LOcGBn/2xqnDmXdNWCHtWS/iUjd43zBfrnzFmT4vQjI892sHNp6l44I5Oo32NT9Q1Cb+yamDkR7JPZ4CXbuLPchQ6HSY17cVp7X0IUGuuyihVsOFyjOdE2zV3w3/HogDF9eTyVOKdF9B5gGKF8qUT/Sl6YrneYHKb5kGnk0QeE3UwTMzNB4t4Vtyva3dINxdKzP+75OjADA+PHBvnVn//QDOZYOKWwSH9BXATCzkMClLHJec9D4+K9eGsbAm4gl2jV0kf9mf1jtrulvY7/zaTfZe2Chzj1bEbfyjUQLquWAxfltwiLiYTfoPjE+Q27KvCzr472WFU2KNdWFUq8JGmmfUYAxM94O+za1mayNzpihbzO3/RO2SxE0vcBvwnDvauVLbHbi/wbjS7BekRVqq65Uy2O08EzCa5l3VVE0NEbEy7pXKiz51Vb6J+oVXk0+nXN8xbSJ3LS6t7CMzwGTWog2vGBPYt3V4MwvXEXyqdFu0EmsFWUi3w21d4drhZiwDM81PdR862y5Usim2rlBb+vm07U4tOeOpdPq5SAB7NATdFwHSuq5vJeNCbS59NVtCVc11GjfmpQsX5WIJqDUJNSYBKoXAJOoYLVGUQysZH+8NeSDz5KddGj6AGYK3jfHlsetdRb8vY3U7VpP+q5GNmsJiotpREAJPPEv8+Inp1mr+5gfwq5iIuIyKBdy4D7nWraYvIUWoc7y+m4rtA8Hd15Yt2+uZ02j4p9NDtrJDKWLUONIKk4sBvmOffdIrf9GneiBIdmh++AN8VFX+zD6ng6lso6y8lOwy4LE/FaQyx0pFdNQUjS70hLWC6/BYq+10RRIblFLp48GOsx1bbgmrqsgvGnJVcByfe6oQnGJBB+GclZj+8ybKbOxd+dDsSpvIxGv6i6qeRW5MlLw54AqVFJwLQZHlujjSf+UNHRa/vPcwcgYr1vb1xy4MThXcU1K67r5BrT2e9x7XglpLG5ahJ65ffcPcZWtV3sg62XscdEdZ4OxmVQoyKEP5RXUcZW9WgbHggwZyQR+y9VUlovvEzOxE9hBUSkk33JTM/PO8GzPDs0B6Ef3HvUrivbfxv8GDKYKiZgMF/CEeeIDKLCWPcCimP9IK6sjlXZ/lbHj4Wd5X8Dam4vBUPlOj6xa/Ez49VWC3qQqX7Nr0cxnlZrVzJuVeEFgTjJL3oiN1Zba39WrPJBZBryi312PfY3wpatZ6hAPq5b4mOw1QYR8uJH3TKe03ZZNrxyxc8TNLTGR5unR+hDRcLoxzKMOLrGjuoSlLjCYyNWfKVx7R+1dS8fGfSh55+OJJZexZE5mWa6t8kdLioJ4","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)(14060799003)(1800799024)(376014)(35042699022)(82310400026)(36860700013)(13003099007);\n DIR:OUT; SFP:1101;","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"18 Dec 2025 14:27:29.2500 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 09134ce9-d8e3-4a44-28d4-08de3e41931a","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 AMS1EPF00000044.eurprd04.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":["v4","2/8"]}