From patchwork Thu Jul 25 14:25:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudio Bantaloukas X-Patchwork-Id: 1964792 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=DrCdQpDX; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=DrCdQpDX; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=8.43.85.97; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WVCr60jYhz1yY9 for ; Fri, 26 Jul 2024 00:26:46 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 516EF385DDC3 for ; Thu, 25 Jul 2024 14:26:44 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:260d::601]) by sourceware.org (Postfix) with ESMTPS id 9ECAF3858C33 for ; Thu, 25 Jul 2024 14:26:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9ECAF3858C33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9ECAF3858C33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:260d::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917569; cv=pass; b=cTFDFcOoEB8i7vkUQtwOYoRUxkGOfimGhCAfpozTKdtLWuuu8K+8Tu0m3K5nCyHZiqNdspcFEgkiB2ouXsFIcQXjQoxsL3AzMeD2DBVGyWBWUfqaKLcXclMlOGo+NkkDAuVMv+5eOKy3p4xxg3pbTkkR94f3Rb4DjeVjtrnaa4o= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917569; c=relaxed/simple; bh=UcvsyK9TNqh0t8c5VUwFOXRoGUFtddqSQa6/AqP/ols=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=uuV9149WCEAQbC6RU7KtpgVYq0reMub9cs0wl3FP9KjYjDF1szhDGYp/PLaQ0c+nxp4xmsY4fZ5Pi7NjNDoiBLkTk8JhI262+wnipe+snoFYyPoAh8gSGGdRwKCZLGIdPVqfFpmD5QTiriJWMwOgnHYML0vMuAKTmMSHVyLiyLI= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=X3rKB1oiqU3wkCiHebTW/2soPnxiYhW47niX2pt5XwvMHtWp3cP3qr7bYq4NLtAnAPx68Yp/LeQtFUyqIrUDWCwWfgkJxxp3RjE3uY5NoBYxazITdBNLPf+cjMR5IdXkK44qR3AQUxhOjINUDKOFvOZedvSCemq8mLZiHlk9lynN5tM+4Mmlc9oC3YFQZ/jBPkqGuig5nb2lfF4GgM/zUzqIcq6DCq4jQEiSER1NXWTLDdFxHrNOsCtoIETMupR4/LH60nwBNwo5rl4ukrweqJPvIZl+GSTYBhQgUdndnIw8cW27tZCwKG2HKmjAzSh7CUn1MW4dD7e5Qad/MYtdEQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=PdMf8CdrW8MLUMnkbL6+rYxmpJla31EhdHGaVEa79HM=; b=jeeqzrbFs17ul5De0nidAwKFPsR3qBQYbNIOV2s5suW/U2hWc+ItTo6anPrNN9GSWRatJWbR8L4bsxgrXMePnUReo9jm+4Q/CBIhHlI9T5V7mjaof7EXqxW4VOsgaZFAH+AvZf7NAZOhbx2DsO8Vx/CAMdBImlOO0s45uqonC18Kb0nGLf2nU4Z+RP2G7I5EL7QvqX3kcl/UA5wokhfqfET9MwYd5qp+e8Ze6SDnhgGjaNtKWwVteBaxYzHmfk41hsOKHOscONU9NIpg6kZiEeTQxCaUHrYhrhYa8Q+L2eMcAspgLhE6WAaRaBZw9MSDidnL2wm3grT4XXSB7m7xXw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PdMf8CdrW8MLUMnkbL6+rYxmpJla31EhdHGaVEa79HM=; b=DrCdQpDX4f+l60kiCNCaScjNwvR6B4ZDuPBeeIitWc+1EO7cuvBOZWTyjUI2I9DzlzLIKogtVPXcNi7ZTAszpo8RmVFsHdZXct+fZ6+nm8guHaujlitL4carLwxegYtehrGXVF//TvZXsH44HWJo82sY1goPpq6ykpwh3hrc65Q= Received: from AM6PR01CA0051.eurprd01.prod.exchangelabs.com (2603:10a6:20b:e0::28) by AS2PR08MB8952.eurprd08.prod.outlook.com (2603:10a6:20b:5fb::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16; Thu, 25 Jul 2024 14:26:03 +0000 Received: from AM2PEPF0001C70D.eurprd05.prod.outlook.com (2603:10a6:20b:e0:cafe::56) by AM6PR01CA0051.outlook.office365.com (2603:10a6:20b:e0::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20 via Frontend Transport; Thu, 25 Jul 2024 14:26:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM2PEPF0001C70D.mail.protection.outlook.com (10.167.16.201) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:26:02 +0000 Received: ("Tessian outbound ca5638866b89:v365"); Thu, 25 Jul 2024 14:26:02 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7b86864268775eff X-CR-MTA-TID: 64aa7808 Received: from L48cb5c363d24.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 8CD652CC-6B32-42D0-A218-9E6C3BDC4EA1.1; Thu, 25 Jul 2024 14:25:55 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L48cb5c363d24.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 25 Jul 2024 14:25:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NqPZg8QDDEIxre3ihPp63cCxBbonJCJppa0PFZmfhrwauDAEwE52ldqAWubcpdeKD86QDIEOTK0NeBt8QdhwhWbWY4imR8RnAini8XCysVZ/XeW5Go5VWFd6KUAg0EzwaN3DmcdkoMtgxsm3kv2xsRFsvDyUZviqKRqab07IUaKml44yCt/2qDOEEn6/y1jzgTwRhvcrQl9JZ5aLCCL/dKOoV+RXvp/9rHzmBpfvKZvHmxhFtJJddytVauBXokesmIMi2PmI7dYpb8q/tYTzTpHWSzCJ5nTQDVwAAgryeYdV8kE3M9Ot8xkIZKW2Pvoa4c4LtxtN/6Ntog35H7gAhw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=PdMf8CdrW8MLUMnkbL6+rYxmpJla31EhdHGaVEa79HM=; b=Iaa05f09M1Xnymc5Q3pRkLDSJAgQxJ/P6ZLm8klsOZcH5EFEsl+z+wRfD70pkacy2iDgTM8hsT4xL6KwtAiGVrbc/vCWmVUATq7+df/cJUGkdUYDxPr9ShLOR9HJnzS3dU2+QX7DXcr47P3LOMxUWN4+EG0JwPZOPYxteAojX3qv+H/G7cI91gB0r27ebVuH1FpHb5Y7iq18yiYSDfKYDfgOuy/9gnzU3jK1b1+dzExY/MQ+HNt1Xs3guUcO9/oHHWIg5hJcJLUwXg8CSRY9R0FguwO3Rc9traHov9emDEUZN1n98RrSKmbNjt6s0b7bU1P4VbzuqMD9M4n8554JaA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PdMf8CdrW8MLUMnkbL6+rYxmpJla31EhdHGaVEa79HM=; b=DrCdQpDX4f+l60kiCNCaScjNwvR6B4ZDuPBeeIitWc+1EO7cuvBOZWTyjUI2I9DzlzLIKogtVPXcNi7ZTAszpo8RmVFsHdZXct+fZ6+nm8guHaujlitL4carLwxegYtehrGXVF//TvZXsH44HWJo82sY1goPpq6ykpwh3hrc65Q= Received: from AS9PR06CA0399.eurprd06.prod.outlook.com (2603:10a6:20b:461::12) by PAWPR08MB8887.eurprd08.prod.outlook.com (2603:10a6:102:33b::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AM1PEPF000252E1.eurprd07.prod.outlook.com (2603:10a6:20b:461:cafe::64) by AS9PR06CA0399.outlook.office365.com (2603:10a6:20b:461::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM1PEPF000252E1.mail.protection.outlook.com (10.167.16.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 25 Jul 2024 14:25:51 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX02.Emea.Arm.com (10.251.26.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 25 Jul 2024 14:25:50 +0000 Received: from 221664dbf3aa.euhpc2.arm.com (10.58.86.32) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 25 Jul 2024 14:25:50 +0000 From: Claudio Bantaloukas To: CC: Claudio Bantaloukas Subject: [PATCH v2 1/3] aarch64: Add march flags for +fp8 arch extensions Date: Thu, 25 Jul 2024 14:25:46 +0000 Message-ID: <20240725142548.699792-2-claudio.bantaloukas@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240725142548.699792-1-claudio.bantaloukas@arm.com> References: <20240725142548.699792-1-claudio.bantaloukas@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM1PEPF000252E1:EE_|PAWPR08MB8887:EE_|AM2PEPF0001C70D:EE_|AS2PR08MB8952:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b305e7f-c24d-4789-b429-08dcacb5b63e x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info-Original: FRDE+xWf4kXug2XgHp4qB/MpoIekH4A+2Y2KRCT+tHVuvkuG/5FOG8SVRk/5oPdEy5B3P+hE9sRancrx+7ocLdP7uOnV7OE8Quuga8oSrjZOgIkcMTvLzjOO+WaAUlgcjk7GAGxmOdhe2awANz+3nEeXvPCDItn1ZjZ21rbf7+csT7XHsMbtXVcbbOeYsiF9piGMB1zYuufyXdA/fxfUXWgo2i/4JOF19+0BMcM/+l6s2MiN5++gYLXzSXqWapL7e3ly2yRNjDL5LD8TBfRKCo4404ksiZN+MzTtCy8zwWc0W+7KaGvOk+5MM32gbR8QwNhhS5xNiPRLnmq743KgL1L1UfAisc/FplS2LCVsfYoZ5Pwy97cXXOUgK4t/dWY7GtYngvntGqZ/lGDxo8Uq3axyAJw7ZfMIKTnHRUdYpWl4G+qj+hzNdktg2xY3ri5IFLxLUyLcLE0Mq7o7AWR+RFIS1SEbwSYx5MLmK0DYdWfWhEta+LvHVKGI9e3MRlss7U94775uWWUASni6WXtpUAFt4g/LdHHLXo2ItnzM9M+m1mkK/zqUQutqHaPiwLL/UzFdLu3DiLWxCBFdHkkwBFQOHByyBH6VO6VTWSTnntCnaSJzROgxZ3nqCkdebXbQCRwmA5y9mFd3mJqB3h8NglUldoVRuVSkU3B7fFRhwPQJsLRtl84IA8X+0WqALMqpy6V12nmoE8rlKHdtOf/DMmgzmMY+QrItbkZcCEi2ZHDJiUoaVCpx+xWEhkBJSOYDDNabuJ3RnjUscBwz/3K2PpndVOryPTcjXMRNXOuUv2w7dPYLso3vyEPfWEcsVcSG33AtgLojAQfIvUhJMS50V1mhWWdniCbr3YhFMmgdatJgnpoT0PIFVILJ+XO+UrPfSRpuza2WYj/d10RfXSKVOrVfEFCylbEDUdAIIdc8HMxEpVq55ZCZRYSf5xAh6vOqrejA/YvRvgQr8vHEFUJDKN+NbdhK9DVSPQhSVzQnq6E1NAoGpruDiOLE/7LXk8HOq1VdiCbsN1yY1IoPogtk0prIFqq8yXJjp7NZbLgCWKoQsscQI23ZHaxsw0iF/H458BJm+twQjxZZRDcCxdxq8quP4KLSh6Mlcg0t015fWB5cXwuX6XneQgQaHO8L06+mG5P0r4LbXnD9M9Dek8GlIpLC05+O1po1dJA/xTch7nUL68mm7bvVpQzPbSIz6m5o+lzAKy9bYHs/gwWjcxv5bVHbWvahdt2rhGe/j6A5/UzYTejH8p+qITS4bGeqUmfNlGITyhPh2WzktXX8uWbqm1FjxauQAX1VdiKBNwpdD+mMKb00wK/S2YIVJ9fGPuQhTI7pnmjRtWVOlW0heivDGRMU3cpg6ujUPiPvB+rl7cYA1wbZAm3p8Q5GCGu5bq7Wtwqz/wdl1fgxRI8jn9ezVA== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(36860700013)(1800799024)(376014)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB8887 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:461::12]; domain=AS9PR06CA0399.eurprd06.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C70D.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 7ea189d9-2581-4a08-4ac4-08dcacb5aff4 X-Microsoft-Antispam: BCL:0; ARA:13230040|34020700016|36860700013|35042699022|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ce4uFnLi9IXBuXZrWOri3WgcwnqXFVp?= =?utf-8?q?YgNkc0ue76f46mO3H1MkfExb/LsO9nouz5L8RwpGvgP+JUhgDSZsGhk/5qtSC2Esa?= =?utf-8?q?6a7B4CP+xOdlxN7Vx7KLSXYF+UH5AlZztLdud9QVaHZZ/s2qtsBh9t3pl5bQ17Ijb?= =?utf-8?q?a35Sc38RpEw+Rq7T9gmoZetS8b5iAuYya2H3lOoQJmlBvm1GioBNd1dYQRVGQ3KA6?= =?utf-8?q?cUfBpR3NJUiOJAPz0XTiw5Q0xaMFdAWHxl8W4x/hGsTD6O9qlQ/Ukzsq3zIS6+cID?= =?utf-8?q?5jp6fss745/M+uJySRZcOsJRpoWGD0nyEwUeMia51ve5StVI0EajsQgfj3Tdd+KAN?= =?utf-8?q?F/lhtrWze4+9PiUE7vcMULNMyqYqHvdaXPC3Bz8slwvAhuXvTg2DR/DN9j1BAHdWo?= =?utf-8?q?Cm+Bvea4AP2W8irIFiSThcyFQvVeB0+L0PyucxaDpO4SWLjcmAvShS8us7uLFzfAp?= =?utf-8?q?tmBJr/7+xvDgzUrZ/OfwsyaKtAohdOf6iQiesWR1WpZPnaJLUnGFHGJlPrdUInYpP?= =?utf-8?q?mFzXA/KdOZhNFl74LbOEZywvQeX1IwK+cnjByd/VzPybcYUBmZGVwjdFQqaJ++WUo?= =?utf-8?q?t5QH4XNU9bP/XgTsBfE627TJ0q4iIgCx+QWexr/1jfHR6VlGCVpKQo1t/TvO0dJVE?= =?utf-8?q?eAUaursEafj/VFzTWJyD3dx99QVMhbnfGIZORc6zQDzSc3FfFzJ41M42FDMZjnnM2?= =?utf-8?q?/OiAQRmFMPW0iaKVvZ80X0m9CdcLf0F0aMeRE2vzOub374KEVg6frmIuiOMh6HYk2?= =?utf-8?q?Qyg5wUGA1+m7XNbnz6XLosVm193wubG0+1xX2tJQwmBS+RBWDRR63cMCUZ4SFVZQe?= =?utf-8?q?h2i9FqZzLkRgi5IpQBy+tnveAYVMMnF+vbyMx6/vng5Tgl5UFlpFXa8CfF1kBMwKn?= =?utf-8?q?6SUEQ++tX15KU/KrvxqeSoav5pfMb+dLxSCEIZy/bZrpYMWDmH5eXjBU6+RLOpd6R?= =?utf-8?q?J3u6SciFF54jafgjACKFgL/9DsTEA5nScGGlVRnuBSC1c+U+Vv+hqsJBVCyQFNkM6?= =?utf-8?q?WOr8jbfQv7qT6v8vriR9CQombL4rfFmZpWj/Ev3jg+WaRD0qGkFyfKt3DMpAPPGnG?= =?utf-8?q?5OHNVxbkiZz98Mqo1ySyrw+c0ZVSmjwXgmOODh9WBis7W9kfBh1JIu2yncfjHwokB?= =?utf-8?q?AfDzoai/6/0B306WK4+8ofixOQi7SWXnJrzNrkGMUwBQEIaxmdKq+zb4x6S4FJcA4?= =?utf-8?q?ZAQ4Wr8E5UGhvvsKnWOf8lrSwmH/WDPp/IolvStn4waWAcXnYnSuBtla1GbhOEoiN?= =?utf-8?q?v73yuWvNDb/VtqN0KmyvUMvCtudFWWP6RMXHn9x8q/mTnVsFB2CamLzTlpYz//yWB?= =?utf-8?q?bGGtdXciDd19EbGqtiLVOz6x+w/gYVtfwQ=3D=3D?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230040)(34020700016)(36860700013)(35042699022)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2024 14:26:02.5763 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b305e7f-c24d-4789-b429-08dcacb5b63e X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM2PEPF0001C70D.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8952 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org This introduces the relevant flags to enable access to the fpmr register and fp8 intrinsics, which will be added subsequently. gcc/ChangeLog: * config/aarch64/aarch64-option-extensions.def (fp8): New. * config/aarch64/aarch64.h (TARGET_FP8): Likewise. * doc/invoke.texi (AArch64 Options): Document new -march flags and extensions. gcc/testsuite/ChangeLog: * gcc.target/aarch64/acle/fp8.c: New test. --- .../aarch64/aarch64-option-extensions.def | 2 ++ gcc/config/aarch64/aarch64.h | 3 +++ gcc/doc/invoke.texi | 2 ++ gcc/testsuite/gcc.target/aarch64/acle/fp8.c | 21 +++++++++++++++++++ 4 files changed, 28 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8.c diff --git a/gcc/config/aarch64/aarch64-option-extensions.def b/gcc/config/aarch64/aarch64-option-extensions.def index 42ec0eec31e..6998627f377 100644 --- a/gcc/config/aarch64/aarch64-option-extensions.def +++ b/gcc/config/aarch64/aarch64-option-extensions.def @@ -232,6 +232,8 @@ AARCH64_OPT_EXTENSION("the", THE, (), (), (), "the") AARCH64_OPT_EXTENSION("gcs", GCS, (), (), (), "gcs") +AARCH64_OPT_EXTENSION("fp8", FP8, (SIMD), (), (), "fp8") + #undef AARCH64_OPT_FMV_EXTENSION #undef AARCH64_OPT_EXTENSION #undef AARCH64_FMV_FEATURE diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index b7e330438d9..2e75c6b81e2 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -463,6 +463,9 @@ constexpr auto AARCH64_FL_DEFAULT_ISA_MODE ATTRIBUTE_UNUSED && (aarch64_tune_params.extra_tuning_flags \ & AARCH64_EXTRA_TUNE_AVOID_PRED_RMW)) +/* fp8 instructions are enabled through +fp8. */ +#define TARGET_FP8 AARCH64_HAVE_ISA (FP8) + /* Standard register usage. */ /* 31 64-bit general purpose registers R0-R30: diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index e0a641213ae..f293d49c61a 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -21843,6 +21843,8 @@ Enable support for Armv9.4-a Guarded Control Stack extension. Enable support for Armv8.9-a/9.4-a translation hardening extension. @item rcpc3 Enable the RCpc3 (Release Consistency) extension. +@item fp8 +Enable the fp8 (8-bit floating point) extension. @end table diff --git a/gcc/testsuite/gcc.target/aarch64/acle/fp8.c b/gcc/testsuite/gcc.target/aarch64/acle/fp8.c new file mode 100644 index 00000000000..4113758aa25 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/fp8.c @@ -0,0 +1,21 @@ +/* Test the fp8 ACLE intrinsics family. */ +/* { dg-do compile } */ +/* { dg-options "-O1 -march=armv8-a" } */ +/* { dg-final { check-function-bodies "**" "" "" } } */ + +#include + +#ifdef __ARM_FEATURE_FP8 +#error "__ARM_FEATURE_FP8 feature macro defined." +#endif + +#pragma GCC push_options +#pragma GCC target("arch=armv9.4-a+fp8") + +/* We do not define __ARM_FEATURE_FP8 until all + relevant features have been added. */ +#ifdef __ARM_FEATURE_FP8 +#error "__ARM_FEATURE_FP8 feature macro defined." +#endif + +#pragma GCC pop_options From patchwork Thu Jul 25 14:25:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudio Bantaloukas X-Patchwork-Id: 1964793 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=alZXIYU5; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=alZXIYU5; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WVCr76sbJz1yY9 for ; Fri, 26 Jul 2024 00:26:47 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 32CC8385DDCF for ; Thu, 25 Jul 2024 14:26:46 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20628.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::628]) by sourceware.org (Postfix) with ESMTPS id 8A0FF3858C39 for ; Thu, 25 Jul 2024 14:26:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8A0FF3858C39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8A0FF3858C39 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::628 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917573; cv=pass; b=rwdwjnVlAuwGgtuDpcU4o0hBP3sTNIuDmyqcQmpZOik41OqVP97E4JLiTUxgCet6xP/UbAISTSThp9pmgtHwpSILVsPzn2Tgm6XNNiePqNuw4Knb+LTljy9kEd5lem/oCyF7fC9kl7gcJ9A/TvOcuHUO8mzYnzirq3tLtbLH9eo= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917573; c=relaxed/simple; bh=ZOvdJ7iW978nebBkseDQGF2m9GGxNZpqhbK3l+4PtDM=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=h+sHIS97272FrXngKwrinxyA0nI4SfFlG/50lkAjMp9QU5x2nbW12RIedhVxfJTyaiq0Cc8Q6JU3FmV3hl9H408HCmCw6dLm5SrunPDnxkOWmXhvJnX7oM45iYeSTRUqNr/Cp/n14245BfeeNa7LrmwelBjRalBI08aOGdsDAm8= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=OUB5J0RS0ze8RyBYeG87tcON26oO2YfNStVWiSf+9ivKl2oWNfDdXcas7h7hpv9CxzT/VoIZy2PmaCzIEy4s4wvtFWdDoxqOM+AR/dxKBTHCmztJI4H0sbLIeWZzGvDVmJlHY1dvJoft8M2r44sRVEkP5W12t7RB9wIpD/DaK1b6z0iXYrNEXXOpqH+E0wfxCprauqp7fQjKYYT2+dZVSAdFIWWqr1vjvMfCAl0BIkfrwWvK+rkT6M8Ow5mdFC4A2c1O8GX+J7z/Bs+Z4VPFqHelLzP5/PQ3fnmxlfowX+yjSKAlOhGzCkiHuD8tovzWTiutgwrLrwYKordzX/Zedw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=wBuZx9hy4MCDSwCKTQpy43NbOwFYXMw5oOEvPYz9ZtM=; b=THQBsED/DLWP33gBBQS6v1FrIF4ZygTFc35BT+7qU2pfbMEwbal+DHTXq8jR5oeR1SYBjrQNqBv97a7QxchK92vwyG1NaeLcKjs3Kh5RDW7I0sDZYw1ggYPdr7LNCFNL1vewQ+2JvtX8QxrfjGcpfbkT6tBjYDcdu7vEBcEBLxuQNER19MK0Wi75wgUHWwoLX77T29QnUdCmYlzXECSMnB16AGqUd72ZOr+ei5WQ1g5cnJ+DL3YHFWyfjpnbSD/ZM/0GpMGdH+ARQr0U3Th5AmbYeY6QBvedexYe0kzLmz8T18bRhFzaNEalLEuSmSXTFpihI2tnOvSU3kawzKd8Ug== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wBuZx9hy4MCDSwCKTQpy43NbOwFYXMw5oOEvPYz9ZtM=; b=alZXIYU5+UVjUjKZ2j8C+bHET29U3ua1vgRyPIT4/eeQtqvwSIhLa2lp5mvqNaBk1h8MvNVuKakNQ0WScEm/WTSEcUi9CVUO8abwnPbg4hcmcLv1APk/L/u4QNbylcBBI+CCm2F/TvtjeDzxZ0uSYLamYJUUPHHRR7Mo+UQRHF0= Received: from AM0PR06CA0114.eurprd06.prod.outlook.com (2603:10a6:208:ab::19) by AS8PR08MB9019.eurprd08.prod.outlook.com (2603:10a6:20b:5c1::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16; Thu, 25 Jul 2024 14:26:07 +0000 Received: from AM1PEPF000252DD.eurprd07.prod.outlook.com (2603:10a6:208:ab:cafe::f0) by AM0PR06CA0114.outlook.office365.com (2603:10a6:208:ab::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18 via Frontend Transport; Thu, 25 Jul 2024 14:26:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM1PEPF000252DD.mail.protection.outlook.com (10.167.16.55) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:26:07 +0000 Received: ("Tessian outbound 5cfbd73e165d:v365"); Thu, 25 Jul 2024 14:26:06 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 5e8aa891c46bc76f X-CR-MTA-TID: 64aa7808 Received: from L21d6a987ab48.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B094FB08-D4EC-4B56-88B1-66F5A0789402.1; Thu, 25 Jul 2024 14:25:54 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L21d6a987ab48.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 25 Jul 2024 14:25:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=chZoxkLPFvFVDjtctnRgnrAXuwr58B8uDqVsjVm+LEWAHTX38zcdubFoEZb409BBGvaJT80dPPa3yoRsuC64EUqsVtSxvqcEQGTmx8YOkrCQfOWtHgj4q39WhEPT2NESrvM7ryxfwhT1AgVx3wKf0ZhBcV7dbIbHyxmiiUBM5AtyVv4ZdxHOFaLMAW9nrw7rn34jTZoi23myWl1+ZdFKGcQBLT7q0lY8leFWy/sRSAhaXFc/+L3KdzrAn8n6t2+dybMqn//l/Yijirbqr6FmgBFfZvsiMOyxvXqW+z5/+ZQ11MT9a1l++tYkldAf7sV8ardMz1Sykniifc5q/hVcJQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=wBuZx9hy4MCDSwCKTQpy43NbOwFYXMw5oOEvPYz9ZtM=; b=N9aokWPARJ4dAM3JsQkvuoA9VHeMzsUSFDul1v4oQvJLlF8IZQycVcR+M9EFL74oWppQtlSnjaVZELG5JBG6kLQMxDS6LbYilXtVYyG1aaYknTLlx23mji8XH57oqIPaTP6ceaWjunayNF3bwKv4GMP+AKQp1wNpwwiwZfpffMXdduAlpIq/cVwqO1kkuzbzxqdgcrEIsCeGkiBHo8Wn0isVfMUAmbErRS4vn6FyMVpkVurwbTygqguBw7HW3hmFC2BWVf+bMlBLuOlDIZY3F0rtsSSOzfs1DykpnCIgbEZe82SpLFSMMQKI4T555Ea7cFZVrbHgNlUVqF5WTfAQxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wBuZx9hy4MCDSwCKTQpy43NbOwFYXMw5oOEvPYz9ZtM=; b=alZXIYU5+UVjUjKZ2j8C+bHET29U3ua1vgRyPIT4/eeQtqvwSIhLa2lp5mvqNaBk1h8MvNVuKakNQ0WScEm/WTSEcUi9CVUO8abwnPbg4hcmcLv1APk/L/u4QNbylcBBI+CCm2F/TvtjeDzxZ0uSYLamYJUUPHHRR7Mo+UQRHF0= Received: from AS9PR06CA0398.eurprd06.prod.outlook.com (2603:10a6:20b:461::17) by AS2PR08MB9499.eurprd08.prod.outlook.com (2603:10a6:20b:60d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AM1PEPF000252E1.eurprd07.prod.outlook.com (2603:10a6:20b:461:cafe::5b) by AS9PR06CA0398.outlook.office365.com (2603:10a6:20b:461::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM1PEPF000252E1.mail.protection.outlook.com (10.167.16.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 25 Jul 2024 14:25:50 +0000 Received: from 221664dbf3aa.euhpc2.arm.com (10.58.86.32) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 25 Jul 2024 14:25:50 +0000 From: Claudio Bantaloukas To: CC: Claudio Bantaloukas Subject: [PATCH v2 2/3] aarch64: Add support for moving fpm system register Date: Thu, 25 Jul 2024 14:25:47 +0000 Message-ID: <20240725142548.699792-3-claudio.bantaloukas@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240725142548.699792-1-claudio.bantaloukas@arm.com> References: <20240725142548.699792-1-claudio.bantaloukas@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM1PEPF000252E1:EE_|AS2PR08MB9499:EE_|AM1PEPF000252DD:EE_|AS8PR08MB9019:EE_ X-MS-Office365-Filtering-Correlation-Id: 41c8c737-898f-473c-717b-08dcacb5b90c x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|1800799024|36860700013|82310400026; X-Microsoft-Antispam-Message-Info-Original: MfYvwMrNaTUlMOACWZXT7doizrpCFMKmT+HFt9HN6Byj3uT3arF/j1f+wYvlUOt+lQ5I6XgSkfvM47AaYoXd6ojx83KxGVU2JoYJaZ1B2ome4D0m5BdrMfyZuRLz/LFDi9Nxtx1ftJ6slAydEg+NPkN7tipVh/tGn+nXZXg1SecO3TyFc4bA6u26uI7QBfxJdhNwlNP3Bewkfwtsjg9RRMLUUoQWkGvT/McIC5pXxLzGbsg6EOj2KbH9wcVmvUDJfWqJX1wT9Pew375owbeWv3Pa42TNDwfNFgF0KRoyRqfujusKr4P3oB0TvbNDajkh92kfj0vgV9gFBLgAJSs8V2TPVs7/G6A1NcrK6lPGpuZBRp+iykM/7JelS7jrYgrgKuiludcLyRLOP/raaDh6jubqAO7bhd89azxp22NcbCBE/cX8YU2ybHdkM3/kFNFeC7M6k1sOxg/PSwwfZSLSCG895g2p0dZ2tgFwqxwmI2hYI7m+CAnbxgZ3uKVeiYDH2pSvd87FKYt9sX9E9EklGNKlO83svtJvpvN6mzF8Xd3ySJKdA+aBEN0XEdcXZ7uc3EOF/5BP9EVt7d9gf7qpMNZXB8+/Yy14KxUUIHQa4GVdeG2+DL8MNEPzokmfzHyzGK7vH09VVtvyy/TM+h1x4R76qCVrXbyhBIB/mQNFCUey+JFXY0Ifh5sd5kvhFjMqtTUBYUrTdDrsBUfEKaOyI6Oy7ix6imJ0WUSZ8cZL8GnWUn3wcXIiDp9FJevUGMFYf/0hw2Ow11zQojZDcdAQWJUIKrtEYAIBn7hhen5IXoQyzMza6PG/f77kSPOEHmbmRFwUYrNd/qv6EbaITgRfpzkUld2L9M0GSXGp3QhD3warwHzPNOfZMdAcmbEF3vTHPQQuR6nDOIabkAwM5nogph1ixeFQUbrCocBUe11AVZ0lCsoxDRG/4IDjWmERgQea97FeXSqwLe/b4ko9NiHxNLBS6yPNMKZGnfy68eXBkKoRgWuerVFGpyCGRnWaL+RlJ8XwbJgDNXKrA0y3T4+wQBGtg/iOCx1HVPBen4+g2bNys5YEmkwmBcn9SVm2eDSieZqOVAnjD4phhaow8AqUuiIcitq1bFWNOtG+PBJ/uPz3Ltau1JjB0b1/8MqnBtHLcz5FGQjJUeHFdoqgYnwh06NxGsdr4ZO8IiUkwN0XCxEzez+a62zivmlkk9AFFz8RP1twmz5cMt4rMY2CSz0qN8ON3sj0MK89I7EtvWQyb0KCf+4P9wI0M4oS1CZADbLn6whIGHQLBk1zVmyD1A9d7D8dL3vD/HGgkoR/OFlxNkQaqJW8+0bni1Tg5Ip0mRlzB5WSseLjfCAykhqLUzxZqUDHyXGm0ff7cTgPFYqIqGy10tZ+VuCzx36p8OY5ay+1jh2eea2tuw8awwOmyfzUPw== X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(1800799024)(36860700013)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9499 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:461::17]; domain=AS9PR06CA0398.eurprd06.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM1PEPF000252DD.eurprd07.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: cec5ef1b-f820-4659-f97f-08dcacb5b023 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|1800799024|376014|34020700016|36860700013|35042699022; X-Microsoft-Antispam-Message-Info: =?utf-8?q?wJl4IxbuTDIkoNFGXcQcRywO8lXyuzE?= =?utf-8?q?OrBWObyvHFVPCZz5S2yifAkgS1H+eynGBICb9BpfK3mCrNaMJ9d5/jJhrJKKtq8KI?= =?utf-8?q?u8O9gtzQrF7toFO5w54caRpIZUW3OGUbNUSfYoUH3QAelK3MwR/ilbW17LIrUi5XY?= =?utf-8?q?57Zc7Hp8jwbe/v8Cb3yZSvFz3YSaZJmF/ZuTSn+PPC+ef4h8s6w5jmnYDozOPFrpL?= =?utf-8?q?NhCXiWb/ojSz930kt//2eZIRKEi4KlfNpDnvEVUVvDN2wB3u51YPrtsihNHhcXb3A?= =?utf-8?q?rkRC3b5rdNVeDLdXyUTCQNTZpaYG6LDKb9LN9MSGrUPrkM5GV55lsb1RfD2cmM9UO?= =?utf-8?q?uNX+fK+siekCGD6EKbs89/y/BRgdCWRKNwsLRb+DZ7h5OmpsghXNn4hmAL2RXGlvg?= =?utf-8?q?9ZXXhp9oqcNiUN6/V+Muv7zenSNiG3Qmzjx6NJx6MT0aOXUMtCy9ksw9G2MZmqjwM?= =?utf-8?q?yFBCcP2dXwlbSBah9AeiIK4HHOJD683kq20Hq+MD1NY/IMlfomRxmc6VRxjqnnnKH?= =?utf-8?q?yu+atJJ2thXko+SXAByUlQ5Gka4amlAxOtysKJeBu3uIYcAKmWuNiO646HRyxH6jj?= =?utf-8?q?/kE565rLSru33oIZa6Gj18rslo2ufe7uALdXbZ7qxeJXJDDUPgrX2JqHfyOzeNmgD?= =?utf-8?q?YT+7LFWB36jevQbgIuFxREof7S2CfgM6Gt+zmEdgvCp8NeUx/cvxi7axaMRobzRZj?= =?utf-8?q?GkmEEpjJs3aLpgO0oLONPW5gDJPPo79ZXfSdS6qJgK0zAhyEXm3WcX3flDtry/ots?= =?utf-8?q?U2a+zKnZXWJQDhoGojMIOhmhOXZ3gLiOLpaEsxQv2GzJ0d2Nevq54QXi8gogkojWS?= =?utf-8?q?TSg0oaDDkFgp5GoY1X9V9AZrYbJw1gj8AsRcwULgs3C8k5qPiQTJcI9JbRY7xdE8T?= =?utf-8?q?CebGcgFsIdvCxWk13jLC1fJ7E1kmXVyBb9x2l7GfRtOC3KBlzaoY0rELg8JkTqFb5?= =?utf-8?q?8Zeo66afyT7RQOHoT5sL2nujNB5AYrSmSbkVTHRDTxFVHwR1+HWZTtcTwTM2ZJQhC?= =?utf-8?q?QepEaFQ4MVagNcfrKBm4Qvz90SC5mgwS+akCZxFM7qp5K02AUirqYdVXmUSV+7Ugz?= =?utf-8?q?aDVcQnZi8NzUM2zNJb9BPmZ9bwhAQ5pB/atSA1WXpoXQSsFFP1GxATOzHC4f5Ukn+?= =?utf-8?q?uVlHCE8u5c5mCbK/KF/kat6f3aR0VERDNxAeDMEdAeoe5ONjaV6fNH/CjF4bAmPUb?= =?utf-8?q?pBkIX95TAKaQkY/Fu/iKZZt64eMAKS2o/PJL2rtURyBosYMjRrT1ftbGso/r2Mpg/?= =?utf-8?q?U6nfmAio9W/cE9HnZnnfIbDvbn2b63/RP2hedHznq5NguVVTqW/iTYJVhLZcM+Taf?= =?utf-8?q?0vxi/7ngqJIHHA14kqcBbXECSZ6bOcI5gg=3D=3D?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230040)(82310400026)(1800799024)(376014)(34020700016)(36860700013)(35042699022); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2024 14:26:07.2176 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 41c8c737-898f-473c-717b-08dcacb5b90c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM1PEPF000252DD.eurprd07.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB9019 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_SHORT, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org Unlike most system registers, fpmr can be heavily written to in code that exercises the fp8 functionality. That is because every fp8 instrinsic call can potentially change the value of fpmr. Rather than just use a an unspec, we treat the fpmr system register like all other registers and use a move operation to read and write to it. We introduce a new class of moveable system registers that, currently, only accepts fpmr and a new constraint, Umv, that allows us to selectively use mrs and msr instructions when expanding rtl for them. Given that there is code that depends on "real" registers coming before "fake" ones, we introduce a new constant FPM_REGNUM that uses an existing value and renumber registers below that. This requires us to update the bitmaps that describe which registers belong to each register class. gcc/ChangeLog: * config/aarch64/aarch64.cc (aarch64_hard_regno_nregs): Add support for MOVEABLE_SYSREGS class. (aarch64_hard_regno_mode_ok): Allow reads and writes to fpmr. (aarch64_regno_regclass): Support MOVEABLE_SYSREGS class. (aarch64_class_max_nregs): Likewise. * config/aarch64/aarch64.h (FIXED_REGISTERS): add fpmr. (CALL_REALLY_USED_REGISTERS): Likewise. (REGISTER_NAMES): Likewise. (enum reg_class): Add MOVEABLE_SYSREGS class. (REG_CLASS_NAMES): Likewise. (REG_CLASS_CONTENTS): Update class bitmaps to deal with fpmr, the new MOVEABLE_REGS class and renumbering of registers. * config/aarch64/aarch64.md: (FPM_REGNUM): added new register number, reusing old value. (FFR_REGNUM): Renumber. (FFRT_REGNUM): Likewise. (LOWERING_REGNUM): Likewise. (TPIDR2_BLOCK_REGNUM): Likewise. (SME_STATE_REGNUM): Likewise. (TPIDR2_SETUP_REGNUM): Likewise. (ZA_FREE_REGNUM): Likewise. (ZA_SAVED_REGNUM): Likewise. (ZA_REGNUM): Likewise. (ZT0_REGNUM): Likewise. (*mov_aarch64): Add support for moveable sysregs. (*movsi_aarch64): Likewise. (*movdi_aarch64): Likewise. * config/aarch64/constraints.md (MOVEABLE_SYSREGS): New constraint. gcc/testsuite/ChangeLog: * gcc.target/aarch64/acle/fp8.c: New tests. --- gcc/config/aarch64/aarch64.cc | 8 ++ gcc/config/aarch64/aarch64.h | 14 ++- gcc/config/aarch64/aarch64.md | 30 ++++-- gcc/config/aarch64/constraints.md | 3 + gcc/testsuite/gcc.target/aarch64/acle/fp8.c | 103 ++++++++++++++++++++ 5 files changed, 144 insertions(+), 14 deletions(-) diff --git a/gcc/config/aarch64/aarch64.cc b/gcc/config/aarch64/aarch64.cc index e0cf382998c..9810f2c0390 100644 --- a/gcc/config/aarch64/aarch64.cc +++ b/gcc/config/aarch64/aarch64.cc @@ -2018,6 +2018,7 @@ aarch64_hard_regno_nregs (unsigned regno, machine_mode mode) case PR_HI_REGS: return mode == VNx32BImode ? 2 : 1; + case MOVEABLE_SYSREGS: case FFR_REGS: case PR_AND_FFR_REGS: case FAKE_REGS: @@ -2045,6 +2046,9 @@ aarch64_hard_regno_mode_ok (unsigned regno, machine_mode mode) /* This must have the same size as _Unwind_Word. */ return mode == DImode; + if (regno == FPM_REGNUM) + return mode == QImode || mode == HImode || mode == SImode || mode == DImode; + unsigned int vec_flags = aarch64_classify_vector_mode (mode); if (vec_flags == VEC_SVE_PRED) return pr_or_ffr_regnum_p (regno); @@ -12680,6 +12684,9 @@ aarch64_regno_regclass (unsigned regno) if (PR_REGNUM_P (regno)) return PR_LO_REGNUM_P (regno) ? PR_LO_REGS : PR_HI_REGS; + if (regno == FPM_REGNUM) + return MOVEABLE_SYSREGS; + if (regno == FFR_REGNUM || regno == FFRT_REGNUM) return FFR_REGS; @@ -13068,6 +13075,7 @@ aarch64_class_max_nregs (reg_class_t regclass, machine_mode mode) case PR_HI_REGS: return mode == VNx32BImode ? 2 : 1; + case MOVEABLE_SYSREGS: case STACK_REG: case FFR_REGS: case PR_AND_FFR_REGS: diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index 2e75c6b81e2..2dfb999bea5 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -523,6 +523,7 @@ constexpr auto AARCH64_FL_DEFAULT_ISA_MODE ATTRIBUTE_UNUSED 1, 1, 1, 1, /* SFP, AP, CC, VG */ \ 0, 0, 0, 0, 0, 0, 0, 0, /* P0 - P7 */ \ 0, 0, 0, 0, 0, 0, 0, 0, /* P8 - P15 */ \ + 1, /* FPMR */ \ 1, 1, /* FFR and FFRT */ \ 1, 1, 1, 1, 1, 1, 1, 1 /* Fake registers */ \ } @@ -547,6 +548,7 @@ constexpr auto AARCH64_FL_DEFAULT_ISA_MODE ATTRIBUTE_UNUSED 1, 1, 1, 0, /* SFP, AP, CC, VG */ \ 1, 1, 1, 1, 1, 1, 1, 1, /* P0 - P7 */ \ 1, 1, 1, 1, 1, 1, 1, 1, /* P8 - P15 */ \ + 1, /* FPMR */ \ 1, 1, /* FFR and FFRT */ \ 0, 0, 0, 0, 0, 0, 0, 0 /* Fake registers */ \ } @@ -564,6 +566,7 @@ constexpr auto AARCH64_FL_DEFAULT_ISA_MODE ATTRIBUTE_UNUSED "sfp", "ap", "cc", "vg", \ "p0", "p1", "p2", "p3", "p4", "p5", "p6", "p7", \ "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \ + "fpmr", \ "ffr", "ffrt", \ "lowering", "tpidr2_block", "sme_state", "tpidr2_setup", \ "za_free", "za_saved", "za", "zt0" \ @@ -775,6 +778,7 @@ enum reg_class PR_REGS, FFR_REGS, PR_AND_FFR_REGS, + MOVEABLE_SYSREGS, FAKE_REGS, ALL_REGS, LIM_REG_CLASSES /* Last */ @@ -801,6 +805,7 @@ enum reg_class "PR_REGS", \ "FFR_REGS", \ "PR_AND_FFR_REGS", \ + "MOVEABLE_SYSREGS", \ "FAKE_REGS", \ "ALL_REGS" \ } @@ -822,10 +827,11 @@ enum reg_class { 0x00000000, 0x00000000, 0x00000ff0 }, /* PR_LO_REGS */ \ { 0x00000000, 0x00000000, 0x000ff000 }, /* PR_HI_REGS */ \ { 0x00000000, 0x00000000, 0x000ffff0 }, /* PR_REGS */ \ - { 0x00000000, 0x00000000, 0x00300000 }, /* FFR_REGS */ \ - { 0x00000000, 0x00000000, 0x003ffff0 }, /* PR_AND_FFR_REGS */ \ - { 0x00000000, 0x00000000, 0x3fc00000 }, /* FAKE_REGS */ \ - { 0xffffffff, 0xffffffff, 0x000fffff } /* ALL_REGS */ \ + { 0x00000000, 0x00000000, 0x00600000 }, /* FFR_REGS */ \ + { 0x00000000, 0x00000000, 0x006ffff0 }, /* PR_AND_FFR_REGS */ \ + { 0x00000000, 0x00000000, 0x00100000 }, /* MOVEABLE_SYSREGS */ \ + { 0x00000000, 0x00000000, 0x7f800000 }, /* FAKE_REGS */ \ + { 0xffffffff, 0xffffffff, 0x001fffff } /* ALL_REGS */ \ } #define REGNO_REG_CLASS(REGNO) aarch64_regno_regclass (REGNO) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 94ff0eefa77..22e57ee7ccf 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -107,10 +107,14 @@ (define_constants (P14_REGNUM 82) (P15_REGNUM 83) (LAST_SAVED_REGNUM 83) - (FFR_REGNUM 84) + + ;; Floating Point Mode Register, used in FP8 insns. + (FPM_REGNUM 84) + + (FFR_REGNUM 85) ;; "FFR token": a fake register used for representing the scheduling ;; restrictions on FFR-related operations. - (FFRT_REGNUM 85) + (FFRT_REGNUM 86) ;; ---------------------------------------------------------------- ;; Fake registers @@ -122,17 +126,17 @@ (define_constants ;; ABI-related lowering is needed. These placeholders read and ;; write this register. Instructions that depend on the lowering ;; read the register. - (LOWERING_REGNUM 86) + (LOWERING_REGNUM 87) ;; Represents the contents of the current function's TPIDR2 block, ;; in abstract form. - (TPIDR2_BLOCK_REGNUM 87) + (TPIDR2_BLOCK_REGNUM 88) ;; Holds the value that the current function wants PSTATE.ZA to be. ;; The actual value can sometimes vary, because it does not track ;; changes to PSTATE.ZA that happen during a lazy save and restore. ;; Those effects are instead tracked by ZA_SAVED_REGNUM. - (SME_STATE_REGNUM 88) + (SME_STATE_REGNUM 89) ;; Instructions write to this register if they set TPIDR2_EL0 to a ;; well-defined value. Instructions read from the register if they @@ -140,14 +144,14 @@ (define_constants ;; ;; The register does not model the architected TPIDR2_ELO, just the ;; current function's management of it. - (TPIDR2_SETUP_REGNUM 89) + (TPIDR2_SETUP_REGNUM 90) ;; Represents the property "has an incoming lazy save been committed?". - (ZA_FREE_REGNUM 90) + (ZA_FREE_REGNUM 91) ;; Represents the property "are the current function's ZA contents ;; stored in the lazy save buffer, rather than in ZA itself?". - (ZA_SAVED_REGNUM 91) + (ZA_SAVED_REGNUM 92) ;; Represents the contents of the current function's ZA state in ;; abstract form. At various times in the function, these contents @@ -155,10 +159,10 @@ (define_constants ;; ;; The contents persist even when the architected ZA is off. Private-ZA ;; functions have no effect on its contents. - (ZA_REGNUM 92) + (ZA_REGNUM 93) ;; Similarly represents the contents of the current function's ZT0 state. - (ZT0_REGNUM 93) + (ZT0_REGNUM 94) (FIRST_FAKE_REGNUM LOWERING_REGNUM) (LAST_FAKE_REGNUM ZT0_REGNUM) @@ -1405,6 +1409,8 @@ (define_insn "*mov_aarch64" [w, r Z ; neon_from_gp, nosimd ] fmov\t%s0, %w1 [w, w ; neon_dup , simd ] dup\t%0, %1.[0] [w, w ; neon_dup , nosimd ] fmov\t%s0, %s1 + [Umv, r ; mrs , * ] msr\t%0, %x1 + [r, Umv ; mrs , * ] mrs\t%x0, %1 } ) @@ -1467,6 +1473,8 @@ (define_insn_and_split "*movsi_aarch64" [r , w ; f_mrc , fp , 4] fmov\t%w0, %s1 [w , w ; fmov , fp , 4] fmov\t%s0, %s1 [w , Ds ; neon_move, simd, 4] << aarch64_output_scalar_simd_mov_immediate (operands[1], SImode); + [Umv, r ; mrs , * , 8] msr\t%0, %x1 + [r, Umv ; mrs , * , 8] mrs\t%x0, %1 } "CONST_INT_P (operands[1]) && !aarch64_move_imm (INTVAL (operands[1]), SImode) && REG_P (operands[0]) && GP_REGNUM_P (REGNO (operands[0]))" @@ -1505,6 +1513,8 @@ (define_insn_and_split "*movdi_aarch64" [w, w ; fmov , fp , 4] fmov\t%d0, %d1 [w, Dd ; neon_move, simd, 4] << aarch64_output_scalar_simd_mov_immediate (operands[1], DImode); [w, Dx ; neon_move, simd, 8] # + [Umv, r; mrs , * , 8] msr\t%0, %1 + [r, Umv; mrs , * , 8] mrs\t%0, %1 } "CONST_INT_P (operands[1]) && REG_P (operands[0]) diff --git a/gcc/config/aarch64/constraints.md b/gcc/config/aarch64/constraints.md index a2569cea510..0c81fb28f7e 100644 --- a/gcc/config/aarch64/constraints.md +++ b/gcc/config/aarch64/constraints.md @@ -77,6 +77,9 @@ (define_register_constraint "Upl" "PR_LO_REGS" (define_register_constraint "Uph" "PR_HI_REGS" "SVE predicate registers p8 - p15.") +(define_register_constraint "Umv" "MOVEABLE_SYSREGS" + "@internal System Registers suitable for moving rather than requiring an unspec msr") + (define_constraint "c" "@internal The condition code register." (match_operand 0 "cc_register")) diff --git a/gcc/testsuite/gcc.target/aarch64/acle/fp8.c b/gcc/testsuite/gcc.target/aarch64/acle/fp8.c index 4113758aa25..1a5c3d7e8fd 100644 --- a/gcc/testsuite/gcc.target/aarch64/acle/fp8.c +++ b/gcc/testsuite/gcc.target/aarch64/acle/fp8.c @@ -18,4 +18,107 @@ #error "__ARM_FEATURE_FP8 feature macro defined." #endif +/* +**test_write_fpmr_sysreg_asm_64: +** msr fpmr, x0 +** ret +*/ +void +test_write_fpmr_sysreg_asm_64 (uint64_t val) +{ + register uint64_t fpmr asm ("fpmr") = val; + asm volatile ("" ::"Umv"(fpmr)); +} + +/* +**test_write_fpmr_sysreg_asm_32: +** uxtw x0, w0 +** msr fpmr, x0 +** ret +*/ +void +test_write_fpmr_sysreg_asm_32 (uint32_t val) +{ + register uint64_t fpmr asm ("fpmr") = val; + asm volatile ("" ::"Umv"(fpmr)); +} + +/* +**test_write_fpmr_sysreg_asm_16: +** and x0, x0, 65535 +** msr fpmr, x0 +** ret +*/ +void +test_write_fpmr_sysreg_asm_16 (uint16_t val) +{ + register uint64_t fpmr asm ("fpmr") = val; + asm volatile ("" ::"Umv"(fpmr)); +} + +/* +**test_write_fpmr_sysreg_asm_8: +** and x0, x0, 255 +** msr fpmr, x0 +** ret +*/ +void +test_write_fpmr_sysreg_asm_8 (uint8_t val) +{ + register uint64_t fpmr asm ("fpmr") = val; + asm volatile ("" ::"Umv"(fpmr)); +} + +/* +**test_read_fpmr_sysreg_asm_64: +** mrs x0, fpmr +** ret +*/ +uint64_t +test_read_fpmr_sysreg_asm_64 () +{ + register uint64_t fpmr asm ("fpmr"); + asm volatile ("" : "=Umv"(fpmr) :); + return fpmr; +} + +/* +**test_read_fpmr_sysreg_asm_32: +** mrs x0, fpmr +** ret +*/ +uint32_t +test_read_fpmr_sysreg_asm_32 () +{ + register uint32_t fpmr asm ("fpmr"); + asm volatile ("" : "=Umv"(fpmr) :); + return fpmr; +} + +/* +**test_read_fpmr_sysreg_asm_16: +** mrs x0, fpmr +** ret +*/ +uint16_t +test_read_fpmr_sysreg_asm_16 () +{ + register uint16_t fpmr asm ("fpmr"); + asm volatile ("" : "=Umv"(fpmr) :); + return fpmr; +} + +/* +**test_read_fpmr_sysreg_asm_8: +** mrs x0, fpmr +** ret +*/ +uint8_t +test_read_fpmr_sysreg_asm_8 () +{ + register uint8_t fpmr asm ("fpmr"); + asm volatile ("" : "=Umv"(fpmr) :); + return fpmr; +} + #pragma GCC pop_options From patchwork Thu Jul 25 14:25:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudio Bantaloukas X-Patchwork-Id: 1964790 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=rG17JmtZ; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=rG17JmtZ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WVCr305Hcz1ydm for ; Fri, 26 Jul 2024 00:26:41 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 04848385DDC1 for ; Thu, 25 Jul 2024 14:26:40 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on20609.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::609]) by sourceware.org (Postfix) with ESMTPS id 04FC93858C31 for ; Thu, 25 Jul 2024 14:26:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 04FC93858C31 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 04FC93858C31 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::609 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917569; cv=pass; b=h8T0sqWO/RdIr84MPZ0WWVPRzNzuLFKTaAa9YzVYcQ1LirJWj2aEDt6cdfi0+z69Maa/MfAtidHxMBRnuqGsd9U3OhdzagyTK6rJlJl5N72Tp92XNgPSLqKwHv9JPVdOcX0gqe7lM8Prw7dMMsHdWuIGw0qQlmlaIkQYAEIrlLI= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1721917569; c=relaxed/simple; bh=MTo+iLXaxDx9s6BT527fwIfw6LsQElwSbDqa5BcC26k=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Upz1gdt5lQVHFNHg+wYanUN2j2cEBluMVZnyMlyyIitYEK0tqxwK3uIy1fsXQCXXtE3eml8PctD31bsuWisws7qCWK165XWqx4crgzGVCfvVN6hv326rP5TGoTOQ6M0yXtR+BLFCzkM7QYjfDprnFKuBZFSPGjmDUqGq2S2JYT4= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=MhY1nVG+w9kXpfbzR8kx77iKo6Grk7QDnA7F0jXUUfHKWNSgwVQbaQszMWE2SyjuwoppIZcEJd57CD++0s8Mt3+HhnO99a1S5+ZMrSAL5EcxvnHzuZKvmON4dC8DYhxFrHsa6Afk+ej4G2q+uvgBkscYfY6I8ysb8V5NWvzWNHgXI9L1SUJQq+hqqIk7NV4vpvLX+MJ2WFIgOutNolGTX1r3uZP8yJmLReeEJAf8zdQCYXPb3YuJCkbcvwaKHjrR9WlrrPTFzmSzxwSwrPLqh+Dx1O5U1IRgBnDoCDQK9qUpbw1QUVAlzBS/AnYPPD0CPaZwYBpSMd1VrZ7bELlJdg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=+6GPxSey4aCW4o5SHEKOne1AqNq7rw/HWF8XmaM75NM=; b=xOdzJXh9SeSUSR1UHxuVP0SEoYf340Vq/PE8PyTXCYUVlliAF0+vaKC8zMn789+pEu8pN6Bh/+IQBsRVoRjWOJMdV5mWyVurSqaByCYTat0nv75XQsjZvozWmKvP0sOObzLlhGci2yAVgc2JPBYLhq6UQi6BxdXV+35UczUBrpSXl1iZWfYiDq4DltxEs2VLkiKPXkPq4hg20wJ+m5HyRj/XVfFtGXwTrS/U1DKLnvPwxi6M+P8FeBMYWozUdeoouJZ2W1ZBlXwOTZLH42bpC5kb2xcsRhn6pQDB7zjdYDgncQetcmcetcuXENKoHqreRan9dCR9/t745ie0SlYfBw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+6GPxSey4aCW4o5SHEKOne1AqNq7rw/HWF8XmaM75NM=; b=rG17JmtZ8elr2TDqMmGs03JS0FxvsBIOES5j2GLtk12Fe2nr1oAsDdmT6aNH3ww17Ja6ZQsgQuEtQyCO+lxkOgDhI5aTUKZuPzNFrWGMPFERpZaeuEmtVi0Ey93VUfDlm4S7fsLLnoNNE7Nh6jAKHfNSgFtAmqQ6r/BSoBiaLA4= Received: from DB8PR03CA0008.eurprd03.prod.outlook.com (2603:10a6:10:be::21) by VI0PR08MB10487.eurprd08.prod.outlook.com (2603:10a6:800:202::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.28; Thu, 25 Jul 2024 14:26:02 +0000 Received: from DU2PEPF00028D0E.eurprd03.prod.outlook.com (2603:10a6:10:be:cafe::26) by DB8PR03CA0008.outlook.office365.com (2603:10a6:10:be::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.20 via Frontend Transport; Thu, 25 Jul 2024 14:26:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DU2PEPF00028D0E.mail.protection.outlook.com (10.167.242.22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:26:00 +0000 Received: ("Tessian outbound 5cfbd73e165d:v365"); Thu, 25 Jul 2024 14:26:00 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1dd62bedb05a47e5 X-CR-MTA-TID: 64aa7808 Received: from L6810a6da0602.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B3CFFAE1-F995-4B30-AA43-B962C3A99043.1; Thu, 25 Jul 2024 14:25:54 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L6810a6da0602.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 25 Jul 2024 14:25:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kqguG+OZn7H+EifHqKQQJ6MpGou7MW3F60A3ZIuZlxK6+YT3b/97PIbfkDe69kSuUmKwgv/+xD/v12kodQ8JtjPWWpABHvfQkXLyuygtU/B5xbHwcCVCBaxHeFo52HVdCbRMCwL2jY9jzFUgerX159LgxalxOYmt5Nz6I5+rPQxZJj9MQ192PUPnjSLVqSDGf9DOwZuNqmACRdYYZqhmJMIt4SftTNg3N1OAomPQ196wPTeG3NBNQF8mt7Y9/k7+KoXHfqRfdaLffvEElA4mSPWhiBRLBmoqn0bYPMsvhk801Ox8+B4IZ9qtUmdaZzc1xIne2o7dtM+ovQT8SdNxXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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; bh=+6GPxSey4aCW4o5SHEKOne1AqNq7rw/HWF8XmaM75NM=; b=xzdbqemE8hw2NlUlXZna4//d4S6SUBTzNv7Z7GTFaVTr0kvCY2qXK9u6tN9yq52IDFqBDGILosJO3Kmd03ltdEzSKBDkQflDLKM7kaxJH8iYlLFYtS5MyuN1t2laxPeJFxeSvx4HSWq6yusXLWm4w8Vl7+fnQdg8waaWg3woDy8DXnMe00l96rEap3dKsqQwn+MuOOqBICZLgNaMdOdRCwYRgqcCNhcdqi50R3M5xc/zUl3k0Z/rh11pzjGv2Qi1iDTGd393WlJ8zOD9k3PCmmc4xkVX6wfx7vXNnDuMps8Qib1u5ghJuCm/Y205BtNRQreOJRXe+lWmhechN6MuIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+6GPxSey4aCW4o5SHEKOne1AqNq7rw/HWF8XmaM75NM=; b=rG17JmtZ8elr2TDqMmGs03JS0FxvsBIOES5j2GLtk12Fe2nr1oAsDdmT6aNH3ww17Ja6ZQsgQuEtQyCO+lxkOgDhI5aTUKZuPzNFrWGMPFERpZaeuEmtVi0Ey93VUfDlm4S7fsLLnoNNE7Nh6jAKHfNSgFtAmqQ6r/BSoBiaLA4= Received: from AS9PR06CA0420.eurprd06.prod.outlook.com (2603:10a6:20b:461::7) by DBBPR08MB10603.eurprd08.prod.outlook.com (2603:10a6:10:52b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.16; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AM1PEPF000252E1.eurprd07.prod.outlook.com (2603:10a6:20b:461:cafe::b9) by AS9PR06CA0420.outlook.office365.com (2603:10a6:20b:461::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7784.18 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by AM1PEPF000252E1.mail.protection.outlook.com (10.167.16.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7784.11 via Frontend Transport; Thu, 25 Jul 2024 14:25:52 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Thu, 25 Jul 2024 14:25:51 +0000 Received: from 221664dbf3aa.euhpc2.arm.com (10.58.86.32) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Thu, 25 Jul 2024 14:25:51 +0000 From: Claudio Bantaloukas To: CC: Claudio Bantaloukas Subject: [PATCH v2 3/3] aarch64: Add fpm register helper functions. Date: Thu, 25 Jul 2024 14:25:48 +0000 Message-ID: <20240725142548.699792-4-claudio.bantaloukas@arm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240725142548.699792-1-claudio.bantaloukas@arm.com> References: <20240725142548.699792-1-claudio.bantaloukas@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM1PEPF000252E1:EE_|DBBPR08MB10603:EE_|DU2PEPF00028D0E:EE_|VI0PR08MB10487:EE_ X-MS-Office365-Filtering-Correlation-Id: f5369830-b2f9-4feb-3887-08dcacb5b53c x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info-Original: ybK/6IVJcFLBciA16W4Qv603YieprAcDV8Wny/jGdURVzIRBNCLipb0h1FmWHgzsjvOkf2vl381ydnGUmr6uX25FbjE/QdTgcF59O/5ZFW7petPwSTW1vgPKoBzbP/Cb6jtj/U82+3gvvrsglTVdNHQ9RibefVbHEQzuFgkFf9IRCYWkvM8cK1F68WHgIVKT8GAmpQ6ypazAAzpKB1kwEwg683e2Bk2PrV2rR/U1ZsSyHbIAunQwLXVyx2OlFS7WYa8v/NQL7UcGoAGT+Gdc1IQ1OccEfPZBH6/mPoZKTjFlzv1nmMAAqazgvPqgW2XUtAh1oWn8X1zXcOcHm3pjlD/dnzAZSHHP/X51l9dk0Bp3/TtXJrBEgmzRO68DdK/7PeitDOhbW/HrSSPDe2/5JZuxPtoeaAkt3FvpS8xg6bz2bEmfDGjbzziZw7XMiAAU+/YV9oeVwGJNinezzxxNKXwh7vLbSLfDw6D9IpU7eDeylpx2GJ6lHlRAXGj+OfZyoc8jAehyqjN3+THCJFa9PZY2dTb/nsPdfsEO3iS3WcRghO7Gu+EK0gpI+9AxrxEhiGYph6Rl1Mw13qyKKtJkV/DypNcLElWoC5E06Yazhd7E7mZh2As3TRKNOBGHpaJG94l5hVfe5+cx1PUhueyAcWRmOjP5n7XgaZWHAbXSY3o00y1J/n5+kPdfvXfbXHLkIDpE/BC3wtWaYVlKAVuLOpD4HzURNExtO/SmLlow41XE1TVD3GdWDxcANEInnKpY2l4GbpAxq+188fybEUz7q3U3BFSLxXZKezTs+NtRMUoabD5Scs3kJTNkEqOb8zIdWu1l4FQDx9xHVXUAxvFgftOMKc7tLOnJ1XlqmpFivA1sYRw+OudNW3lRHHBsUdCWOcZCgOMTogWpC396dN3gyCvBGkp6Gy1AxzMzQP17CVv/r4MVxtMuZkZjIJYLp1csohC28I8+/hQkjB1J+UDMddVjnUXpPyjjjzMZ61QI5CgjW+LGPAjpZIB5wkFeBiqfqOcSscFmDndCQTNk7voM0+MH1QyeQ9Qlk426Sziqt24fEghqrkfgvcX0PZajIuyf9XCqPZzdzzXnP+/untoC7gv6QxnO3Fu9L+TBvXWQ9fKJmIXP1G9C4Fb2qvtNiXEdFHcaP9qvodyGtQc2eHwUJGnbCM7s3J1bP3V/MAuR0cWyGkarpZz/3JoCmV+IIBwP25lOf5JYwETmxa52K7ZJMTw2COeFt/Z1vKWkXw2xH1dpwDuYvg+cjPhpUeoiIRy3yIWtorvMj5xZ/VSQ3QF8jEkzNrEip56dVL5iCAdTNCThXmfrP33/BS+A9sVcN+I4yOOjrDPbJi1EffKWs6Ny8mlmWNl+/8mH4NUwGKauGd/nBy9PCL4gKQqd023RYcCI X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB10603 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:461::7]; domain=AS9PR06CA0420.eurprd06.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028D0E.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e82df180-7ed8-4225-815a-08dcacb5b04c X-Microsoft-Antispam: BCL:0; ARA:13230040|34020700016|36860700013|35042699022|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ur5p23zqMtIWjOxvr5TOsmODB1sTkEP?= =?utf-8?q?Jw6y9NLORWK8O+PRcyhK3QDM8//axehn5HepFILDiVaCC4ALh3n4KSyKA9pYGQuux?= =?utf-8?q?KpDKjZMrVZlwlUBxLC6h9EpWuyWG+HuNM2ubw+NNos2p8seqv+KhlFmHbVUg1ln1N?= =?utf-8?q?9RQudIgyk6tgdNuk0fqP1oBpVj8pb29wiyaOlK8rm4w5OVtKQHiufedCiy9uvxDTi?= =?utf-8?q?Q9m4mJGCpV5uM5uVxWhrYixaSNmggAJbKUEKZKU4lJPor+jDEO3SeBsFto9BP/aAJ?= =?utf-8?q?VwNwbyZW+37zM9NBzYrWZNuFuEWnKr4IfSaXvO9yT7QT2r0syqptujMmLoB2vSTK/?= =?utf-8?q?ZBVarRk9mOOBv28iHAsGMB2XVunuw+FbV+HwI4wjYAfdsj1TC5mW9FngNi/gRTjH7?= =?utf-8?q?3+UEhn2Pa/+LKh8rGnnWzBvEhc62l/o5kDIXdPkFiP4ErFFkc+IpGKxufZm8xGJEd?= =?utf-8?q?I3kKG/96iGMPkH8sGgY/n96AMmJ1N258/9Xxr7ohxrOBVEiqMCqQ/m2TkACHxH2wy?= =?utf-8?q?IRALc8WxqCcnaAMdDUGhyWS/HcL7U11ql7+zmylGIwlz3EB5eoqm4+NKBTbQm3yoJ?= =?utf-8?q?YvDsn1Ag8PGeIBj7+fNjsAuQKbouXGpusddMHGOi+HH0Pf26B0CbhXrKS1c3Jmvo4?= =?utf-8?q?RxDxNQGr8URPDnT6uh0VuCK3M9pUu4nvYQqhTk64LsSWB0G5ifvKFgZAN835byJ1v?= =?utf-8?q?Vd/JsKeTAIm/5q9Ku6MhLg8njQIXdsDu9sccFXLRDGgxNg4L8n6P4jKRNPG+aowuM?= =?utf-8?q?cJJ7URmDtJTX+AOo/jZhFGXNAAug8YvigxLoWovoNeSYc9L9sBhVjVJHn+P7MMT+w?= =?utf-8?q?v3VrTF51uf0V5DbfVmGC7E7CvSZ7D79O6FjNVjOcEZv92VijpW40UAayb3k3zng/h?= =?utf-8?q?Jp7iF/UM0gNwqSDEs2fKf1JhHiXLuTPaE5fXImfoF+6qOjq78PBvd5xlcg00a6Uql?= =?utf-8?q?+rq7S8dtfWwkCkv+MwKDg36QaentS5vUcreagI8rHM6kwJHC+vAM5SYiDXjh8X6dH?= =?utf-8?q?blHVSpdcTfaTqswJstkkTnYLgrmqpP8GVBmITIlkx1MC3aSmvQy04aiyXHitZZU7o?= =?utf-8?q?CJCKM8EG7ZwGdI5Np4OS4Cy3/+BiMYKmtU08zY1SKh9QXWGRyBngqwwN7PRXHtBhe?= =?utf-8?q?WhK7bQFv9RCtcrOizUXTB08Mr6Ik7i5m/wHTDdSrJc4K1yVdyLJx86v6YvUqoPQJN?= =?utf-8?q?eWWggqOSQTYdp4OO1b2hlJ62gf7cmy9tT9/Oib5WuxgbZgmteIcuhdHi1IFBv956N?= =?utf-8?q?t9mN97xdhiIVDC0cZbojmSSVfWULhLeaoMEwRaIA2NUnQNH40UMk20O3m9r75FGhG?= =?utf-8?q?mRLRVnYNa+A9?= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(13230040)(34020700016)(36860700013)(35042699022)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jul 2024 14:26:00.9448 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f5369830-b2f9-4feb-3887-08dcacb5b53c X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D0E.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB10487 X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org The ACLE declares several helper types and functions to facilitate construction of `fpm` arguments. gcc/ChangeLog: * config/aarch64/arm_acle.h (fpm_t): New type representing fpmr values. (enum __ARM_FPM_FORMAT): New enum representing valid fp8 formats. (enum __ARM_FPM_OVERFLOW): New enum representing how some fp8 calculations work. (arm_fpm_init): New. (arm_set_fpm_src1_format): Likewise. (arm_set_fpm_src2_format): Likewise. (arm_set_fpm_dst_format): Likewise. (arm_set_fpm_overflow_cvt): Likewise. (arm_set_fpm_overflow_mul): Likewise. (arm_set_fpm_lscale): Likewise. (arm_set_fpm_lscale2): Likewise. (arm_set_fpm_nscale): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/acle/fp8-helpers.c: New test of fpmr helper functions. --- gcc/config/aarch64/arm_acle.h | 33 ++++++++++++ .../gcc.target/aarch64/acle/fp8-helpers.c | 52 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers.c diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 2aa681090fa..fd4fa855b90 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -385,6 +385,39 @@ __rndrrs (uint64_t *__res) #pragma GCC pop_options +typedef uint64_t fpm_t; + +enum __ARM_FPM_FORMAT +{ + __ARM_FPM_E5M2, + __ARM_FPM_E4M3, +}; + +enum __ARM_FPM_OVERFLOW +{ + __ARM_FPM_INFNAN, + __ARM_FPM_SATURATE, +}; + +#define __arm_fpm_init() (0) + +#define __arm_set_fpm_src1_format(__fpm, __format) \ + ((__fpm & ~(uint64_t)0x7) | (__format & (uint64_t)0x7)) +#define __arm_set_fpm_src2_format(__fpm, __format) \ + ((__fpm & ~((uint64_t)0x7 << 3)) | ((__format & (uint64_t)0x7) << 3)) +#define __arm_set_fpm_dst_format(__fpm, __format) \ + ((__fpm & ~((uint64_t)0x7 << 6)) | ((__format & (uint64_t)0x7) << 6)) +#define __arm_set_fpm_overflow_cvt(__fpm, __behaviour) \ + ((__fpm & ~((uint64_t)0x1 << 15)) | ((__behaviour & (uint64_t)0x1) << 15)) +#define __arm_set_fpm_overflow_mul(__fpm, __behaviour) \ + ((__fpm & ~((uint64_t)0x1 << 14)) | ((__behaviour & (uint64_t)0x1) << 14)) +#define __arm_set_fpm_lscale(__fpm, __scale) \ + ((__fpm & ~((uint64_t)0x7f << 16)) | ((__scale & (uint64_t)0x7f) << 16)) +#define __arm_set_fpm_lscale2(__fpm, __scale) \ + ((__fpm & ~((uint64_t)0x3f << 32)) | ((__scale & (uint64_t)0x3f) << 32)) +#define __arm_set_fpm_nscale(__fpm, __scale) \ + ((__fpm & ~((uint64_t)0xff << 24)) | ((__scale & (uint64_t)0xff) << 24)) + #ifdef __cplusplus } #endif diff --git a/gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers.c b/gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers.c new file mode 100644 index 00000000000..e235c3621d1 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/fp8-helpers.c @@ -0,0 +1,52 @@ +/* Test the fp8 ACLE helper functions. */ +/* { dg-do compile } */ +/* { dg-options "-std=c90 -pedantic-errors -O1 -march=armv9.4-a+fp8" } */ + +#include + +void +test_prepare_fpmr_sysreg () +{ + +#define _S_EQ(expr, expected) \ + _Static_assert (expr == expected, #expr " == " #expected) + + _S_EQ (__arm_fpm_init (), 0); + + /* Bits [2:0] */ + _S_EQ (__arm_set_fpm_src1_format (__arm_fpm_init (), __ARM_FPM_E5M2), 0); + _S_EQ (__arm_set_fpm_src1_format (__arm_fpm_init (), __ARM_FPM_E4M3), 0x1); + + /* Bits [5:3] */ + _S_EQ (__arm_set_fpm_src2_format (__arm_fpm_init (), __ARM_FPM_E5M2), 0); + _S_EQ (__arm_set_fpm_src2_format (__arm_fpm_init (), __ARM_FPM_E4M3), 0x8); + + /* Bits [8:6] */ + _S_EQ (__arm_set_fpm_dst_format (__arm_fpm_init (), __ARM_FPM_E5M2), 0); + _S_EQ (__arm_set_fpm_dst_format (__arm_fpm_init (), __ARM_FPM_E4M3), 0x40); + + /* Bit 14 */ + _S_EQ (__arm_set_fpm_overflow_mul (__arm_fpm_init (), __ARM_FPM_INFNAN), 0); + _S_EQ (__arm_set_fpm_overflow_mul (__arm_fpm_init (), __ARM_FPM_SATURATE), + 0x4000); + + /* Bit 15 */ + _S_EQ (__arm_set_fpm_overflow_cvt (__arm_fpm_init (), __ARM_FPM_INFNAN), 0); + _S_EQ (__arm_set_fpm_overflow_cvt (__arm_fpm_init (), __ARM_FPM_SATURATE), + 0x8000); + + /* Bits [22:16] */ + _S_EQ (__arm_set_fpm_lscale (__arm_fpm_init (), 0), 0); + _S_EQ (__arm_set_fpm_lscale (__arm_fpm_init (), 127), 0x7F0000); + + /* Bits [37:32] */ + _S_EQ (__arm_set_fpm_lscale2 (__arm_fpm_init (), 0), 0); + _S_EQ (__arm_set_fpm_lscale2 (__arm_fpm_init (), 63), 0x3F00000000); + + /* Bits [31:24] */ + _S_EQ (__arm_set_fpm_nscale (__arm_fpm_init (), 0), 0); + _S_EQ (__arm_set_fpm_nscale (__arm_fpm_init (), 127), 0x7F000000); + _S_EQ (__arm_set_fpm_nscale (__arm_fpm_init (), -128), 0x80000000); + +#undef _S_EQ +}