From patchwork Wed Sep 17 12:44:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alfie Richards X-Patchwork-Id: 120425 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AB7293858429 for ; Wed, 17 Sep 2025 12:51:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org AB7293858429 Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GJdFIKHu; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=GJdFIKHu X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazon11011001.outbound.protection.outlook.com [52.101.70.1]) by sourceware.org (Postfix) with ESMTPS id 03F433858429 for ; Wed, 17 Sep 2025 12:46:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 03F433858429 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 03F433858429 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=52.101.70.1 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758113189; cv=pass; b=cstYIyY7uxb9jMSY8iuT9o7zsLoB5/B97n+zP0sHhlHLSroY52JCAynDxazZoEFARragkii3wEJMH6sY2C9oce1Nr0fYf7+sjwylA2By0nGwUYEFJBI7N3m6vOhdl/VVciJlolJOsBQiNOD/BuEGMNNKrM8qx3QpAlcGih1dZ0U= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758113189; c=relaxed/simple; bh=ZtcxjBdTJ1aktzt/T5qvCt/FFjXxWs9XZ3rCWjWuLrg=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=LT2b9t8zevshJVg5hy66wy5DCcnzSvM99/JyCuiBC24xOZ0rSK18pOLCPvegWL7S+bJ+l8AtLR72wVqpXZuizo5sQazcDeF/sE5uOSxznzkvUmuli7opZC5APJ0W4ZPeZWuBiuP8xrSALy7A/TVwCG4Uqqgj83wOqGuPxz1EtH4= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 03F433858429 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=eBUOTv8+9UJ/X09YWlzUkYs9s9gmxRUkeS1fYVP6HyLt91j+4lrpw/kADzT5n1DJJ607GNomVysauWhD1FwRNNrDRvqih/0iEEQWehMcSgJ5hMhAKQPnGouiVYbhH/WgeVSa0lpuqixm2gbRW91wcwtoKB1PLXjxpW0zU8xv3eppr5QsqFe4mYAbkcitKamb6Uz3FrY7oBoNqDyep+dD4Xkq7hpflICBd54XdKTwXgzI6mGXMm2E1JX/ehSWtxrEQDvTapeWPO7KaDalAnRWwmtzAKzX5IukeinFTyr3PGBkIaSwD3NvR5J7CvlrcutYJF2u80/B2J1vNWdtp9+FIQ== 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=UHFNEZUKi4oaMlSom4I3OsdCmmlCJM5mngQQNX6uXwA=; b=xv1s67p+1A6uByhA3yfcL7t5C5hQunRKmSH5yvLSBZBH5WwYjpgvlLC55KPJMW/68RFFNRasOLRKNZx6Sw5ulZhgBXafpihlp/7fEMIkUaFlRRbizIlFBJ1DhvvSnJArxxlWXVseAnN7MlLTZjCsZ3laXzG09qAIuk/yF0hbIPm/+ulZsi1cirzVHWr8ffDjW1Q4P+QsZITUzmkXW6mH3ib0SwiMuKor0c6M/usu3v6UwTPaRqZ6Ah+h/zhKLJvdknfaokTSB11eBJKOU88FYK7TYynpiiHkp1R9E2MQztEqL1HwVy0mhKx/RLSO+afFJn0AQuT9VRr2pBWVRRUGxg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) 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=UHFNEZUKi4oaMlSom4I3OsdCmmlCJM5mngQQNX6uXwA=; b=GJdFIKHuUC9DqpUW1lb6sRx+OsIizHEABEWoUGKxJJLzVt7NrVIQAeqmynlWn+4EkQyzuWnM9e8KFlDkzHM3H+uOrw2cPu9QTHQyoaeVeSsxbzCjkRDRdI0OeNFx7hzqBNN8AVErD15Wtg5eoRpudiNB7Hj7Oae4z1G1C8/5wwc= Received: from AS4P192CA0017.EURP192.PROD.OUTLOOK.COM (2603:10a6:20b:5e1::12) by AS4PR08MB7479.eurprd08.prod.outlook.com (2603:10a6:20b:4e6::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.22; Wed, 17 Sep 2025 12:46:19 +0000 Received: from AMS1EPF00000044.eurprd04.prod.outlook.com (2603:10a6:20b:5e1:cafe::30) by AS4P192CA0017.outlook.office365.com (2603:10a6:20b:5e1::12) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.13 via Frontend Transport; Wed, 17 Sep 2025 12:46:18 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) 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 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by AMS1EPF00000044.mail.protection.outlook.com (10.167.16.41) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Wed, 17 Sep 2025 12:46:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lH5RQmTaJe53BYBXuIYQhkM6qiPGZ+YMsEXCH4ZkchZybZciivHRFFAu6zQrTWqSHoGLCytFGAttemSpWwroC/p+DuK69z0q+jc4bwEEtzUYTO4BDGnzrZm56cfuTJW3EvzZQMF/WCNq+GC6F33QOZxQQPQQumbmfLNh78uP2eiCPfXtJ2L7VpUPQKl4egweLpcdD7lqIgektuODb3+WCoE7qMmHt56PdNi8mt3JvM2ZlvF6Ti0bNin/1XcWKhEIfv5WA/M455hUBh3Ns9UeUvveUPhAxwZNDRr5u5sib8Zhg+ep1HLgwJbGNYZ+EE/wHJUMLFoHFLelI5Uizti6Mg== 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=UHFNEZUKi4oaMlSom4I3OsdCmmlCJM5mngQQNX6uXwA=; b=DRWeIeRG0U9XD+l9YDXtRJ4VctHwu4yaUFGIJT8v+OIlRtNmscBzDwd4K6v00fa23DqgCqjxrcgUybAKJltruET+w7JJkIdlFMm3w8oWmiG33++JhtHY4JhOpQ1NinysJ4PvdzLPJxTmlPC2u1HiS2hABQ0YrhfjDj97K+Qkass0DWPpIx6eS8IBHC0QoUV4AzbcFO3O9+KBHaceL8S96VDbedi3HMNgc8r3B2GAXYGLOf16aRRY/vBeMBYR3MOBoPfmlgYcCamh7pymPh1Do0MCwlCHZeQI7bPUFUtGJEOT9VptM0ll6ZFrHrGDqkmg17Entwa3arLkjFv4CbBOog== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) 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=UHFNEZUKi4oaMlSom4I3OsdCmmlCJM5mngQQNX6uXwA=; b=GJdFIKHuUC9DqpUW1lb6sRx+OsIizHEABEWoUGKxJJLzVt7NrVIQAeqmynlWn+4EkQyzuWnM9e8KFlDkzHM3H+uOrw2cPu9QTHQyoaeVeSsxbzCjkRDRdI0OeNFx7hzqBNN8AVErD15Wtg5eoRpudiNB7Hj7Oae4z1G1C8/5wwc= Received: from AM4PR07CA0007.eurprd07.prod.outlook.com (2603:10a6:205:1::20) by DU0PR08MB9656.eurprd08.prod.outlook.com (2603:10a6:10:446::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9137.13; Wed, 17 Sep 2025 12:45:45 +0000 Received: from AM3PEPF0000A796.eurprd04.prod.outlook.com (2603:10a6:205:1:cafe::7a) by AM4PR07CA0007.outlook.office365.com (2603:10a6:205:1::20) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.11 via Frontend Transport; Wed, 17 Sep 2025 12:45:48 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) 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 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AM3PEPF0000A796.mail.protection.outlook.com (10.167.16.101) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.9137.12 via Frontend Transport; Wed, 17 Sep 2025 12:45:45 +0000 Received: from AZ-NEU-EXJ01.Arm.com (10.240.25.132) by AZ-NEU-EX06.Arm.com (10.240.25.134) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 17 Sep 2025 12:44:58 +0000 Received: from AZ-NEU-EX05.Arm.com (10.240.25.133) by AZ-NEU-EXJ01.Arm.com (10.240.25.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Wed, 17 Sep 2025 12:44:58 +0000 Received: from ip-10-248-139-135.eu-west-1.compute.internal (10.248.139.135) by mail.arm.com (10.240.25.133) with Microsoft SMTP Server id 15.1.2507.39 via Frontend Transport; Wed, 17 Sep 2025 12:44:58 +0000 From: To: , CC: , , , , , , , , , , , , , Alfie Richards Subject: [PATCH v11 12/13] c: aarch64: Add FMV diagnostic tests. Date: Wed, 17 Sep 2025 12:44:56 +0000 Message-ID: <20250917124456.170437-5-alfie.richards@arm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250917124456.170437-1-alfie.richards@arm.com> References: <20250917124456.170437-1-alfie.richards@arm.com> MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM3PEPF0000A796:EE_|DU0PR08MB9656:EE_|AMS1EPF00000044:EE_|AS4PR08MB7479:EE_ X-MS-Office365-Filtering-Correlation-Id: 79d83198-224f-4709-8f98-08ddf5e83273 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|7416014|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info-Original: zkWvU4DICydLzUQDyx5PIvFnK6gidU+2MlFYUlscHF1iOO/AiuIa9WHOmemHbeZMSa3TXxiMT2F6kd9Ry6WqUZmKUq3X2flPGB0bnWBX/IJYqom/la1cY+oIw0+L/wP0jlnFDedScQ71JRpHg6nJeemOS/DDypbZoSFH6wmBJ/gFMBZmXcRxVaoDafNU8alUSdAF76eGPH52VPZuXB8sqEcNz+4iniOmYMx3Dqr7Wy+nrpNRqDa7c20d2eI4vOIhOofxzF0hdrr6knwezSJk6Q/5b3pktfs3588nJxr980ZnLZbrKv1t9Sv/VLn3VVoXJS2DBnhoQWoZrKD7wC+HwU+ZhjiCjTHtvBINFkL1mLZOQsqotRJgY/PhYeS9q165IycfjHSUSwTRCKAjqDfVvZk1t1X6iGHl8NG3QXCeiZQ46ZC7bnuCFpsybGg4zdBWQv51ifMjc4b/Lt7i6xZ2MoNVhGXVv6zZs58i2Qz8e/x5GSVlIJFYhO68npNzUB6KpKY2i2lq27/qBsp6xHo7ekB1CAZ2DUdkuS0Yft1VVqUVwm/4TvOQ1LmuAW4TxSt9VG0HfMFC65DZcQjA+rVGojdgJlPTNebMogNQ7m6M5hjaI9xkvWUD5UTaGY+3IdgI5vwzNcFXA+LSs6lvdhKT0UgdGoVWpR3YO4XzGm1aeaDCOTYBopwVRTl8D/ANq2WivfL739cIQVzwzH1sYqH+sSxqqiRI+k7s1Laa9V4ObHkQa0oWkwoS41Rmg03PWYd2baSVdJNBBqgT3ntaUmvg9Wa5AZY6iqCHuVBGUuTL3lNIhXPuzoK6qf4v8nUthW1rEgp3l9SSkkd0x2P7WZdfrnltHQ1pdoNXU6pjW4VAmudgysVBk0KcPHbphcSQZ8PGyn7uINylY/sAygnYjt1/KuN12uPHAPJVCh6OdUbMV8IygvPTnHPQMQPjP+U8fBla6ZjcvR4P/QNfjhs1Uah5IXR5d72XnsM/mHK9fnPDqrydGCmSk1i6EvP4P9j8woNREc8IFIDpv0v9PQQ36Q6bu4zF8qX3pRMKIvMhg/cE2zhPUE+b3zYWOyjuieyYzIORWJ7O2IhpdQIGXFmQYhyu+XihZwTQN3MAFvES0Jx9TcU/8sLKusvmRd+eMAuG8oWcH6Of/420xG0Kui3WnsInRhCzlaOb2ocTOf2OLp/XatX/ld/7xgSXds6oFqWb03hcQ87tjqtgnUFOLbXVtYgN7EZ+UV3Xf/RfI7SLiZvcWegEdUigel5HzEehpRBit5pPZRtVnRz4iLBhk97BspUTIoZmz+bE3J36ftFz4MgQHyU/kWwNa0SuQXq1Rijfa3gDjG8Dv1J2hSGfV3uKekGsc3ifk/eoYinQDRINGbV3DDi8qnclmaxV2PgZ51QECnH8v1USJs2rQ0vdlMW0z7hCecVnDmZO1rF7CrQ+0WbN3T6+0DTzkFz5tcxN0TGZUXyiwNU5DvZAXNhFiPIvJpQyyg== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(7416014)(376014)(82310400026)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9656 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000044.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 73c590dd-0ee3-4f73-0b39-08ddf5e81ea7 X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|7416014|376014|82310400026|35042699022|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: euZvDqD4hhPfY560y6usIKjyKb6n7SnadNKKRdDqficHdYnLxFMMqt9cTa04o2Zn9WIcjXiDhqVS4n0dEhdaMnz4DL8FEEga4yQfduwekit5VFCcIXKbRKA/xvlBC2GDzrqfKLxa/yg0WKTEkRKemBufswDp+1gSd4PJjvr7fJqQ/4v5akXUkk5P35rwos8PbHTNaU1IYBXTz/TVGzp18cFTLvOSlet9tOgKAezlEiymhLnkugHVlNaoMzyfd90WnD9PW0vzeE735iF8IbRbXr9BPs5OLYEGBt3AkMEhSHCkzqXlbjQGB+jF2qcaqE0Hmc4THNMi2Rc2sK+OxW17IPiE8YltyovTFLCY06i2LbAKKL86GC6i3g3a+XEuK1r0MCFrKh316v42wroVfgINwoddkPkrMd3eBgQfcFvigNhPLxmSUSH2c1XzI3CCX0XKMNCi1lYHbHvezl42y745Ylg3IXFni2muVTqJ3graWZ6pOepQCts0qLg7uSQU3Q3MJDmG+MGjKFKImRPqzG8ffRAy9JadRtj7mUDcUWSp2L6yRPliCkE4iYwvbOGcEkvcySoEStr4r75IvdiJYlcP+62B7biuVldh1RAWarVliifrGKFzBts4awJqSv/aTBAjyZHElGukZuHNQCBmi/14eMi7TuAak5AkDVNgWsDIwYOS1Fo2ZAjCv7jDZXzonGoRW6Hm1YpvlzfnCguxuCCir188/nSC/8DsH88gWkoF9HjJPxdiDoD6qXL2Uw3UTjz4I7VkGpQQJu0HxLkOdtAQkaUWMJm2VysYZPfPa3BNsRY0YmXRGRNG6gFb6CCCgs98kl6b6k2mPz01Egphih9RTpkiZyVwMifglaL2lg+trQw930pfQrUtmwi7cyclLKD6U+iF4fLRkHZJUcI1v4d7FAk4rnUl+vkWGldhQsD2zQ5YqGzca5HxgN3aSFXebOQITyEYHkilf8ju1EJV1AfVSs2esHL5Uy7wO2MWilnGbaf9BO1DIdivaK8fQTu650BXoHXrjjJRZ/sAFTEKxL/ha4f10yOlxz+MYanvp5MyJgzTH5DQlWrLU+DvwFrSNiPM5vVF3rLUBUJGePhBU4dxmn+zeh3GfSfgC3k1JwmjRmsYi+Uo+fU+dqm8wx34EjxMTmo46qsYDEX86VuDrmOCdJVcikS2aRp692FJCz8rQewWkETs9PQK/99hMYPvXrtsV2UBQ+hWz+wwSE9j4KHdQsi3IkuaswsaWX+6TGiQ+Lz4L2WQpJ23OERDkzkYngjXj2bpKXb7RPyRSa6oiDGgktrzFLBy4zXpF6dRwVD33yzC7YxUuRjS2huOnRJEgnqi4EHSZCA56iSBHbDaPZuAaIxCiC8BTNX+dfeHWm0E390kSdB2trhlVwz3UDTWOPYWqLRwylInEHjd/porkDR1YIvuVKfHZ3V+vgbbcoxx++ApcaPq5JaQion4Wqz++V1qF5uvg4Buh0LgR3KazBVS5g== X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(14060799003)(7416014)(376014)(82310400026)(35042699022)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 12:46:18.3078 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79d83198-224f-4709-8f98-08ddf5e83273 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: AMS1EPF00000044.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7479 X-Spam-Status: No, score=-11.5 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, RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_PASS, SPF_NONE, TXREP 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~patchwork=sourceware.org@gcc.gnu.org From: Alfie Richards Adds some aarch64 C fmv diagnostic tests. This mostly tests C front end code, but has to be target specific at FMV is requires specifying target extensions. gcc/testsuite/ChangeLog: * gcc.target/aarch64/mv-and-mvc-error1.c: New test. * gcc.target/aarch64/mv-and-mvc-error2.c: New test. * gcc.target/aarch64/mv-and-mvc-error3.c: New test. * gcc.target/aarch64/mv-error1.c: New test. * gcc.target/aarch64/mv-error2.c: New test. * gcc.target/aarch64/mv-error3.c: New test. * gcc.target/aarch64/mv-error4.c: New test. * gcc.target/aarch64/mv-error5.c: New test. * gcc.target/aarch64/mv-error6.c: New test. * gcc.target/aarch64/mv-error7.c: New test. * gcc.target/aarch64/mv-error8.c: New test. * gcc.target/aarch64/mv-error9.c: New test. * gcc.target/aarch64/mv-error10.c: New test. * gcc.target/aarch64/mvc-error1.c: New test. * gcc.target/aarch64/mvc-error2.c: New test. * gcc.target/aarch64/mvc-warning1.c: New test. --- .../gcc.target/aarch64/mv-and-mvc-error1.c | 9 +++++++++ .../gcc.target/aarch64/mv-and-mvc-error2.c | 9 +++++++++ .../gcc.target/aarch64/mv-and-mvc-error3.c | 8 ++++++++ gcc/testsuite/gcc.target/aarch64/mv-error1.c | 18 +++++++++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error10.c | 13 ++++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error2.c | 9 +++++++++ gcc/testsuite/gcc.target/aarch64/mv-error3.c | 12 +++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error4.c | 9 +++++++++ gcc/testsuite/gcc.target/aarch64/mv-error5.c | 8 ++++++++ gcc/testsuite/gcc.target/aarch64/mv-error6.c | 20 +++++++++++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error7.c | 11 ++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error8.c | 12 +++++++++++ gcc/testsuite/gcc.target/aarch64/mv-error9.c | 12 +++++++++++ gcc/testsuite/gcc.target/aarch64/mvc-error1.c | 9 +++++++++ gcc/testsuite/gcc.target/aarch64/mvc-error2.c | 9 +++++++++ .../gcc.target/aarch64/mvc-warning1.c | 13 ++++++++++++ 16 files changed, 181 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error10.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error3.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error4.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error5.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error6.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error7.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error8.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mv-error9.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-error2.c create mode 100644 gcc/testsuite/gcc.target/aarch64/mvc-warning1.c diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c new file mode 100644 index 00000000000..b08de29dd3c --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) int +foo () { return 1; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c new file mode 100644 index 00000000000..d34b246efc5 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\].; have .float\\(void\\)." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c new file mode 100644 index 00000000000..a6a45bdf7aa --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-and-mvc-error3.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +float foo () { return 1; } /* { dg-message "previous definition of .foo." } */ + +__attribute__ ((target_clones ("default", "dotprod", "sve"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_clones\\(.default., .dotprod., .sve.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error1.c b/gcc/testsuite/gcc.target/aarch64/mv-error1.c new file mode 100644 index 00000000000..61c9af276e6 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error1.c @@ -0,0 +1,18 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo (); + +__attribute__ ((target_version ("default"))) int +foo () { return 1; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "conflicting types for .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */ + +__attribute__ ((target_version ("sve"))) int +foo2 () { return 1; } /* { dg-message "previous definition of .foo2 \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo2 () { return 3; } /* { dg-error "conflicting types for .foo2 \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\].; have .float\\(void\\)." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error10.c b/gcc/testsuite/gcc.target/aarch64/mv-error10.c new file mode 100644 index 00000000000..218f103a8f4 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error10.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +void +bar () +{ + __attribute__ ((target_version ("dotprod"))) int + foo1 (); /* { dg-message "versioned declarations are only allowed at file scope" } */ + + __attribute__ ((target_version ("simd"))) int + foo2 () { return 1; } /* { dg-message "versioned definitions are only allowed at file scope" } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error2.c b/gcc/testsuite/gcc.target/aarch64/mv-error2.c new file mode 100644 index 00000000000..19d961d0a5a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .float\\(void\\)." } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error3.c b/gcc/testsuite/gcc.target/aarch64/mv-error3.c new file mode 100644 index 00000000000..451ce028c65 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error3.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) float +foo () { return 3; } + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]. with type .float\\(void\\)." } */ + +__attribute__ ((target_version ("default"))) float +foo () { return 3; } /* { dg-error "redefinition of .foo \\\[\\\[target_version\\(.default.\\)\\\]\\\]." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error4.c b/gcc/testsuite/gcc.target/aarch64/mv-error4.c new file mode 100644 index 00000000000..44d3195590d --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error4.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("test"))) float +foo () { return 3; } /* { dg-error "invalid feature modifier .test. of value .test. in .target_version. attribute" } */ + +__attribute__ ((target_version ("sve+test"))) float +foo2 () { return 3; } /* { dg-error "invalid feature modifier .test. of value .sve.test. in .target_version. attribute" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error5.c b/gcc/testsuite/gcc.target/aarch64/mv-error5.c new file mode 100644 index 00000000000..776b80a45b6 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error5.c @@ -0,0 +1,8 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo(); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error6.c b/gcc/testsuite/gcc.target/aarch64/mv-error6.c new file mode 100644 index 00000000000..afc71a44e73 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error6.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo () { + return 1; +} + +__attribute__ ((target_version ("sve"))) int +foo () { /* { dg-message "previous definition of .foo \\\[\\\[target_version\\(.sve.\\)\\\]\\\]. with type .int\\(void\\)." } */ + return 1; +} + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo2(); /* { dg-message "previous declaration of .foo2 \\\[\\\[target_version\\(.sve\\\+sve2.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int bar2 () { return foo2 (); } /* { dg-error "implicit declaration of function .foo2." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error7.c b/gcc/testsuite/gcc.target/aarch64/mv-error7.c new file mode 100644 index 00000000000..68db9783ce6 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error7.c @@ -0,0 +1,11 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +__attribute__ ((target_version ("sve+sve2"))) int +foo (); + +int bar () { return foo (); } /* { dg-error "implicit declaration of function .foo." } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error8.c b/gcc/testsuite/gcc.target/aarch64/mv-error8.c new file mode 100644 index 00000000000..7599df189e4 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error8.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("default"))) int +foo (int a, int (*b)[4]) { return 1; } + +int bar(void) { + __attribute__ ((target_version ("dotprod"))) int + foo (int a, int (*b)[5]) { return 3; } /* { dg-error "versioned definitions are only allowed at file scope" } */ + + return 1; +} diff --git a/gcc/testsuite/gcc.target/aarch64/mv-error9.c b/gcc/testsuite/gcc.target/aarch64/mv-error9.c new file mode 100644 index 00000000000..dc982e9d415 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mv-error9.c @@ -0,0 +1,12 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_version ("dotprod"))) int +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_version\\(.dotprod.\\)\\\]\\\]. with type .int\\(void\\)." } */ + +int +bar () +{ + return foo (); /* { dg-error "implicit declaration of function .foo." } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-error1.c b/gcc/testsuite/gcc.target/aarch64/mvc-error1.c new file mode 100644 index 00000000000..482d0a71e67 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-error1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default, dotprod"))) float +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-error2.c b/gcc/testsuite/gcc.target/aarch64/mvc-error2.c new file mode 100644 index 00000000000..482d0a71e67 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-error2.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__ ((target_clones ("default, dotprod"))) float +foo (); /* { dg-message "previous declaration of .foo \\\[\\\[target_clones\\(.default., .dotprod.\\)\\\]\\\]." } */ + +__attribute__ ((target_clones ("dotprod", "sve"))) float +foo () { return 3; } /* { dg-error ".foo \\\[\\\[target_clones\\(.dotprod., .sve.\\)\\\]\\\]. conflicts with overlapping .target_clone. declaration" } */ diff --git a/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c b/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c new file mode 100644 index 00000000000..1bae38cceeb --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/mvc-warning1.c @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-require-ifunc "" } */ +/* { dg-options "-O0" } */ + +__attribute__((target_clones("default", "dotprod", "sve+sve2"))) +int foo () { + return 1; +} + +__attribute__((target_clones("invalid1"))) +int foo () { /* { dg-warning "invalid feature modifier .invalid1. in version .invalid1. for .target_clones. attribute" } */ + return 2; +}