{"id":2175591,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2175591/?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-4-claudio.bantaloukas@arm.com>","date":"2025-12-18T14:26:15","name":"[v4,3/8] aarch64: add narrowing sme2 conversions to fp8","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"01043d620c529f1f055c13c2c037b10f46410070","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-4-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/2175591/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=pt485dEd;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=pt485dEd;\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=pt485dEd;\n\tdkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com\n header.a=rsa-sha256 header.s=selector1 header.b=pt485dEd","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.66.66"],"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 4dXCnz5vknz1y2F\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 19 Dec 2025 01:33:27 +1100 (AEDT)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id C5AE64BA2E20\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 18 Dec 2025 14:33:25 +0000 (GMT)","from DUZPR83CU001.outbound.protection.outlook.com\n (mail-northeuropeazon11012066.outbound.protection.outlook.com [52.101.66.66])\n by sourceware.org (Postfix) with ESMTPS id CD4134BA2E1F\n for <gcc-patches@gcc.gnu.org>; Thu, 18 Dec 2025 14:27:52 +0000 (GMT)","from DBBPR09CA0030.eurprd09.prod.outlook.com (2603:10a6:10:d4::18)\n by GV1PR08MB8284.eurprd08.prod.outlook.com (2603:10a6:150:a5::15) 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:27:43 +0000","from DB1PEPF000509EF.eurprd03.prod.outlook.com\n (2603:10a6:10:d4:cafe::ef) by DBBPR09CA0030.outlook.office365.com\n (2603:10a6:10:d4::18) 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:27:43 +0000","from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by\n DB1PEPF000509EF.mail.protection.outlook.com (10.167.242.73) 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:43 +0000","from DUZP191CA0016.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:4f9::15)\n by PAWPR08MB10923.eurprd08.prod.outlook.com (2603:10a6:102:470::13) 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:33 +0000","from DB1PEPF000509E5.eurprd03.prod.outlook.com\n (2603:10a6:10:4f9:cafe::71) by DUZP191CA0016.outlook.office365.com\n (2603:10a6:10:4f9::15) 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 DB1PEPF000509E5.mail.protection.outlook.com (10.167.242.55) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.9412.4 via Frontend Transport; Thu, 18 Dec 2025 14:26:33 +0000","from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX04.Arm.com\n (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; 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 C5AE64BA2E20","OpenDKIM Filter v2.11.0 sourceware.org CD4134BA2E1F"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org CD4134BA2E1F","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org CD4134BA2E1F","ARC-Seal":["i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1766068073; cv=pass;\n b=fD79rX1W3R2eCso93AfeMmBC7nD6UXYjfjpy4bKJGGo2j1NKRZGtC4OmDM/nd7s4L6+tHfveSwduVdXY6Zlq6WPAXEPZcQdRz74r+upvMxrpPz6veUPQ7UA7id0EyN1saTmIIZ3ocitVF5Wat3pTSkD6EouTR6Ds//ywGBS7vdQ=","i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass;\n b=FC6Z0EJszsbp+2GtIBP2+6Jt+woUbgMdLa8fiUwgP2HFTsGzruKPw1dHQDxqx77p/u+Zu1U9dfdsfGGvlxM4kfOzTOqI4BHXqUE+wYhCuTZ7Zfk34HRcQbr/dRtwUm/HSKqaPxDBJoy9g1QFtYpMl781+0xd6sBMFqsa0LVNhtaqF6fsEt9ypnQaS3uQ6Dov9E1Dl/wFIywHXNQmEIzRNB2KVFIu+RXLkYYBAVw2/Z2NskTqZG7TFNUzx0mN1Q4mpZwOgOWulcsEu2NKABl13PvMGwTFGL8RXFj2uKmtm4XKJb3IOneUNGAm/C8hKCqYA17bXnVC2MAszLkalCUpmQ==","i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n b=TCM5dSi3UJSMybK03hjfGqGY8Lk7Ou/M3fyjjZCvYLeknTv8jH/qaknRBO9wtJiZb5NkZyms49y8s346bULnlEzsPdbRfLlQVDVfxar48xAINYMohQTSZRpt36Uwv7GUsi3aeoFUHXMF930SQRLTcr2rcbH9hrOcS7OSSonrEVPX0Q7oqKjtr4z89Rbn9zJ3kgoT7va8fbG5kDfHMqV2ARRrpt8p/kNUqWt7gbPH5/xMojKfCXIV6uwTGDK4OqSZhf+iW5NPPKTCiPbNMxr1iJ9ph012fyp3l9DAW49N72vJR0QZSw9GjpSQbMwMJ80iux5JGrs8A6A1ZGaAdxsSxQ=="],"ARC-Message-Signature":["i=3; a=rsa-sha256; d=sourceware.org; s=key;\n t=1766068073; c=relaxed/simple;\n bh=Zi/0O+q50Ntw426QemAFCONgY0HuSgmqfn+La8ZmajY=;\n h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID:\n MIME-Version;\n b=B0TbyZ5JV4k6mJt7IbUpROYddBAoGv0wvoKpJ63XH74gUmetjMR80wnT7N/9eSZMv/dAfu0SVUuboQCxZp43mu0WGIZ+DoEYluVPstH1azGZwQbTaqL5Pcl/Sr55b1lhkPN7+uLeq7vJMY9FFydXWZvRprpl6WGNUYVhHOx+3II=","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=zDLMK62pfKgLvEVcw/R1j0F+AtOYsEsvI0NO81CMhz4=;\n b=CaIw5sGZ8WUgEYR8iK6p+XqKNppzEMkPdvR6FULvPwxcPhhFGiqQdmK5+ruxiYnHMhbvw+ngDgktUzS0Iad8AOka3jwqHxWzoL9E5uwBNiWw9sjT11U5/T1xV/0tdUXbQaDkiI05LVNJsHDZG7fywwAb+rJN61c1YpRVjsl3hBqE/YnLr0aPnjV53TcvZ6t0WCyI0U341p/ypyCz4xSW1YMRgulVPtHcqAB0MUl3e2s7cYMgXAeBcAFIZZGu3rHg/RJIavPaRBGGiMK1p4iNA/Ql4WCM2VWUMXjXadLwp2V+SAK4JhOfLwlP441VOmagcE0tVbkN2yfQhX88DhC2nw==","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=zDLMK62pfKgLvEVcw/R1j0F+AtOYsEsvI0NO81CMhz4=;\n b=KkO0LZupamEsm/jNKjYzVLmRvvcZN34L5JHqU9TaIKu7pQTSHXkQG1d2N1DTjob/ohbg99WKwkU8V4xu5iQ/GS3xtHM1iH+6gdKLd2ABZ3qO3YE9NvomZtz9Qi/dXSCcg7Y9qtGGlZhZscEr0Hj7a2qQpYbO5p/4lkV5GuxHsuj86j8Qld3TNrZIO0/J1dnDK6O5Iec7+FN3U6/CkgY7j4tzzlnyAXqFbzRoxTksiq8XvH9lVUNS8LEHCE6APBEXkKDHRqZKh/HuQiVLqmV4N3BPOd5w30k3rWmc6VADzCm4jJCdE+mEC2IDMZHNVVPGjhoGuAeR2WbzWHsbDNfplA=="],"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=zDLMK62pfKgLvEVcw/R1j0F+AtOYsEsvI0NO81CMhz4=;\n b=pt485dEd+C0UTTZjQB94D28Amo71YnhgEHJo43kUvzOuNw4+vtz+BbY3PbbuigB8MwbLTNpbIF56Qw3aBDbhp/aBcf88d96d6dTDZP0ymxmy1AL2pOkcBSctUoVJt3GFwMrwJtpeklVFDwblVUfSVj5mLtjqYM369dkSIH5sGbg=","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=zDLMK62pfKgLvEVcw/R1j0F+AtOYsEsvI0NO81CMhz4=;\n b=pt485dEd+C0UTTZjQB94D28Amo71YnhgEHJo43kUvzOuNw4+vtz+BbY3PbbuigB8MwbLTNpbIF56Qw3aBDbhp/aBcf88d96d6dTDZP0ymxmy1AL2pOkcBSctUoVJt3GFwMrwJtpeklVFDwblVUfSVj5mLtjqYM369dkSIH5sGbg="],"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 3/8] aarch64: add narrowing sme2 conversions to fp8","Date":"Thu, 18 Dec 2025 14:26:15 +0000","Message-ID":"<20251218142621.57402-4-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 DB1PEPF000509E5:EE_|PAWPR08MB10923:EE_|DB1PEPF000509EF:EE_|GV1PR08MB8284:EE_","X-MS-Office365-Filtering-Correlation-Id":"97dbd61b-3050-44c0-a76e-08de3e419b46","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|82310400026|1800799024|36860700013|13003099007;","X-Microsoft-Antispam-Message-Info-Original":"\n 8ZprXhhqXDS+4Lf/lQ4VI63nsRk65xnmOaE9mkN4X0JwgjbZlpXZHdj8OHkCIfLvFbmgxEVBeAdjq/cbKi1gHw8d8eO1drBE+DbUmW2s2RRSY4cJO0i5DR1ognxamVOoQU9v/59avTW+fBAIhNpKbcCqkhrFAfQZ8MGkuzRi5anw2NBc9fvyCw+ogonal0IJY2NkwpCSG+TIbP/qeBrZWHnaqXB9ZUjoM6ify0zhZxro1XZ6tV1cfLmJBWXfmXnK79iuLgBAOLP0qt7UJsPZduV2/nYR1/ScqxDw6A/3fBUpUvBQiLnZmviVuGXx9ZRfh+FILskPKlopeqyJakZyNpF9M2k6WV/H0xly/bUhE9Owe/svtd7eBMppP6OXkHXcx1wA2IF/UDPyjzGKPb3t3yGE+Kkvk7C+k4t837LiQ4MJWO4cWkLxC+n9Ra8dPw/gIoCJHdjJt7ZM+3mQdXS7fXydu3EcjvvQGhTci+Vr6kzSsRRDGEvCn9ofBEGAaFqwKKXmF8Fsw6h0qgxppXGpsbrA1jcToZEKkNvYPLioQp5A59XbhKErY7Eudoe6nZHDAgzhKE+ZdwBuDXDVb/lukGK1KiUJPRtk3l1oBNlOSafG/UA8eAlz45cyjC7Ra15FBaOqO6gLo+sbkrbfe30fgIyxyp5iey0IGeHSJv9QZesNRkV2rOGEjYnZ3uKKnP9ObirY7zMKBqg/FWazZfRFB7wmZnRkyir/NhI5IDufuEBJk6DZL59tSVet+utE+XND3HhscOGX7jS9kIGXSGphKJGSvk28OYoOhwBkLnzHH1xEDrdJeOvu/hWnABco8dvVwZfiaQE5Z7kdHq/DBxVRmWmaPt/z3wkmq2O60Pq1OVe2cRbjfsLq19AJrARNHYLx5dbv8Q3EJwjzb8TH6vFGlPjLU6E011kqLyjvDMIYNL5E7k+qjdw89naEd2p7+j4/xk1BfKeGT4Gjcgxapb1gJwp1GL0akPsJOVP1ymm/prE4k82OaIZD8hA4x6YDeDbCUPpLaL3V/JcxG5eu3uBbLjRBvl0k+Y9Q8oF46HPnqtS64xSYSM077hrGO+UWND1fVFDWSM4wiNPNLW0PP9uBHmIvRpnStZ9511/VMbzm37S26QKJNR002Y0IlWVBZvqAob2FBgl7/Fc6ypNFRAYGay+c1lPDOO4khqPcFxqJbmKWWN/8mxuJVJ9FMgE1QM6onRYG+ZtrVMwyKsJTPRnDVYX4sBm2Ebk+4cjr57UIcj7qATFT/IOtCEx4OxRrRVb2xkW0fqDzP5bh4ucTcLRamGElVSy48NpnZSnMlHsPmk4xgdUDLXOznLdtWPnrZFeNwVW2sCebsS76caIhks7TOrgFcEffkN2urNushaand3O1SZsO+cmz7JIVgmivVZbxT8WqtkqHP4reHdBH87YXEbKobRHZlPwfHbHJTeexSaHKsrWq7bEVTI5tMzyKkUQkZ8Gkh5eGHaJ1Ubn+ft2EeIq3bqToXvAaHODXjQus4iYx8ZGKsJgAt2Kuka85R9Kyym151KLjtTD7zUlOU/696nwWEj9wFgksiwv8Uv9iCjdwEHReynYsZaQ/LYWDIVhf","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)(82310400026)(1800799024)(36860700013)(13003099007);\n DIR:OUT; SFP:1101;","X-MS-Exchange-Transport-CrossTenantHeadersStamped":["PAWPR08MB10923","GV1PR08MB8284"],"X-MS-Exchange-Transport-CrossTenantHeadersStripped":"\n DB1PEPF000509EF.eurprd03.prod.outlook.com","X-MS-PublicTrafficType":"Email","X-MS-Office365-Filtering-Correlation-Id-Prvs":"\n 9f3d63b4-3c1a-4a5d-9327-08de3e4171c7","X-Microsoft-Antispam":"BCL:0;\n ARA:13230040|35042699022|36860700013|376014|14060799003|1800799024|82310400026|13003099007;","X-Microsoft-Antispam-Message-Info":"\n AqEmuEcik+zTPuGnKri80FMf8dTvGwnA23IslRN2VegIxEB6Ow6R4bZFq1lxD7EWvwsfP62dJ/sHCx1NhDatWbOfVC8c8qRAIOQA3smbmkOxeWeGhHSHFR1KOlKLHGyVmk0kn8PyG2G/Qhj7SSiak4JOohqRXS/9jCM5d3qNTM7sOr9c3oVk5Az1j35EYdm1qOhTHcsxwa1/pGJl7zc+b/bjtV66mp0QVm1iHZiunYpGkDLIB9bpy0eh8ouMO7K2Y6ZmAcwkOzssSk6FFN1DZ53txjfrNEQ0nJ5qL3w4tiEtA59wWtdjw/O95C974ZFvnlPqqY1Bbw80amhJxSWhb2AnHJN/xX6mTOxoeYUo1ko3giwkQOsqYj8dMKw3DESA+1rlg3MTeWNuyrpWAZ+dBbWhp/70CRDfB+kbj7gBPfviCkHgVYVq45ZAf7TKmh2PBpB0Nx2RmFJ3r8JRqd172WyKqEsIGgfI3zoknfNrKmmUt20GfKTMkA3FwNFckMJdn1s2XdnJ0M1exLXDj15th87GmOqXluktgjQe5m4HQQvITcrneV0KsGGxlFS7DE07oIw47MnwQtqgHrnMB1a0RWHgZMCjhzAar0nd4ye5SSd3I+mRYwekQeaaUHNvUvdddwAl7RPiauT587QYF/ImwoFWBGoUu7AourZpj45SjxFprqpQcJG7Nva3NJaErXfhEg6NLY7N09ZBz1bMNVqlTL1Kef0U6DP7gHrkkvjKpxQnk8tz3JVHHqLxTlJiHccYlzvkFY7Z88gxUIr5JRvV2J2R7a53oF8C1cLiHffRKHlnyUPf2D71qSbhuPRS9IgFQZVpT/hMU3xFiumpfA+Yq9i5F51KqM7OTQbxeawTf3jzFn5giT88KHuJubxrVjLprS34qhv3/ui6wAWaZZTlrNoXk8YCBaZqGIuKWV5/0WSCKwI17EI1LkDVvVZR6Lmr52gBOpjEGJw1uRdqwiOHWbxPYzp+mzMyerfO3+1zwYBM+/0TwED2GTeo2J3I4WvXA+2BGr+RehFdf98CTlfuiTMXhppJvMmQkKWCvl4bFPAOtpUYY45pHXMHRZSfFeof6jXj1CbIllYiF2iaG5MVV1gTAGyPqryPS7NgwkC/Jq+8b5ZE5OKFynxhWwk/u9zqvCdu2cFbW4mLERyy+QaDOAdSiQIMTTzdmkBeKKI+2QileqBJB3cdc/F0zovxuR3I4c1rwdywNBIWUBj00tHprItYOM2DqyYNtcUz+6jVH5eXiPvQosmOsZwKNPg7L8GB784vbYF8gXaWHirsDQ7OzMiaLmoipsWDMAYjK9Gd5GtD7sr+LXL8vnE49rh7AymWrPKMCQB5Yc06b9AD0a/4X2wAonytdIkytMauwZD86ZkmPpCOFNR1iBRvx7jlNUemh6xrZYjQ6wWciIy5HBSDT7AOP0bAqUFGt8CKw+dPWGRwIdNfMtxr1T8U5CK1C9bAO29Ab6l4Cic+3c5gya/1HxufbOebxLgenX/Dy5UDHZ9yCTjvrt9mktL4uw10qx7bnb/+72pTw3lHBcIARG3eBjLC18Bq9x7gLXObTFFiArFB8ZJQ287SU1a5yxtTRnDD","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)(36860700013)(376014)(14060799003)(1800799024)(82310400026)(13003099007);\n DIR:OUT; SFP:1101;","X-OriginatorOrg":"arm.com","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"18 Dec 2025 14:27:43.0788 (UTC)","X-MS-Exchange-CrossTenant-Network-Message-Id":"\n 97dbd61b-3050-44c0-a76e-08de3e419b46","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 DB1PEPF000509EF.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.\n\nBFCVT, FCVT Convert to packed 8-bit floating-point format:\n- svmfloat8_t svcvt_mf8[_f16_x2]_fpm(svfloat16x2_t zn, fpm_t fpm)\n- svmfloat8_t svcvt_mf8[_bf16_x2]_fpm(svbfloat16x2_t zn, fpm_t fpm)\n- svmfloat8_t svcvt_mf8[_f32_x4]_fpm(svfloat32x4_t zn, fpm_t fpm)\n\nFCVTN Convert to interleaved 8-bit floating-point format.\n- svmfloat8_t svcvtn_mf8[_f32_x4]_fpm(svfloat32x4_t zn, fpm_t fpm)\n\ngcc/\n\t* config/aarch64/aarch64-sve-builtins-base.cc (svcvt_impl): Update to\n\thandle fp8 cases.\n\t* config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtn): Added\n\tDEF_SVE_FUNCTION_GS_FPM instances.\n\t* config/aarch64/aarch64-sve2.md\n\t(@aarch64_sve2_fp8_cvtn<mode>): Updated define_insn for additional case.\n\t(@aarch64_sme2_fp8_cvt<mode>): Added new define_insn.\n\t* config/aarch64/iterators.md (VNx16F_NARROW): Added new iterator to\n\thandle narrowing SVE floating point operations.\n\t(UNSPEC_FCVT): Added new unspec.\n\ngcc/testsuite/\n\t* gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c: Added test file.\n\t* gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c: Likewise.\n\t* gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c: Likewise.\n\t* gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c: Likewise.\n\t* gcc.target/aarch64/sve/acle/asm/test_sve_acle.h\n\t(TEST_X2_NARROW): Added fpm0 argument for intrinsics.\n\t(TEST_X4_NARROW): Likewise.\n---\n .../aarch64/aarch64-sve-builtins-base.cc      | 26 ++++---\n .../aarch64/aarch64-sve-builtins-sve2.def     |  3 +\n gcc/config/aarch64/aarch64-sve2.md            | 14 +++-\n gcc/config/aarch64/iterators.md               |  4 ++\n .../aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c   | 56 +++++++++++++++\n .../aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c    | 56 +++++++++++++++\n .../aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c    | 72 +++++++++++++++++++\n .../aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c   | 72 +++++++++++++++++++\n .../aarch64/sve/acle/asm/test_sve_acle.h      |  2 +\n 9 files changed, 293 insertions(+), 12 deletions(-)\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c\n create mode 100644 gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c","diff":"diff --git a/gcc/config/aarch64/aarch64-sve-builtins-base.cc b/gcc/config/aarch64/aarch64-sve-builtins-base.cc\nindex ecc06877cac..622485effb3 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins-base.cc\n+++ b/gcc/config/aarch64/aarch64-sve-builtins-base.cc\n@@ -779,17 +779,23 @@ public:\n       {\n \tmachine_mode mode0 = e.result_mode ();\n \tmachine_mode mode1 = GET_MODE (e.args[0]);\n-\tconvert_optab optab;\n-\tif (e.type_suffix (0).integer_p)\n-\t  optab = e.type_suffix (0).unsigned_p ? ufix_optab : sfix_optab;\n-\telse if (e.type_suffix (1).integer_p)\n-\t  optab = e.type_suffix (1).unsigned_p ? ufloat_optab : sfloat_optab;\n-\telse if (e.type_suffix (0).element_bits\n-\t\t < e.type_suffix (1).element_bits)\n-\t  optab = trunc_optab;\n+\tif (e.fpm_mode == aarch64_sve::FPM_set)\n+\t  icode = code_for_aarch64_sme2_fp8_cvt (mode1);\n \telse\n-\t  optab = sext_optab;\n-\ticode = convert_optab_handler (optab, mode0, mode1);\n+\t  {\n+\t    convert_optab optab;\n+\t    if (e.type_suffix (0).integer_p)\n+\t      optab = e.type_suffix (0).unsigned_p ? ufix_optab : sfix_optab;\n+\t    else if (e.type_suffix (1).integer_p)\n+\t      optab = e.type_suffix (1).unsigned_p ? ufloat_optab\n+\t\t\t\t\t\t   : sfloat_optab;\n+\t    else if (e.type_suffix (0).element_bits\n+\t\t     < e.type_suffix (1).element_bits)\n+\t      optab = trunc_optab;\n+\t    else\n+\t      optab = sext_optab;\n+\t    icode = convert_optab_handler (optab, mode0, mode1);\n+\t  }\n \tgcc_assert (icode != CODE_FOR_nothing);\n \treturn e.use_exact_insn (icode);\n       }\ndiff --git a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\nindex c271b97de87..869e006ffde 100644\n--- a/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\n+++ b/gcc/config/aarch64/aarch64-sve-builtins-sve2.def\n@@ -421,6 +421,9 @@ DEF_SVE_FUNCTION_GS_FPM (svdot_lane, ternary_mfloat8_lane_group_selection, h_flo\n \n #define REQUIRED_EXTENSIONS \\\n   streaming_only (AARCH64_FL_SME2 | AARCH64_FL_FP8)\n+DEF_SVE_FUNCTION_GS_FPM (svcvt, unary_convertxn_narrow, cvtn_mf8, x2, none, set)\n+DEF_SVE_FUNCTION_GS_FPM (svcvt, unary_convertxn_narrow, cvtnx_mf8, x4, none, set)\n+DEF_SVE_FUNCTION_GS_FPM (svcvtn, unary_convertxn_narrow, cvtnx_mf8, x4, none, set)\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)\ndiff --git a/gcc/config/aarch64/aarch64-sve2.md b/gcc/config/aarch64/aarch64-sve2.md\nindex ab8098d3327..da7a7a3c23c 100644\n--- a/gcc/config/aarch64/aarch64-sve2.md\n+++ b/gcc/config/aarch64/aarch64-sve2.md\n@@ -3635,10 +3635,10 @@ (define_insn \"@aarch64_sve_cvtn<mode>\"\n (define_insn \"@aarch64_sve2_fp8_cvtn<mode>\"\n   [(set (match_operand:VNx16QI 0 \"register_operand\" \"=w\")\n \t(unspec:VNx16QI\n-\t  [(match_operand:SVE_FULL_HFx2 1 \"aligned_register_operand\" \"Uw2\")\n+\t  [(match_operand:VNx16F_NARROW 1 \"aligned_register_operand\" \"Uw<vector_count>\")\n \t   (reg:DI FPM_REGNUM)]\n \t  UNSPEC_FP8FCVTN))]\n-  \"TARGET_SSVE_FP8\"\n+  \"<MODE>mode == VNx16SFmode ? TARGET_SSME2_FP8 : TARGET_STREAMING_SME2\"\n   \"<b>fcvtn\\t%0.b, %1\"\n   [(set_attr \"sve_type\" \"sve_fp_cvt\")]\n )\n@@ -3666,6 +3666,16 @@ (define_insn \"@aarch64_sve_cvtnt<mode>\"\n   [(set_attr \"sve_type\" \"sve_fp_cvt\")]\n )\n \n+(define_insn \"@aarch64_sme2_fp8_cvt<mode>\"\n+  [(set (match_operand:VNx16QI 0 \"register_operand\" \"=w\")\n+\t(unspec:VNx16QI\n+\t  [(match_operand:VNx16F_NARROW 1 \"aligned_register_operand\" \"Uw<vector_count>\")\n+\t   (reg:DI FPM_REGNUM)]\n+\t  UNSPEC_FCVT))]\n+   \"TARGET_SSME2_FP8\"\n+   \"<b>fcvt\\t%0.b, %1\"\n+)\n+\n ;; -------------------------------------------------------------------------\n ;; ---- [FP<-INT] Multi-vector conversions\n ;; -------------------------------------------------------------------------\ndiff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md\nindex 026c3101e38..e6f59d22d0c 100644\n--- a/gcc/config/aarch64/iterators.md\n+++ b/gcc/config/aarch64/iterators.md\n@@ -712,6 +712,9 @@ (define_mode_iterator VNx4_WIDE [VNx4SI])\n (define_mode_iterator VNx2_NARROW [VNx2QI VNx2HI VNx2SI])\n (define_mode_iterator VNx2_WIDE [VNx2DI])\n \n+;; Used for narrowing SVE floating point operations.\n+(define_mode_iterator VNx16F_NARROW [VNx16BF VNx16HF VNx16SF])\n+\n ;; All SVE predicate modes.\n (define_mode_iterator PRED_ALL [VNx16BI VNx8BI VNx4BI VNx2BI])\n \n@@ -1061,6 +1064,7 @@ (define_c_enum \"unspec\"\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_FCVT\t\t; Used in aarch64-sve2.md.\n     UNSPEC_FCVTNB\t; Used in aarch64-sve2.md.\n     UNSPEC_FCVTNT\t; Used in aarch64-sve2.md.\n     UNSPEC_FMAXNMP\t; Used in aarch64-sve2.md.\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c\nnew file mode 100644\nindex 00000000000..bdda0fd36d6\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_bf16_x2.c\n@@ -0,0 +1,56 @@\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#pragma GCC target \"+fp8+bf16\"\n+#include \"test_sme2_acle.h\"\n+\n+/*\n+** cvt_z0_z0:\n+**\tmsr\tfpmr, x0\n+**\tbfcvt\tz0\\.b, {z0\\.h - z1\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z0, svbfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_bf16_x2_fpm (z0, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z0_z6:\n+**\tmsr\tfpmr, x0\n+**\tbfcvt\tz0\\.b, {z6\\.h - z7\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z6, svbfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_bf16_x2_fpm (z6, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z6, fpm0))\n+\n+/*\n+** cvt_z0_z29:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tbfcvt\tz0\\.b, [^\\n]+\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z29, svbfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_bf16_x2_fpm (z29, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z29, fpm0))\n+\n+/*\n+** cvt_z5_z0:\n+**\tmsr\tfpmr, x0\n+**\tbfcvt\tz5\\.b, {z0\\.h - z1\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z5_z0, svbfloat16x2_t, svmfloat8_t,\n+\t\tz5 = svcvt_mf8_bf16_x2_fpm (z0, fpm0),\n+\t\tz5 = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z22_z16:\n+**\tmsr\tfpmr, x0\n+**\tbfcvt\tz22\\.b, {z16\\.h - z17\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z22_z16, svbfloat16x2_t, svmfloat8_t,\n+\t\tz22 = svcvt_mf8_bf16_x2_fpm (z16, fpm0),\n+\t\tz22 = svcvt_mf8_fpm (z16, fpm0))\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c\nnew file mode 100644\nindex 00000000000..93792e90945\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f16_x2.c\n@@ -0,0 +1,56 @@\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#include \"test_sme2_acle.h\"\n+#pragma GCC target \"+fp8\"\n+\n+/*\n+** cvt_z0_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz0\\.b, {z0\\.h - z1\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z0, svfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f16_x2_fpm (z0, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z0_z6:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz0\\.b, {z6\\.h - z7\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z6, svfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f16_x2_fpm (z6, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z6, fpm0))\n+\n+/*\n+** cvt_z0_z29:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tfcvt\tz0\\.b, {z0\\.h - z1\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z0_z29, svfloat16x2_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f16_x2_fpm (z29, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z29, fpm0))\n+\n+/*\n+** cvt_z5_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz5\\.b, {z0\\.h - z1\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z5_z0, svfloat16x2_t, svmfloat8_t,\n+\t\tz5 = svcvt_mf8_f16_x2_fpm (z0, fpm0),\n+\t\tz5 = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z22_z16:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz22\\.b, {z16\\.h - z17\\.h}\n+**\tret\n+*/\n+TEST_X2_NARROW (cvt_z22_z16, svfloat16x2_t, svmfloat8_t,\n+\t\tz22 = svcvt_mf8_f16_x2_fpm (z16, fpm0),\n+\t\tz22 = svcvt_mf8_fpm (z16, fpm0))\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c\nnew file mode 100644\nindex 00000000000..a9ee10de0df\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvt_mf8_f32_x4.c\n@@ -0,0 +1,72 @@\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#include \"test_sme2_acle.h\"\n+#pragma GCC target \"+fp8\"\n+\n+/*\n+** cvt_z0_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz0\\.b, {z0\\.s - z3\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z0_z0, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f32_x4_fpm (z0, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z0_z4:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz0\\.b, {z4\\.s - z7\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z0_z4, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f32_x4_fpm (z4, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z4, fpm0))\n+\n+/*\n+** cvt_z0_z21:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tfcvt\tz0\\.b, [^\\n]+\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z0_z21, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvt_mf8_f32_x4_fpm (z21, fpm0),\n+\t\tz0_res = svcvt_mf8_fpm (z21, fpm0))\n+\n+/*\n+** cvt_z25_z26:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tfcvt\tz25\\.b, {z28\\.s - z31\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z25_z26, svfloat32x4_t, svmfloat8_t,\n+\t\tz25 = svcvt_mf8_f32_x4_fpm (z26, fpm0),\n+\t\tz25 = svcvt_mf8_fpm (z26, fpm0))\n+\n+/*\n+** cvt_z25_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz25\\.b, {z0\\.s - z3\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z25_z0, svfloat32x4_t, svmfloat8_t,\n+\tz25 = svcvt_mf8_f32_x4_fpm (z0, fpm0),\n+\tz25 = svcvt_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvt_z22_z16:\n+**\tmsr\tfpmr, x0\n+**\tfcvt\tz22\\.b, {z16\\.s - z19\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvt_z22_z16, svfloat32x4_t, svmfloat8_t,\n+\tz22_res = svcvt_mf8_f32_x4_fpm (z16, fpm0),\n+\tz22_res = svcvt_mf8_fpm (z16, fpm0))\ndiff --git a/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c\nnew file mode 100644\nindex 00000000000..2d0bd7eda0e\n--- /dev/null\n+++ b/gcc/testsuite/gcc.target/aarch64/sme2/acle-asm/cvtn_mf8_f32_x4.c\n@@ -0,0 +1,72 @@\n+/* { dg-final { check-function-bodies \"**\" \"\" \"-DCHECK_ASM\" } } */\n+\n+#include \"test_sme2_acle.h\"\n+#pragma GCC target \"+fp8\"\n+\n+/*\n+** cvtn_z0_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvtn\tz0\\.b, {z0\\.s - z3\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z0_z0, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvtn_mf8_f32_x4_fpm (z0, fpm0),\n+\t\tz0_res = svcvtn_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvtn_z0_z4:\n+**\tmsr\tfpmr, x0\n+**\tfcvtn\tz0\\.b, {z4\\.s - z7\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z0_z4, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvtn_mf8_f32_x4_fpm (z4, fpm0),\n+\t\tz0_res = svcvtn_mf8_fpm (z4, fpm0))\n+\n+/*\n+** cvtn_z0_z21:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tfcvtn\tz0\\.b, [^\\n]+\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z0_z21, svfloat32x4_t, svmfloat8_t,\n+\t\tz0_res = svcvtn_mf8_f32_x4_fpm (z21, fpm0),\n+\t\tz0_res = svcvtn_mf8_fpm (z21, fpm0))\n+\n+/*\n+** cvtn_z25_z26:\n+**\tmsr\tfpmr, x0\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tmov\t[^\\n]+\n+**\tfcvtn\tz25\\.b, {z28\\.s - z31\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z25_z26, svfloat32x4_t, svmfloat8_t,\n+\t\tz25 = svcvtn_mf8_f32_x4_fpm (z26, fpm0),\n+\t\tz25 = svcvtn_mf8_fpm (z26, fpm0))\n+\n+/*\n+** cvtn_z25_z0:\n+**\tmsr\tfpmr, x0\n+**\tfcvtn\tz25\\.b, {z0\\.s - z3\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z25_z0, svfloat32x4_t, svmfloat8_t,\n+\tz25 = svcvtn_mf8_f32_x4_fpm (z0, fpm0),\n+\tz25 = svcvtn_mf8_fpm (z0, fpm0))\n+\n+/*\n+** cvtn_z22_z16:\n+**\tmsr\tfpmr, x0\n+**\tfcvtn\tz22\\.b, {z16\\.s - z19\\.s}\n+**\tret\n+*/\n+TEST_X4_NARROW (cvtn_z22_z16, svfloat32x4_t, svmfloat8_t,\n+\tz22_res = svcvtn_mf8_f32_x4_fpm (z16, fpm0),\n+\tz22_res = svcvtn_mf8_fpm (z16, 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 7c156c4cf2a..8d4ed537c87 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@@ -733,6 +733,7 @@\n #define TEST_X2_NARROW(NAME, TTYPE, ZTYPE, CODE1, CODE2)\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 TTYPE 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@@ -749,6 +750,7 @@\n #define TEST_X4_NARROW(NAME, TTYPE, ZTYPE, CODE1, CODE2)\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 TTYPE z0 __asm (\"z0\");\t\t\t\t\\\n     register TTYPE z4 __asm (\"z4\");\t\t\t\t\\\n     register TTYPE z16 __asm (\"z16\");\t\t\t\t\\\n","prefixes":["v4","3/8"]}