From patchwork Thu Aug 15 15:37:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972840 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=RLqPVWSC; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=RLqPVWSC; 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 4Wl8R03JV1z1yXZ for ; Fri, 16 Aug 2024 01:38:20 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B5478385842D for ; Thu, 15 Aug 2024 15:38:18 +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-db8eur05on20603.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::603]) by sourceware.org (Postfix) with ESMTPS id 4D4483857000 for ; Thu, 15 Aug 2024 15:37:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4D4483857000 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 4D4483857000 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::603 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736274; cv=pass; b=SmJi+NDIb3p4rShdtHA6um4U0NDDPzSfmKw0qwtp36d5H1VQR4q88Na2flqYa4fP/h/6ZDd200NV11G8SePIY90ONgc3JHmW5u5DI0qflbxRKT8FR74bdljzs14Wmk/USB5VsVl5UtO/NL7qk3su8+8yCF3iLUgEMPo7HRdFLnU= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736274; c=relaxed/simple; bh=v5N3Bf2FpuiSDeK1gybAlqgH9Ej4RmnB6CXjHT8eXVk=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=IluCUeTm1G6HUYOZX3Yiw+tBop5oTdbG+WHMDu86xUix0J2p/PB0Im0YRdQpgTxA3I5/mgiFI3oku5B5N7UUQRjUv6apAfbEg2kBeuFZ34zeEEWq9gjP1qr/gQDJwoh5hUMog89VXhcZRRhwhBcomFCbQuYp77Etu9mrjTCIZgY= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=XuvjNo6RpYtyDd9+uBWUiYuFlf4WciIu6bPOCpV3HUTSQy/ogkEgnsavoYEf6o8/WRlKFsjFdrJd8iYRwCjZzfKJvRpau1AUfjb9B6QczEBlOs+R2G1pJDcrOwN1qFFjCwH/S5y00WuRVkAPvmI1NGPYI6nVfUgd2U7JmnMcuwYeONOGCtUHYd0ROhgmqn6B+DfLJg4n+g0vPfxBNWjqPZz/qSqwHyjg91Yj+u5bDINJ5hcLojq6qmtY76TGqM3KiIkOc8Zrj1otCIy9fMr0mYAITQMFUzNhd+VyoUQD7yq7CdZpt0S1ELcT/EfIEBqZBwmJEJWQD3QZyZYC/3s53A== 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=4eRFo+DZPLTWuQARQ1nrGboTGM9PqIsG9/gC5cJYaiE=; b=g5fAJ5FyG7uRCOVeTUjVW7y4rGQZeFA/E3Nzia8h4K50IIEhNQw/FGfL0blA/T7Tp+TpP9xMtCgJfIM90rWPYnc+o2l/jg90kf5ouXPbzO5EWfR7ufS64/TPe9EwZvKWWQ9pXodMwZp+3gi626LXWn7xG1QaKXovaTQeWMzzEKUdb7b9uA5VnMzdagNR6iKIjaWHi1aykxgRq+02hyK9XbeVRXFbkBS0/tgzQrSaiFi5msVlTEbRvrYEDX6DLkPMnev0Uss1XG36ome0q2WYR7YCVdpFNgRdUwY83vOw+bUYYo+L85DGo/Je/RGiAS50zPKer5C+ZTfamqOjoX9RAg== 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] dkim=[1,1,header.d=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=4eRFo+DZPLTWuQARQ1nrGboTGM9PqIsG9/gC5cJYaiE=; b=RLqPVWSC2Kt/nRk8+Jn5QKv9LKOBMy+xUEma20tkIK6eK3zUluTIpVfmYMUrzwIYlm31ucf3yMh4PARYhkVy+wb+D86ZLvHqamRQdOh0o09QU/fJCjO01HoEa96tKJjnZDY2/o4XBH9KCG5qZaGwbUaLAS4ACQDQm14y9zIADgA= Received: from AS9PR06CA0571.eurprd06.prod.outlook.com (2603:10a6:20b:486::13) 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.7875.15; Thu, 15 Aug 2024 15:37:47 +0000 Received: from AM2PEPF0001C710.eurprd05.prod.outlook.com (2603:10a6:20b:486:cafe::80) by AS9PR06CA0571.outlook.office365.com (2603:10a6:20b:486::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:37:47 +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 AM2PEPF0001C710.mail.protection.outlook.com (10.167.16.180) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:37:45 +0000 Received: ("Tessian outbound a00430d51899:v403"); Thu, 15 Aug 2024 15:37:45 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: fd57f60275a7b243 X-CR-MTA-TID: 64aa7808 Received: from Lf582a0abd2fd.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 348B3181-BE79-4322-9346-3F61C51BB160.1; Thu, 15 Aug 2024 15:37:39 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lf582a0abd2fd.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:37:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HSMSeZH2ZEHim7N+rNfkX4KrZuZmBIL2XQOEU6Igv7W8UkY+DHKBUmU5kUAZD65xEcFF4IAxc4Pp1imzxoNZ96TUgMLYM8cDkU8JnuMbKpG51rzH/lzIMnCBXlRm2RwUh373xPYrkTWIzgPSWVhw7uR6WdwKA8j8jgJXzFLpb6MkcoNFvGiI/SAT1p488knv7ylLTDf3agABpONlp7/wQec+UJHnKFQhVMh49eUS7i/LcU0o/VyGzpzHhnHDn4NjAY9FYCiXz+Aq5C2i+f6JZIYWKVZYKvOK8W/eTFM01AhHF5kTDL4YZ/nxLp3WNKqoqewJLx0S5JR7OoByKJu/ZA== 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=4eRFo+DZPLTWuQARQ1nrGboTGM9PqIsG9/gC5cJYaiE=; b=eZipcrJhHGP+ZKS9s6ednDtptgMSP/9WeZ1iSbU8gjs+K9cV7+evRh9MpqI789Bjk20jQQyNLNJagil7ak7kP6JYsddefH2NtbS/RNndunZQmyCoxjkq1NMqcCa5OjR7Gj5ks7HXidsu2enzNT/6QDEP8JwrPBsmnxqse0qNg4yg8ofPFfiObO9y/mRFFvh2mLD28LmON9GfOSaCmRVRIB6Rg0EDj5zFFJ4F0AL4HqJFdgpmyRYWgTlDeRhezrHgbrPt71cDgOlwL9gUjfJSLEd3qxiCD2msE++749AO44eA7eqiBGjCxpV/l5k/Er3cvaWOvf+8/e/lnPoS+ywFyg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=4eRFo+DZPLTWuQARQ1nrGboTGM9PqIsG9/gC5cJYaiE=; b=RLqPVWSC2Kt/nRk8+Jn5QKv9LKOBMy+xUEma20tkIK6eK3zUluTIpVfmYMUrzwIYlm31ucf3yMh4PARYhkVy+wb+D86ZLvHqamRQdOh0o09QU/fJCjO01HoEa96tKJjnZDY2/o4XBH9KCG5qZaGwbUaLAS4ACQDQm14y9zIADgA= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:37:36 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:37:35 +0000 Date: Thu, 15 Aug 2024 16:37:32 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 1/5] aarch64: Refactor check_required_extensions Message-ID: <9ec21bc0-1494-b97a-927d-83e309d3f1c0@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO6P265CA0018.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ff::6) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|AM2PEPF0001C710:EE_|AS2PR08MB9499:EE_ X-MS-Office365-Filtering-Correlation-Id: 31b14140-8b30-483f-56f0-08dcbd4035ee 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: LuLmiLgonocXHWCBmGAjzX878mlJIQNekt19MY6l/WMYAgomtdXvHqdi8j+oZxvgnu6jwblwsvpuqrQ2MfPIuY1shZODwSSahqdf4Db9S1nb9k3NrVtE6vP6na6iEg7aKtR2od3UMIL2qKjwsXykVJfs362JtDJFHVVWaYBcc+CsF0q6UGXb8pptNauBBFh5INIhpT8IJkJs4g0jGvFOCteNyhz2odcx/Lz+7P3bolJC45hgFL1ZJrsy3BcQi3DbBgMYJXJ2sq4v+fz+TA3noP1nqFIjWLVOcCyF78scA2GZTEiwNRV25bqnDAry5svVS3mvtbNFyYljtKWQux8aAN8gFKbkGBXZ38BImFz5feC98wbeK6//w0r5ZEoxTztN+iWA7FeXCisP2dPtwJR5SdgoYMdmCMIAqx7CvwkYiHJkjv9DIAiMr28z2Q2Ij+kxvV/mYzPWppwXrFc8wZ2S0KcIkSJhah1x0B6HW7Bb44LwmFlMqQ23maOcvFX/j6UGid83Wg23QAuV8CSKv9izc6f7MB4sFlccRmGNAMDE3BFTD6Knc9FIUMrn61P25xMIeR4EQE8AfMSE0wMCI6RRvGBrnjnUefPHwcA4iYP0c6YNxAPtEgYZIm4nFk8wmDgn+PKO7BWKn7HzG7gQZyclzrNVdwwUXUsiyro3m2rJ//gAxA0g372JJDGmg0yqPay4qGiGlyR4aOPqf7w22s7Lc4/u+yQj7qg9lQ/PGf78wKAjwXRnlNolUJ6q9qodo0Z/mL5LHGi6QBRtWR+Zz6UtdP+FIrJVnF1+i79kN0eLZXStKafxCQDhqmBLzfRUrlyH4Iz/3BG56rB5RveIhsFhHtYtFQAfJElWIGyUB6KssRhMFDQhOxZ5mmv3L5LqgtRr2D/G5kQyBql0tGmOf9cz2JzDR2qW9SMwBp53/ApJuipMual4QSwRtwtCtHXUChQQhy14uJ8t9lTQo5QSHRUH+X98oOkIt09pPJWh7byEplypNLfzKlsELVPVDf9zKg43JesWds3RK+NgGHLqhidtR3xikfFN58Fe8zHdFS78T7elxyRqFVntIsZMIYiNpoOh9lNQegYOtyxkEuzjkLseiG0gdxDHS9jVwsYGAoeHpzvlYSMhzaLU69GV1DO9qKy5BcrtsVzkBleEMUu+wRoNs10dDNUzDZ4qcH5ehbWhAro6EU+ZAZLOXAMVc72yk6/ywGCE3Cg16IVAQpndYagtRjeUcJP93J++OJrn5re/cDL1eI00mYho+7lDDDnrCGI4vFQAw6m57c9rPLFElYLvNKsSnhRzF8imWrQRZQvhO5qY2mpDor4me8gB1goWh/Wo3Vw7Hzfre+nxFpgNOUuCyw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C710.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0e8bef97-c413-4828-9b4c-08dcbd402f29 X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|376014|35042699022|1800799024|36860700013; X-Microsoft-Antispam-Message-Info: Jlk9L/+X+IzDrJ0fSHO2SXUXx+77JrQUqELG9e+RgX1hUxhq5gmrq8lKHjNBqC/LYluZmWcs14c57eJByxZ9djiOEqCzultFWkMiKPedx+yh4IvSIolO1ENZvAYCvAENB74GxSYf/Yi5oLX0cVcv+b8BSGTbPIiSdchVsJNfXoOfyZ1VwfEQOnuJpggJ2eV3Xa7qYJHrZd9iKShlHLtpmMQ4k7pbDiLy1jvXlyyV2bigBdl8Ehq/Y9pm/SqBSExQyI0bq58pDmexqKgbzL0sntNukBLC4PTtU/QsQIEpRqnDxipuHnWEEPRG/kuutywlexAntGZ/v9WDW75te4fgq7UyUjKGv3baZ4V/HyllrqlQkOAUqQA1EiYVSkrxiXXenJmhqSFnXTZCKD147J6UiLezc7bW5KkjMgiYL/UVLZvG2ELoZDg8fMS+CdjwvibsNjwajnQYEGrUSwlEfPVMqArxwnoAl9mRi5TgSVCIQM3QLZQrz+w75/aWlrMASYs09dcLwFH0+h9luH6jfcDH9vbVPhhtTeVHJYcTBvb2SIReZNAyA/lpHdmKe9BuUDBIR//Wf/bFs7L7TRmf+QkhnVJMC7yUTe6zWoQWt/qzkM4psz+D3V4dhP9/9rUbW1q5Cvq/5gTRSljLZ0nX/tS0ojo4qIUz3cAPVbNnNQq8+xvvOga3xWAQ2FM7sEQ0Chao2Dv7cDUZsP8J2CEgpI09Y1M6/iU4DUrUVGyLB7JY5XGv6SJUw9Kk4JGK/fV1xHeW4fRHY2kn1jKlHXF44Y8VvAIymAdzK7e2C9EHEYV7kQSQ3ro8xgeumg+uuEMHmTJxMN4Rs9BiUWvcFmvrTSaG1gGAe68rsa7st92VFPO2NU71bqhMUr3v1dFPtWtwu4ZB6uGrCgV08Q2bYp8YYu/0qg7cx6X99R8vVan77Uktz8HPt1ilvjR2EHtlGMCGaiYgqpR9P6QftOF32d4rpULE/RhcEdc63KWW8GlrdLk18yYC2/6PhmCYdTR+bi0BcnxuVTRXjY8CwbQtA82mTwj0aY5PCURxHKlo86wV1JUFA5qraD3NPjb/smGZLEGoCmPY+AIlxRV/2djNbarjbi+uzfvXaB9NSi3LrEwPfgFKquvWz/KlvXgaQCIsCr4bDSbqfvfW50UCBRAXa61qk/sVoBocUkK5j1AtkHj/tJ9HlPgGBGddilOlKXXT8foMHxPM7uYxKoe5Y2BsGbcAZ6586kwznKW/6x8U44Ph4/nnh7ruqg8hfXqFB/K7uhlG+tTLIAxQ1fe3XX7mYxmEmkydOtm4V7eGWQ9NsRvlG/JexGAidAWMeVRsoo3HdHWFdayyeMMWl0TPzoyXJwFLjaV7pR+5aNhQNA8Axdbx7iKCgiX/MMJiFn5K2fNld8uUQatZmWLFF0oUWISqQ1F7pYzjQ/4GrBAC1Hw4ZkwvdcW4lYj3lKS/yjeO+yVoYBimr6Ns 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)(376014)(35042699022)(1800799024)(36860700013); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:37:45.9667 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 31b14140-8b30-483f-56f0-08dcbd4035ee 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: AM2PEPF0001C710.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB9499 X-Spam-Status: No, score=-12.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 Replace TARGET_GENERAL_REGS_ONLY check with an explicit check that aarch64_isa_flags enables all required extensions. This will be more flexible when repurposing this function for non-SVE intrinsics. gcc/ChangeLog: * config/aarch64/aarch64-sve-builtins.cc (check_required_registers): Remove target check and rename to... (report_missing_registers): ...this. (check_required_extensions): Refactor. diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc index 0a560eaedca14832bfacef3225bd467691e16e99..1fe380dd1efb953466fd902f86eef8938059a261 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins.cc +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc @@ -1094,27 +1094,19 @@ report_missing_extension (location_t location, tree fndecl, reported_missing_extension_p = true; } -/* Check whether the registers required by SVE function fndecl are available. - Report an error against LOCATION and return false if not. */ -static bool -check_required_registers (location_t location, tree fndecl) +/* Report an error against LOCATION that the user has tried to use + function FNDECL when non-general registers are disabled. */ +static void +report_missing_registers (location_t location, tree fndecl) { /* Avoid reporting a slew of messages for a single oversight. */ if (reported_missing_registers_p) - return false; - - if (TARGET_GENERAL_REGS_ONLY) - { - /* SVE registers are not usable when -mgeneral-regs-only option - is specified. */ - error_at (location, - "ACLE function %qD is incompatible with the use of %qs", - fndecl, "-mgeneral-regs-only"); - reported_missing_registers_p = true; - return false; - } + return; - return true; + error_at (location, + "ACLE function %qD is incompatible with the use of %qs", + fndecl, "-mgeneral-regs-only"); + reported_missing_registers_p = true; } /* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are @@ -1124,9 +1116,19 @@ static bool check_required_extensions (location_t location, tree fndecl, aarch64_feature_flags required_extensions) { + if ((required_extensions & ~aarch64_isa_flags) == 0) + return true; + auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags; + if (missing_extensions == 0) - return check_required_registers (location, fndecl); + { + /* All required extensions are enabled in aarch64_asm_isa_flags, so the + error must be the use of general-regs-only. */ + report_missing_registers (location, fndecl); + return false; + } + if (missing_extensions & AARCH64_FL_SM_OFF) { From patchwork Thu Aug 15 15:38:01 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972842 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=hpKTVhz/; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=hpKTVhz/; 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 4Wl8S15LRrz1yXZ for ; Fri, 16 Aug 2024 01:39:13 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EF5FB3858282 for ; Thu, 15 Aug 2024 15:39:11 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2607::601]) by sourceware.org (Postfix) with ESMTPS id A71E83858C50 for ; Thu, 15 Aug 2024 15:38:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A71E83858C50 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 A71E83858C50 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2607::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736309; cv=pass; b=mLFzM4dH6mWk4IheYxaF9jMFwkCUBGDmYFY6QcVZ/X1d71vUYsTHpSVINHcHriI54B7mGaQjIMFx6XlunC2vONBAepQTosmwqBUUor87B+cbC8BpOODau7/iqkytd6eyW3PmvkL2jQI6Zq7jrL8M87PEK5o0bTeO5LIyzn02oXI= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736309; c=relaxed/simple; bh=IKihSPB/9GpYCz9htL1LUmCPCQMB1lnOhs3vSeE3qCI=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=mlwRJiIxBaZFGnkcPQSyiByFGA82fZkXfOi+eTjQmqsIYw074Z7tjnk1fXW2zOANHIMfMrgqS4zzvARuORsOXxM7XJZm+v1L5CxLuaHYRnDmJhJCr+7f1kRC+itsYFLhlLWRokQviET8UrDCRG7xXN7iMBZEO0HiFaEJNtnHG00= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=ab1MpONHVl4gNJzWFRvli65AKqq3mMigjFkrPuqXHLKTwAhCmnXJOhk0sE4gRv1TS3ooUmnyLmu4zZH0+ApSipK6HKp+i+1Y7/1fYbsdb1Q3NzqiHhszeOYJ8yN2EC9mtaiQoaeepEvj6814C6reTZVUYUe+LfWvov7drTkVkpLoXRegazY58FXW7xOKnzHl5odZr/bYAlB6j3O9cX4RrLwuT/uUIkzCZ9heneifT50V6JrohGoKEza9Ws8sntQmCfk6uIh8wPyYSJw00MBTM4l9ryMW/CA4slNkpYv7MQ9vk6ID6i4GE+xAfIlcUBK4hJyYPM97lyHbEzylZOGTrQ== 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=N9Y/X/TJ4EMlcJgW7PjlwAcEwvwJZj+pyVuOl91DJsQ=; b=gqM8ojTse5D8FmCOo/CMMVz+HH24chyuDG8w2g8Jj3RJYF5wLHh/PBkLUiUrd0uof0HzAkj9nmVeXq1DIQ5bNHMhcB2PuC4fr/tt9/rSSQ3leVgEOTGF07B8S9gkujW7vjrJzSw5w9wEfm81hPfWOjDfMLPRu6bvbko//bCpL+W1vvH7uKIojWjIcKlVNtdA0U1dNY5qrko4MK4kYYlVyBnwLq88N3UeJmXX9waivj34hqCFzSILH6f7p+CjwGuaLUHVvWSyjpRCBq+vijkBJJXXeWqfT8xh8Nr8pgJLO8iq1WSy8ImizxPOQgAw3w2HzrozOLrDrG+M+D4hGS9DLw== 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] dkim=[1,1,header.d=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=N9Y/X/TJ4EMlcJgW7PjlwAcEwvwJZj+pyVuOl91DJsQ=; b=hpKTVhz/6RoewhOJT6Cp/26scRbziY0lWe09f2P+TryKPgJNwt65bRUAP3lSp9ytutOBF5h6aDIinlS01csm76/r8othfA5bmWW1u5DjBT+sTvIaMQfiI4zkKpK7iF7VQKye9/iHMEAoL7wCkAgvMwnuaYsvUWXa6xAH6rxm3as= Received: from AS9PR06CA0239.eurprd06.prod.outlook.com (2603:10a6:20b:45e::35) by AS2PR08MB8575.eurprd08.prod.outlook.com (2603:10a6:20b:55e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.15; Thu, 15 Aug 2024 15:38:20 +0000 Received: from AMS1EPF00000042.eurprd04.prod.outlook.com (2603:10a6:20b:45e:cafe::9b) by AS9PR06CA0239.outlook.office365.com (2603:10a6:20b:45e::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:38:20 +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 AMS1EPF00000042.mail.protection.outlook.com (10.167.16.39) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:38:20 +0000 Received: ("Tessian outbound 49bfb235ebbe:v403"); Thu, 15 Aug 2024 15:38:19 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4a1cb8c6571eb41f X-CR-MTA-TID: 64aa7808 Received: from Ld099fa8e8b17.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id E6BC012B-5645-42D9-A837-5522F81688EC.1; Thu, 15 Aug 2024 15:38:08 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Ld099fa8e8b17.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:38:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sdm34ECKLSyOr+SJsC0M2M0Uc00vAhuJekxNJCOGZ999lLzkfkPJLXwy75UDcIFSc0vQdHVPAIb5laPQmOlEVoDAlx7UELNN/i8z0iTSoGlVHSkL5J2FMuvC3AYuTSGt1bMl+aHdc+P2bhgBaT0Pa7DeiE8lyXLMcgeUVb1d7EQDeEimiTLMcDOVOPDv4Xt1zN0DGXnBksAxeVi2Xr64/AzBsAvj32n7iu2f4lNnApuohnY5hzw62wP5PD+u7IQASGImJbXJOWeOuXZggfrNCL8xGPVhb8pWBfQGhzfCjJKXcJ6ut8o+Sdmb3Na9IkMqK0iPllJVBW94UAop68TUxA== 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=N9Y/X/TJ4EMlcJgW7PjlwAcEwvwJZj+pyVuOl91DJsQ=; b=uPNw3+bvH/7thDY0/wGJg1L2SvHuvTl/ypkaIZZyC4DUSNLsYZ2qXCyfJp6U06e6NT9ZhabRTKOxFjQBwfXsFqVxchDvlHXovCMNjzjPtjFV2Q1K3bD2nUIuxJlsICgTCRdL42oFROns+maAxnzLFup/0x3COGCZdy5EbK2HKjTig02nTqsNmn69lIJhiqgVlHgWdw0y/9Zwd4aj6hOEw7+6jkjl36FfZFRm/AjDjJe62XKJSz58r6eWtDo7+zWDEVZKxipJIBA2rWUjiXwMTpKaP9pa0AQH3nEF0zjkt8ruklRqLbMsi69Hlf4UJ1ffwf4PiXkFVc3xzRC2sCtu1Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=N9Y/X/TJ4EMlcJgW7PjlwAcEwvwJZj+pyVuOl91DJsQ=; b=hpKTVhz/6RoewhOJT6Cp/26scRbziY0lWe09f2P+TryKPgJNwt65bRUAP3lSp9ytutOBF5h6aDIinlS01csm76/r8othfA5bmWW1u5DjBT+sTvIaMQfiI4zkKpK7iF7VQKye9/iHMEAoL7wCkAgvMwnuaYsvUWXa6xAH6rxm3as= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:38:05 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:38:05 +0000 Date: Thu, 15 Aug 2024 16:38:01 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 2/5] aarch64: Move check_required_extensions Message-ID: References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO0P123CA0001.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:354::10) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|AMS1EPF00000042:EE_|AS2PR08MB8575:EE_ X-MS-Office365-Filtering-Correlation-Id: d8151574-cb1e-4411-d4f1-08dcbd404a49 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: HdU51eJSCQ9dlTbtYKimTpuZtbv5nlF9rztOkDqbpxDIbAZqiukkrwGJPxgtrOAt7vJEg4QGQLUBSMTskpEO3ZVUxPo0LqEvkem8qPyVSPdOJzl0gfl6BJaAllk2kE+v0c70Ayvo3um53ILCTZLrydw1HaZ2FW74RsZ3Wzr3oLjfevYXt1E4ksOhdixlY2ps0t05iTIWWlNBfBA0lIIXyZBDbDkWQgKU3CY3QZlrGJFrKOXk1pICLMbN2jkoAlSKWUnpb5TD6GSAuVTEqKxCRULjwNb0fWRT634LTf9F113GFmLy8c0TjN4MHz7FExC9zY6Eb6XbisVmKdurSuCqCLs09OLo4kh+dNePiRX0Tj1ShZZYX2lJmnw1+OfBhGZEl4s78NxuKYgcOpOg5NFaUeiRxNAyTD00kA2EGYg1oGPqwv59elIaQPhBQG0NFlQMniya5E6oT3TxP0ucV+e3JwI+aKt917pdpVZg1bbIHKAA182GOs7A1pksyImr6XVk6v0ST/h0zKL1slSNq9Pc9dzA/H8py43SE8KNp5fSPzSnMvqVEKSo6BprreemZIBWNBYYDw9+RzOQMkumfslVdLIQcx5UuCIogrv4WJJY08+UtUquAdtlFP/o9s0XewBN8x3ymwe6H+jD01OZMYEcfMFPZMnC6TIln9GhD9pZeHKaljnNALr4MFeA6cr7Os6irYo+DJpvFZGS/8uS39ToG0fhP8/ZKI6HEUSuJ86KHXyqXhCGJAXk/Y56amqnKfsLCzKd0qvTjGlakEyrfAQ95/0G87AvIaLMJuJyf1Db5cNimpFDVVqwWyk7Ux6lQtKaUOu2rm4N7ZiXZzQqiNrXxK01XMcTGc4YtWwPabYIxyRuvKSz7r5IoqttIkuOmVFLsIjS2ZpRjNXT2omBL0m7S60bQG9wJYlL0Am5sNQe0pYJLf5lWUew5qGMkDD42ymLZvoRwEmZLtu+saLY6VcpxWLBnXdDMd4wWPCArUy/tS1cqnRPJqUgjpFJTAEwnJE0V0uBPoes3C6rUJoT9QnnR4bByx830jrjYD6wQqiv212qpAKr5F0gQoE7AT0m6bDanuymH7+Fw3AJawVxdo7it2KMCIyXdKJhOdh/tR+GU+T7xN+M9rROaBtqakXs60P67Ez7MP/rBgCBDReeMjxueDETs8nFeY716i0Y/TCLpGbtc6oaegTNcWb+gK+aTnEKvf0YCTlXMyLcx3W5c1a0FMsOsI3zcl+WIS92Oq/MqFWLPNBbBXfcKlIYsgLvmwq1W85nvZOLocO2yC8gtAsYyI3c8tc6MoXmByJcx2QtYLzpCgckX8Q9ulyKQiTEmi6re1K4sWQzizqFO7b6Xc8GzQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AMS1EPF00000042.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 133a8489-ba5f-49f0-3dca-08dcbd404016 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|35042699022|82310400026|36860700013|376014; X-Microsoft-Antispam-Message-Info: r28KHKR/GC9R8b7yyAhPnarYHi9/r8NkY2yzr+neUnMAc6CpeVENwaZOPCeT5LYJoTvEF6BJYW3ptY0LiSddKf5AJyhC5Hb2K52yal2XWpwMgpHtNE0SZxz/JKCCvMnw8UZPaOviCfp8wvX17iEUJ28wAX189vFxu5L4ejrstOCZWWH/i+7yJV3uLJr17095XxLPc0LPiD+/D/mSY+9tTAT1lWYhwAYpd8e3lFy1ScWKrsHwLe2VjqC7rSQt5ux/zeLHyjZDyTqamNP4lA0gdJvcWCb9z04SeCxX4LTM3e+JYM6HxV6scnmuudwdXYZOqkWOtx2buthN6VryZbxiUd4SnSpKXpxMiY/K447fxWV23fxEtWLCSa5DZkyNANO7KSOvqBQNNzNDoOB9ZWurLG1kcDPxhRsviMDjafKQcwohNVVzllApSqErNk/g9onQfhCuHOBqnlZ/+z7mgvMxtQAXOik/n3Xxc5Z668YpI0+0bZwfTevHiNqw4ZxdzPOds1Ds8OIwwyFraujozJD2YfXTV66WLpiDKliveQL40cI06OrGOwBff+3oP5yx8KG/V8T7jKnRZ1K4Uou+kIBIn9PI22Mzo1GzyKRWiV6PAg2bwjkXCMgwIhBAbDnIPLOzl4rfkGC447TcsF4n6esT9Nbkg/HBNWb04ayaazUddmUXwcZTxjTzsxzrKqe4yBsOdrB2aKllXToKqYTgTHx0z7ZQseIt8cJpXCzdPCnUIsnDJdJTUYIjltIWp3HUQ6fVYJFFJQD8D3i5PHRSXrIhk+Qe0ocBL8Clo5G4sJ77Lm5HZB15QlHacaYagRka9XlEYobbkIy387H0LPtp1tegptzfR1jBlTEiXbNDJ0oyaSLeIUtT+GzWuCKKkjHDhU/oqzEq/VLtbDxt+NC2OiFeIfbryR+h4rHVYI4U7d5b5n/1vJgtpGXXmPHcSwqGhq/2kRiB6/gAWcLfiV7EUotKeVimZzTzWtWoD4ckI8xx2u3UVYlkzLpPtZtbm0Xa4WyU4CrSb8sWiZrjvfR2d2fQAL8kObhs19hrKlblhQqBXPIN1R3+9j1FS9BFCldFUSiTD9cYHAmytrpQKxBm0NArhfTzB9wgtaTVHT1VFFL1sjw4SogTCDD+MBoY54iCrlbHCnR0ElNVS9NylOMRshOl8baRwLsLkewEz6wfdgIwpaj3YsWeotq8hLmnhfH6X1UqtrCSRu3hbsMzxGgRESPZRGrYSXJgzQMl9vOJ1ZNMbp+4qZsIo0Cjq7lpu5091G0IFI8mo1CUis/bDWTTPiJn2nFxD0i5VM0A6GmdQR9I9lMBvExVZteG6RmHbjcOWCXncuSHYhF6LgjTV58gJ2+rMdNSu30ugHdvnVR9WSfaqBsaIBul2FYNHocKSYKRUtcZrCi36uCoPhyBy88hFDy9jFOiAKcHWbsToyGXWrI/uQDg79syn1ZP2oqnqO7S/rC/ 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)(1800799024)(35042699022)(82310400026)(36860700013)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:38:20.0426 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d8151574-cb1e-4411-d4f1-08dcbd404a49 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: AMS1EPF00000042.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8575 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 Move SVE extension checking functionality to aarch64-builtins.cc, so that it can be shared by non-SVE intrinsics. gcc/ChangeLog: * config/aarch64/aarch64-sve-builtins.cc (check_builtin_call) (expand_builtin): Update calls to the below. (report_missing_extension, report_missing_registers) (check_required_extensions): Move out of aarch64_sve namespace, rename, and move into... * config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension) (aarch64_report_missing_registers) (aarch64_check_required_extensions) ...here. * config/aarch64/aarch64-protos.h (aarch64_check_required_extensions): Add prototype. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 30669f8aa1823b64689c67e306d38e234bd31698..a07adcee6e266c947855041ed7432085f6448836 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -2180,6 +2180,106 @@ aarch64_general_builtin_decl (unsigned code, bool) return aarch64_builtin_decls[code]; } +/* True if we've already complained about attempts to use functions + when the required extension is disabled. */ +static bool reported_missing_extension_p; + +/* True if we've already complained about attempts to use functions + which require registers that are missing. */ +static bool reported_missing_registers_p; + +/* Report an error against LOCATION that the user has tried to use + function FNDECL when extension EXTENSION is disabled. */ +static void +aarch64_report_missing_extension (location_t location, tree fndecl, + const char *extension) +{ + /* Avoid reporting a slew of messages for a single oversight. */ + if (reported_missing_extension_p) + return; + + error_at (location, "ACLE function %qD requires ISA extension %qs", + fndecl, extension); + inform (location, "you can enable %qs using the command-line" + " option %<-march%>, or by using the %" + " attribute or pragma", extension); + reported_missing_extension_p = true; +} + +/* Report an error against LOCATION that the user has tried to use + function FNDECL when non-general registers are disabled. */ +static void +aarch64_report_missing_registers (location_t location, tree fndecl) +{ + /* Avoid reporting a slew of messages for a single oversight. */ + if (reported_missing_registers_p) + return; + + error_at (location, + "ACLE function %qD is incompatible with the use of %qs", + fndecl, "-mgeneral-regs-only"); + reported_missing_registers_p = true; +} + +/* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are + enabled, given that those extensions are required for function FNDECL. + Report an error against LOCATION if not. */ +bool +aarch64_check_required_extensions (location_t location, tree fndecl, + aarch64_feature_flags required_extensions) +{ + if ((required_extensions & ~aarch64_isa_flags) == 0) + return true; + + auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags; + + if (missing_extensions == 0) + { + /* All required extensions are enabled in aarch64_asm_isa_flags, so the + error must be the use of general-regs-only. */ + aarch64_report_missing_registers (location, fndecl); + return false; + } + + if (missing_extensions & AARCH64_FL_SM_OFF) + { + error_at (location, "ACLE function %qD cannot be called when" + " SME streaming mode is enabled", fndecl); + return false; + } + + if (missing_extensions & AARCH64_FL_SM_ON) + { + error_at (location, "ACLE function %qD can only be called when" + " SME streaming mode is enabled", fndecl); + return false; + } + + if (missing_extensions & AARCH64_FL_ZA_ON) + { + error_at (location, "ACLE function %qD can only be called from" + " a function that has %qs state", fndecl, "za"); + return false; + } + + static const struct { + aarch64_feature_flags flag; + const char *name; + } extensions[] = { +#define AARCH64_OPT_EXTENSION(EXT_NAME, IDENT, C, D, E, F) \ + { AARCH64_FL_##IDENT, EXT_NAME }, +#include "aarch64-option-extensions.def" + }; + + for (unsigned int i = 0; i < ARRAY_SIZE (extensions); ++i) + if (missing_extensions & extensions[i].flag) + { + aarch64_report_missing_extension (location, fndecl, extensions[i].name); + return false; + } + gcc_unreachable (); +} + bool aarch64_general_check_builtin_call (location_t location, vec, unsigned int code, tree fndecl, diff --git a/gcc/config/aarch64/aarch64-protos.h b/gcc/config/aarch64/aarch64-protos.h index f64afe2889018e1c4735a1677e6bf5febc4a7665..28613c425188cd270d9a2deeb91ae61b29aa1f07 100644 --- a/gcc/config/aarch64/aarch64-protos.h +++ b/gcc/config/aarch64/aarch64-protos.h @@ -1008,6 +1008,8 @@ tree aarch64_general_builtin_rsqrt (unsigned int); void handle_arm_acle_h (void); void handle_arm_neon_h (void); +bool aarch64_check_required_extensions (location_t, tree, + aarch64_feature_flags); bool aarch64_general_check_builtin_call (location_t, vec, unsigned int, tree, unsigned int, tree *); diff --git a/gcc/config/aarch64/aarch64-sve-builtins.cc b/gcc/config/aarch64/aarch64-sve-builtins.cc index 1fe380dd1efb953466fd902f86eef8938059a261..5ca9ec32b691fd53733b01c52ad7a25cc5de9b93 100644 --- a/gcc/config/aarch64/aarch64-sve-builtins.cc +++ b/gcc/config/aarch64/aarch64-sve-builtins.cc @@ -947,14 +947,6 @@ static hash_table *function_table; are IDENTIFIER_NODEs. */ static GTY(()) hash_map *overload_names[2]; -/* True if we've already complained about attempts to use functions - when the required extension is disabled. */ -static bool reported_missing_extension_p; - -/* True if we've already complained about attempts to use functions - which require registers that are missing. */ -static bool reported_missing_registers_p; - /* Record that TYPE is an ABI-defined SVE type that contains NUM_ZR SVE vectors and NUM_PR SVE predicates. MANGLED_NAME, if nonnull, is the ABI-defined mangling of the type. ACLE_NAME is the name of the type. */ @@ -1076,98 +1068,6 @@ lookup_fndecl (tree fndecl) return &(*registered_functions)[subcode]->instance; } -/* Report an error against LOCATION that the user has tried to use - function FNDECL when extension EXTENSION is disabled. */ -static void -report_missing_extension (location_t location, tree fndecl, - const char *extension) -{ - /* Avoid reporting a slew of messages for a single oversight. */ - if (reported_missing_extension_p) - return; - - error_at (location, "ACLE function %qD requires ISA extension %qs", - fndecl, extension); - inform (location, "you can enable %qs using the command-line" - " option %<-march%>, or by using the %" - " attribute or pragma", extension); - reported_missing_extension_p = true; -} - -/* Report an error against LOCATION that the user has tried to use - function FNDECL when non-general registers are disabled. */ -static void -report_missing_registers (location_t location, tree fndecl) -{ - /* Avoid reporting a slew of messages for a single oversight. */ - if (reported_missing_registers_p) - return; - - error_at (location, - "ACLE function %qD is incompatible with the use of %qs", - fndecl, "-mgeneral-regs-only"); - reported_missing_registers_p = true; -} - -/* Check whether all the AARCH64_FL_* values in REQUIRED_EXTENSIONS are - enabled, given that those extensions are required for function FNDECL. - Report an error against LOCATION if not. */ -static bool -check_required_extensions (location_t location, tree fndecl, - aarch64_feature_flags required_extensions) -{ - if ((required_extensions & ~aarch64_isa_flags) == 0) - return true; - - auto missing_extensions = required_extensions & ~aarch64_asm_isa_flags; - - if (missing_extensions == 0) - { - /* All required extensions are enabled in aarch64_asm_isa_flags, so the - error must be the use of general-regs-only. */ - report_missing_registers (location, fndecl); - return false; - } - - - if (missing_extensions & AARCH64_FL_SM_OFF) - { - error_at (location, "ACLE function %qD cannot be called when" - " SME streaming mode is enabled", fndecl); - return false; - } - - if (missing_extensions & AARCH64_FL_SM_ON) - { - error_at (location, "ACLE function %qD can only be called when" - " SME streaming mode is enabled", fndecl); - return false; - } - - if (missing_extensions & AARCH64_FL_ZA_ON) - { - error_at (location, "ACLE function %qD can only be called from" - " a function that has %qs state", fndecl, "za"); - return false; - } - - static const struct { - aarch64_feature_flags flag; - const char *name; - } extensions[] = { -#define AARCH64_OPT_EXTENSION(EXT_NAME, IDENT, C, D, E, F) \ - { AARCH64_FL_##IDENT, EXT_NAME }, -#include "aarch64-option-extensions.def" - }; - - for (unsigned int i = 0; i < ARRAY_SIZE (extensions); ++i) - if (missing_extensions & extensions[i].flag) - { - report_missing_extension (location, fndecl, extensions[i].name); - return false; - } - gcc_unreachable (); -} /* Report that LOCATION has a call to FNDECL in which argument ARGNO was not an integer constant expression. ARGNO counts from zero. */ @@ -4763,7 +4663,8 @@ check_builtin_call (location_t location, vec, unsigned int code, tree fndecl, unsigned int nargs, tree *args) { const registered_function &rfn = *(*registered_functions)[code]; - if (!check_required_extensions (location, rfn.decl, rfn.required_extensions)) + if (!aarch64_check_required_extensions (location, rfn.decl, + rfn.required_extensions)) return false; return function_checker (location, rfn.instance, fndecl, TREE_TYPE (rfn.decl), nargs, args).check (); @@ -4786,8 +4687,8 @@ rtx expand_builtin (unsigned int code, tree exp, rtx target) { registered_function &rfn = *(*registered_functions)[code]; - if (!check_required_extensions (EXPR_LOCATION (exp), rfn.decl, - rfn.required_extensions)) + if (!aarch64_check_required_extensions (EXPR_LOCATION (exp), rfn.decl, + rfn.required_extensions)) return target; return function_expander (rfn.instance, rfn.decl, exp, target).expand (); } From patchwork Thu Aug 15 15:38:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972841 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=BfOC5zVL; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=BfOC5zVL; 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 4Wl8Rw6FQmz1yXZ for ; Fri, 16 Aug 2024 01:39:08 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 070C83858404 for ; Thu, 15 Aug 2024 15:39:07 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on20627.outbound.protection.outlook.com [IPv6:2a01:111:f403:2608::627]) by sourceware.org (Postfix) with ESMTPS id 4EFAF385C6CB for ; Thu, 15 Aug 2024 15:38:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4EFAF385C6CB 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 4EFAF385C6CB Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2608::627 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736324; cv=pass; b=UbFj7oY5Z2O4Al1MYh/eivqacmXhZM+RMe2iyIHKV8IH9zerglfjvEfKNbaf1wZz7ckGPpslGfGC9f8rdguORVPkGm2J/ebsb0RpFbbiolddP7sAAPdLX77ozRyKRZws/Ov84Ln1u6hnMgWzSI02InTOsk9oEN7PFRW8loyyjOg= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736324; c=relaxed/simple; bh=VmaTZB1l1Ij2upS9d74rEaC9YEQt4BE3dT27WLICUMg=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=tYHf441Et+I0gse7rSihcfBZ98kiaZYApwNoO3XXBmX8FpYWi8nLe3FEgAKKcopaEDK+OqTaAu8UUlrM6CLVHkOdv1vhvIMZm8owT71G0r+L9GFLZf0xoYF+zSeXgqtOWok9urnN2ekZOe2F9XExslrv42eJ8nzFEq20g44ex3s= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=fKwgYsYNBpS4ncSYkxy6wA9qS4iRMhK/NMODTBfRkRmsYIz61iy0/nSsmP21OgyHlGjtkbp5owSZPydtgVGbVeZkrCCklUChPVH3mblBsHdMBHQkHlwwPT9CzXtczq2syVhLiyONzjjAUp5HZsCxawNrv4nz8wBlq9yk4adOiwPNgnO9tJ0EQIs/RyzOfeH405DAIj3God+ZJDFtG49nNYw1aKjBajRcsGAMnhjs8Fm17s09Xipaflo0ywTdtEP9GFcy2RETpcLIEfY8tU2S5gPxYb/uA0h9sQqY83Sh5gXnKXZndM3t1AXR97rtk8pZLYKUpI8zE47UZVLU98Lacg== 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=qAxjKmyK6LEn4FCD1FmzgDvqjsljI1AsFjwzoHEM1Xc=; b=XXQKblZZEHbPl7hIbOZDwroVGC4vZ00+6HojIwavu/E7FdGrnyWkHV0vgMzMTBKt8UZV+BSk1ef1EkudHkkMxow9XCHJGWR5ecsd2iLamGgCdCmwS6UjNoQKDxevBRtU836BnnB9ORav7SZxlc41Y54mSnIdhB2nbfby50KEzxBxfyr5hkczXpHL913D21tPZe8CKWYq8HvPjcg0RA/VafLNZYUT85V0yIkDkF+qTWq5kB7L9ELfFPh4lqtl4qsoz7B3aCyKUrM6XrIbVaF3KnpvROsTWs40dI84dGv+BXsc8MNxKv4YvTb5h5GNAA2Nh5muvqMVSwuhUQ7MycpGkQ== 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] dkim=[1,1,header.d=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=qAxjKmyK6LEn4FCD1FmzgDvqjsljI1AsFjwzoHEM1Xc=; b=BfOC5zVLVNZpph5yxX+AkNRo/8mQ9kao+WdYhGyKMIV5KhO11mZceSg1IqTwdRM6shlhUwkCNsp/FPlhemmM1nr8zIStnw4D58x3Uk7U6HsFgVro+0lYdNG0Nk7rBHe6bxGu+52jo96oRU/gNK1JzT3Pn/8fUexchDJSZPcGcGA= Received: from DU7P194CA0025.EURP194.PROD.OUTLOOK.COM (2603:10a6:10:553::20) by DU0PR08MB9875.eurprd08.prod.outlook.com (2603:10a6:10:423::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.17; Thu, 15 Aug 2024 15:38:36 +0000 Received: from DB1PEPF000509FF.eurprd03.prod.outlook.com (2603:10a6:10:553:cafe::36) by DU7P194CA0025.outlook.office365.com (2603:10a6:10:553::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:38:36 +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 DB1PEPF000509FF.mail.protection.outlook.com (10.167.242.41) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:38:36 +0000 Received: ("Tessian outbound 1d2b3b5e3ba0:v403"); Thu, 15 Aug 2024 15:38:36 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8fdca3e1b7ae77a1 X-CR-MTA-TID: 64aa7808 Received: from Lfcefb3cfc582.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id F5C6C0F9-002C-4FCC-8719-1CD9768A943D.1; Thu, 15 Aug 2024 15:38:30 +0000 Received: from EUR03-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id Lfcefb3cfc582.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:38:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BDSVJi0WRkns+7hxuOzAwPDdnYScSPqQ7h/T8zwBCbxigFrAw4t01ayorBcR5uR7CkPGD0KSn8BZCR98D62kl1RfNdZZpzr38/zIsiG1n6SqfQ0wuxWt+W08Q/HSdFpE/g0bJhmQt24fSs+wLEXUD77zlnZkjiURIKS/xxP4Gdr7FSablTMd3TJyIfPdyGaRgDhD9MiaflWoZtJmEa3gz6ZBMZaS3Qx7p1mJ07MZ30Ghyy7JKhenu8Wa/8UBtz5ITljAQpRI3kcDxYdgnMeJXwZDYsur38cfoHGN5gIUEc5yKCex4+7FGURN7+C72cWSgdIe2sssj9uGidxaH+MjCg== 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=qAxjKmyK6LEn4FCD1FmzgDvqjsljI1AsFjwzoHEM1Xc=; b=MekZ8aA197PvTjXA0GnuJSMvK366kKP0WQAO7J6IPLdk0ZBmfsGcg9GxdDIKQdJLLSBHZZT65KtHvrNRULaX50I4+sMSHNxglttBEg9rzvWvCh4NOuHzRRwOBXIjIKNy1TxkLrqLMhwFIims/4qjd1Co+hqIdkWVg8Ty0MUg2+xlSY4tRtschCrffF7mEYtM63ggq+tlUmwUGe6rKN2y70/MYTb4LzhbbawoPkeXsV3MHd8pNRIQtBm1fa3wz1Pbf1bGlvlKAqzCVN+Jx4OMQSW/gOsJUTu76m5S7GQKNEG70hSfLPvTHz+7gDxWxB0Y20LwdzGeC4rl3iA8LhWqvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=qAxjKmyK6LEn4FCD1FmzgDvqjsljI1AsFjwzoHEM1Xc=; b=BfOC5zVLVNZpph5yxX+AkNRo/8mQ9kao+WdYhGyKMIV5KhO11mZceSg1IqTwdRM6shlhUwkCNsp/FPlhemmM1nr8zIStnw4D58x3Uk7U6HsFgVro+0lYdNG0Nk7rBHe6bxGu+52jo96oRU/gNK1JzT3Pn/8fUexchDJSZPcGcGA= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:38:27 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:38:27 +0000 Date: Thu, 15 Aug 2024 16:38:25 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 3/5] aarch64: Fix tme intrinsic availability Message-ID: <9a75a351-01ee-dc00-e482-2638c48dd4e2@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO4P123CA0377.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:18e::22) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|DB1PEPF000509FF:EE_|DU0PR08MB9875:EE_ X-MS-Office365-Filtering-Correlation-Id: b51fd200-4cba-4363-e1d9-08dcbd405429 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: 5Xzpmnz5XVPfJxlqX3a99qq9g4TkUDIuyG96oKKGwX/mfHUIwMEgCx2PlS5fxNFZQmhefrvQftgJROnOJdtNJbZskleyLVuj2Q2oGz2+SQeT3b/yWJoln6guW492UeczR54Fh+lqoY2EImOvGTpRCimUHJhV5kMU2ZJ7lWxLeyb0OgEq4iqToqqUqeYi2cjNcjRoRMh5DnY5WNDL/z5AIeYucDSF43IhJvd0BahMEvPQyIDn8FnYJCnOu3j8BcQCEW6YYf/mHD6sf95FpOw1PQIDG7XVXEp0OUjYnLD0ciid70X18kmzpQcmmx1jT36XqTuNfWWw2YKOfxuVUW6RsqaXcMQQ7MS5OZiFAK9Q4MZMzSErsmdeiMDrmziB7tWqumkkjKq82C5nIuC6SXPSOhk2KrbNLeNhazWjoX3evjUNeNahIv9aVk/lQ86vFhQa2LxOfp+QFJPG8G6kg43u3miaR+Rfc7eyvCNJz1gIeDSk41Pa6g7SHbq7vrHIygx8+YNlmRd7F8NrAW73+DwmiMTJbf0lBw0j5AAE9fJLLMoLiX6P4KtFVS0/4XcMSZn6XU7VTgphmpn7cuqOfg6NVvwEKrSzFc3MZ+YZSPnAGRLAOMOXFU0CVjXPzzg5sXioO2nCFUrFe5erkzr3e92/osLXsrvvkW/skDWSJRGQySUntHMUAemqHV9N19/PmgY3ZUaE2rF29Pz0nR5o3wPZz/lo/0hX5AQdRqy2L8ysu8VuzhM8I9BWxShp7Qq7WGU8kiaSs/lMrW7X9R/JPmPtS67MiqdXXpFowVrdjHv95GeRb+qBlf9T3aymstiBb5kymU+zGBp7+BXBJ3tjL9BlzTChb12QKgTKpICw5jO9xEiV0FrP6n6ewd5R4C2uzUnuVLBLL+2QcUwYVCp+IkF3x01utHBjrBnuOq4f9WoAsUfmIMe2czOb7/4RL55VrqdOWNOl4WUS/k3lqlK6YIcEcL/2HLW7XABMCdZfEVWFl8pAgaoIu6TgyRcHm+vgWhQ2DXQ/YSzH2ygIpi2wJY2rt+eS6ROwpiuecqnG09lkpF4PAv9Yc4hi84LJVLbrVviAQvGa7cwteF1uuOfrW1t2vTLLB4PjN62Abz44gewWCF8T1DrxvtvVLc2H3Z8GRFH1hqZXB1p5UxpxrwJxetINhm2liiVg4i8jygQOwfAh6x8nMNb0U/Hy1+juvopwgwUuQnLjX5TdYmiNmyybgUr+QaF7CHqWgc8419RBbtUCJkwx6+oHcvVRuXxiue7rkq0QeU9yzohQ/aZryO34uOA9WbItl9CqKJNO0zeZH25wPJFVLA6c4u7ofqFY8o6tRfii X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509FF.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0a47f856-50b1-4711-5fa9-08dcbd404e9b X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: jxe8C+jvVSGscnnNrf1fYCLR8/Jkwo9eJx5SzMNIDXnb39qK4Yg+Na14XObkexKdmEm2pUhBdc4wC4zsEQBN0stiZNLzwaqFuWqvcY5q6EUbenmuEOwQz+drCr7doxp1VocaP7LlSJrE2HPuoLAsakdUY7gKstQ93N/ZSuXLZ/6HeTeqMSz1CKlnrJN2hlvDqPMXVWR7snrc5hqecfCFW8QrFQFpspuYDi9RtYcC43I1wxgsvGmLU2gJd7wtFmPIwmU7MixsI9kOJlSZZDlj4WtBYJBcpD811aLE1SUckhcku67iE77Qwdrki7ZVE/3688D7zYahM7qu9aM08sEWneAcEM00d/6P9UAX3QGfaquojwyvTwvzhNmTCMZNKn8IjFNC/4gLgGT4YeX5bLnGu2NAThQ4dOjLZ2yTkDHWVbtm2EKTZ4oWvHyCxT098s+tPURnWEp1aneTHAsG0eMrNbsQME2CXzf1ti8S7Y5gzLAlRts99ck92SAYwFCUoQocmxH2do2wB8GpbdYK1I7cKfh2xtb5fLSR9YL3A30sR67kqiB8Ecs4rS1Mw4JD+Xmn9KwOQRzn5N4VfSbNPNpwEvO2CkpH6FR9s9I7u/jRGYc6itKOaiSF2OeTs5v+l5KmLfUeslO9WyY/h8zY5bHn1Sh2ubRYyTpnFlB/Qe/7+muB4TYUwA/OdA2B7u1URsKlshFWF9Uq7U2N19yilBjQgrXV4WqfpUbA+vFn3gY+lBJkqm12XExnGN8Dnc+Rds8jhuGaKNezb+tsROKG5P779D5ifL5aJ2SS/FbVn7BDbGnb0Xd5ih9GE6yPlfq+DckTMd1/2SJebaTa1aVIzwEnY9eaF7ABw/ENJobuDFaLKB8ZB4S6ij3ukroWAm99Ax8A/B7boKZFYycA1mXplYwH0ipKHH6Q4Mbv4SITtUhJrmGskwm7b7HcS6kb7ajqW5IJYNlNXOw4A0Fe+ZEcK0ArquZsIf+xT6xfG7xoCbuMkJH1MQAw6lSB41KZxtGkmTv202B8sPGxD4UnrTugzYrn1ClSRwWgugn4BKJDGC7WP79fqbqz3le1KDgxh7+Mqr9QtMGd8mL6NePPWs+qAdH0RxsgEuv1PozwjJV/+FWOfeifrohAKrczOlD5BWqWduLXIil+eKugK7ppypmtcR0JoHFiHdOQa/+WLjD9zKYesLfPBHjs6lLSL7IeHxNp9pUZYziljq8jIwySgFDn0qhmiQRmPJQ7dRCTjkOr2cpBTbR0fTOx+82Vgu2BO6NtVH1C9dJxnoahb0APGT5RF6ncBTPqcGDwo5EXS+ytDjiQ0f5kzz+UAPw9RuPNla1NkoMZdSHT2YCIkRDPFHiMuOH7HqKeMDtux14jHqSnZO+OjhexhIAL9GztLDDhprtl7r+0C9aM4kDfCDtdHXZRjDZD0w== 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)(35042699022)(36860700013)(1800799024)(82310400026)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:38:36.6886 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b51fd200-4cba-4363-e1d9-08dcbd405429 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: DB1PEPF000509FF.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9875 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 availability of tme intrinsics was previously gated at both initialisation time (using global target options) and usage time (accounting for function-specific target options). This patch removes the check at initialisation time, and also moves the intrinsics out of the header file to allow for better error messages (matching the existing error messages for SVE intrinsics). gcc/ChangeLog: PR target/112108 * config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins): (aarch64_general_init_builtins): Move tme initialisation... (handle_arm_acle_h): ...to here, and remove feature check. (aarch64_general_check_builtin_call): Check tme intrinsics. * config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel) (__ttest): Remove. (_TMFAILURE_*): Define unconditionally. gcc/testsuite/ChangeLog: PR target/112108 * gcc.target/aarch64/acle/tme_guard-1.c: New test. * gcc.target/aarch64/acle/tme_guard-2.c: New test. * gcc.target/aarch64/acle/tme_guard-3.c: New test. * gcc.target/aarch64/acle/tme_guard-4.c: New test. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index a07adcee6e266c947855041ed7432085f6448836..60e4c217921bc1144bfa436a168a4a1dc194f44e 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -1791,21 +1791,17 @@ aarch64_init_tme_builtins (void) = build_function_type_list (void_type_node, uint64_type_node, NULL); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TSTART] - = aarch64_general_add_builtin ("__builtin_aarch64_tstart", - ftype_uint64_void, - AARCH64_TME_BUILTIN_TSTART); + = aarch64_general_simulate_builtin ("__tstart", ftype_uint64_void, + AARCH64_TME_BUILTIN_TSTART); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TTEST] - = aarch64_general_add_builtin ("__builtin_aarch64_ttest", - ftype_uint64_void, - AARCH64_TME_BUILTIN_TTEST); + = aarch64_general_simulate_builtin ("__ttest", ftype_uint64_void, + AARCH64_TME_BUILTIN_TTEST); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCOMMIT] - = aarch64_general_add_builtin ("__builtin_aarch64_tcommit", - ftype_void_void, - AARCH64_TME_BUILTIN_TCOMMIT); + = aarch64_general_simulate_builtin ("__tcommit", ftype_void_void, + AARCH64_TME_BUILTIN_TCOMMIT); aarch64_builtin_decls[AARCH64_TME_BUILTIN_TCANCEL] - = aarch64_general_add_builtin ("__builtin_aarch64_tcancel", - ftype_void_uint64, - AARCH64_TME_BUILTIN_TCANCEL); + = aarch64_general_simulate_builtin ("__tcancel", ftype_void_uint64, + AARCH64_TME_BUILTIN_TCANCEL); } /* Add builtins for Random Number instructions. */ @@ -2068,6 +2064,7 @@ handle_arm_acle_h (void) { if (TARGET_LS64) aarch64_init_ls64_builtins (); + aarch64_init_tme_builtins (); } /* Initialize fpsr fpcr getters and setters. */ @@ -2160,9 +2157,6 @@ aarch64_general_init_builtins (void) if (!TARGET_ILP32) aarch64_init_pauth_hint_builtins (); - if (TARGET_TME) - aarch64_init_tme_builtins (); - if (TARGET_MEMTAG) aarch64_init_memtag_builtins (); @@ -2285,6 +2279,7 @@ aarch64_general_check_builtin_call (location_t location, vec, unsigned int code, tree fndecl, unsigned int nargs ATTRIBUTE_UNUSED, tree *args) { + tree decl = aarch64_builtin_decls[code]; switch (code) { case AARCH64_RSR: @@ -2297,15 +2292,29 @@ aarch64_general_check_builtin_call (location_t location, vec, case AARCH64_WSR64: case AARCH64_WSRF: case AARCH64_WSRF64: - tree addr = STRIP_NOPS (args[0]); - if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE - || TREE_CODE (addr) != ADDR_EXPR - || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST) - { - error_at (location, "first argument to %qD must be a string literal", - fndecl); - return false; - } + { + tree addr = STRIP_NOPS (args[0]); + if (TREE_CODE (TREE_TYPE (addr)) != POINTER_TYPE + || TREE_CODE (addr) != ADDR_EXPR + || TREE_CODE (TREE_OPERAND (addr, 0)) != STRING_CST) + { + error_at (location, + "first argument to %qD must be a string literal", + fndecl); + return false; + } + break; + } + + case AARCH64_TME_BUILTIN_TSTART: + case AARCH64_TME_BUILTIN_TCOMMIT: + case AARCH64_TME_BUILTIN_TTEST: + case AARCH64_TME_BUILTIN_TCANCEL: + return aarch64_check_required_extensions (location, decl, + AARCH64_FL_TME); + + default: + break; } /* Default behavior. */ return true; diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 2aa681090fa205449cf1ac63151565f960716189..2d84ab1bd3f3241196727d7a632a155014708081 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -252,10 +252,7 @@ __crc32d (uint32_t __a, uint64_t __b) #pragma GCC pop_options -#ifdef __ARM_FEATURE_TME -#pragma GCC push_options -#pragma GCC target ("+nothing+tme") - +/* Constants for TME failure reason. */ #define _TMFAILURE_REASON 0x00007fffu #define _TMFAILURE_RTRY 0x00008000u #define _TMFAILURE_CNCL 0x00010000u @@ -268,37 +265,6 @@ __crc32d (uint32_t __a, uint64_t __b) #define _TMFAILURE_INT 0x00800000u #define _TMFAILURE_TRIVIAL 0x01000000u -__extension__ extern __inline uint64_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tstart (void) -{ - return __builtin_aarch64_tstart (); -} - -__extension__ extern __inline void -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tcommit (void) -{ - __builtin_aarch64_tcommit (); -} - -__extension__ extern __inline void -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__tcancel (const uint64_t __reason) -{ - __builtin_aarch64_tcancel (__reason); -} - -__extension__ extern __inline uint64_t -__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) -__ttest (void) -{ - return __builtin_aarch64_ttest (); -} - -#pragma GCC pop_options -#endif - #ifdef __ARM_FEATURE_LS64 typedef __arm_data512_t data512_t; #endif diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c new file mode 100644 index 0000000000000000000000000000000000000000..9894d3341f6bc352c22ad95d4d1e000207ca8d00 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a" } */ + +#include + +void foo (void) +{ + __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c new file mode 100644 index 0000000000000000000000000000000000000000..4e3d69712b14a8123f45a2ead02b5048883614d9 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-2.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a" } */ + +#include + +#pragma GCC target("arch=armv8-a+tme") +void foo (void) +{ + __tcommit (); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c new file mode 100644 index 0000000000000000000000000000000000000000..5f480ebb8209fdaeb4baa77dbdf5467d16936644 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+tme -mgeneral-regs-only" } */ + +#include + +void foo (void) +{ + __tcommit (); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c new file mode 100644 index 0000000000000000000000000000000000000000..bf4d368370c614ffe33035d9ec4f86988f3f1c30 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/tme_guard-4.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+tme" } */ + +#include + +#pragma GCC target("arch=armv8-a") +void foo (void) +{ + __tcommit (); /* { dg-error {ACLE function '__tcommit' requires ISA extension 'tme'} } */ +} From patchwork Thu Aug 15 15:38:48 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972843 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=pFJsOjyv; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=pFJsOjyv; 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 4Wl8SM5mPZz1yXZ for ; Fri, 16 Aug 2024 01:39:31 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 991F9385AC29 for ; Thu, 15 Aug 2024 15:39:29 +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-db8eur05on2062d.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1a::62d]) by sourceware.org (Postfix) with ESMTPS id 5A12E3858D34 for ; Thu, 15 Aug 2024 15:39:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5A12E3858D34 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 5A12E3858D34 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f400:7e1a::62d ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736348; cv=pass; b=h1f1JCdLsEzCPcZx4Ne0csUBGF5qG6AuUbvO7EO30S9/fkrybwG7GhC2NRxs0jmOu70tXtW2o7Ui7W8XrgQKGpXUX2udIW3OkBzNQws+KWRCiuq15tanaugep+g8BzUfzV5mWRC70HJQVSmUfDsmfUEkQCa0sOOyt7iICxomwis= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736348; c=relaxed/simple; bh=9KJnZ8OOVx5/2EKIJ4LxqXghgjwZWaBM1Fd9LIXJtNs=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=o3GxwV2eQKJs6C6BpDJdOI0XdGrM71UBt9nvo4GjpkCgY0c19GQQ96xmIFLAShS8QMcJFllyMElDQL/cEkgyNbAsfW51rys5epDSbu37iQrt7YJD6X2JYaRPX5Rqk1hjlZeKyDWONK4fsWRksPvrWvMDEz3pJhfZZ4d2N5TYw7I= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=MeHbG8QrXDDWHtvJQl+YBYrDtgkD8YIREUf4613QUPadzZ5zkhybicfTvHpjEotNuhg+Iq1O0HS3IrlV7oPQzFGJjuxeUJyxpYLluYjIGxJpDZZPZaV1wP6fdzoeXqrwnW55pwm9Pva7qbC7Y/7QU3vb9OpReAhz+vhPQW2TS+Q3adnfyUImkTe6D8leyaa1ipJWAY+drnTvPEnH8Cj0x8/cnG9lsr2E5gOp5cmehHQeXNwen2gisYk9dZMTPXDTj01SNvW0Da9Ler/pc22uA9gV2bGvEc8NpYcUKhabsSbqjBW0Vt2+tqztqDRB9D3Jrk/OwvN8VJswKOX0B7vuHw== 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=s/MX8o9fpyIeHYZsUGf8AQrXkoGHfwtRkESnmz5ybKwmHkj38ZdXrTZtJDMW3S8dEP8JrwTNys4prgVWFvSUQkT2GqEXas68OnAKYr5s7Q/2gSP7KUNa5IytwTf7GM1y9urdDUi65vkOOo3k04dWQ7vJ7/eM5WlWI4M+a5X9ZmFCEjzBRs32+d/hssw1li3WuE15t/AayVsyYAdPQliFHAji32vDZTrSOkIEVkKAwsmbXC8gbG1Uw3R6Yjq2aVk8UtkNR63bjQQJyE6JbutRfYKRv6Mev7MPnIb93WlgKV7n82S7rBzMf+eJqqYK4KfWpOc+LEFxUk8R5GLVIolapA== 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] dkim=[1,1,header.d=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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=pFJsOjyv5/kQxP51ZCexXoHO8d94FgcQLTxXijF8o+78eHhxaHQZv8q564bIpOLTfWxQx+sgmbZgSKEm1e19te8EwB62Fowov/+cRz/ycrSoGLQG91XgHoI8T/LPgAU+YUvhWILQJEJEnXSuo/ttnp84vQuNfJdWwRftsVp/s7A= Received: from AM0PR03CA0106.eurprd03.prod.outlook.com (2603:10a6:208:69::47) by PAVPR08MB9082.eurprd08.prod.outlook.com (2603:10a6:102:32f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.9; Thu, 15 Aug 2024 15:39:01 +0000 Received: from AM4PEPF00027A68.eurprd04.prod.outlook.com (2603:10a6:208:69:cafe::71) by AM0PR03CA0106.outlook.office365.com (2603:10a6:208:69::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:39:01 +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 AM4PEPF00027A68.mail.protection.outlook.com (10.167.16.85) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:39:00 +0000 Received: ("Tessian outbound a00430d51899:v403"); Thu, 15 Aug 2024 15:39:00 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 66507535412a77e1 X-CR-MTA-TID: 64aa7808 Received: from L6423e1b30b2f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id EB68804E-4D84-4591-BDCB-EA02454AE06D.1; Thu, 15 Aug 2024 15:38:53 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L6423e1b30b2f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:38:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eaVTQUE/qCQGLZX4GBYSzvgs3/1gVMewpHFuS56kXK4MlUBoQ7sCOVwpjZF/1yuvn/ixzlSQO6ctxFQH8DOx1kdxj/+VyAT3cHm2VjqcS1CXB3ymIr46fEZgw4XpIrl0cslekhsEPSIWPgevAtMPrTT66IsUZhCBuEhMIE9RSWADu+NrIFvjQsVpyubDBmIM8ZE063lCTNqO85g3wAWAwzuBCs/BwvHLXpaIhMTt88cdPkqzzHt4znPf0IfoaG3oAkGJ9azYEtWHEDyfZ05AbJZovIkWHA1ZNYfOyQzXV03JYcJ6y19h7MPc9wboGSAUJ0ACGXUl89y7mszGHJ51GQ== 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=gJDsZPwJULMnA6kd108dDypPqTjiUN5Mx7k1JVpAT/0NTFL3YYBb9VyrFT/suy3tv5Ab3m5ULcksI58SI6/QxDAgEdvfGFRMTXTcjo7WlMtUSRkfsgsdIg2/w7GR7V84ZkNKSySrXT0RQlDo/O64+eBnTc+I3/HH0eyDXxaELuH2rzz9C2CKlwwLO769KJiR1m7FgYXsE3oeMUYVhM0cz1Va5jHXSm8/Rgxq2aURxn4EiMmK2Ukf8jvtydknk5kr4H+YSSGdmjS7HqlXZi76qAgkDAHbFhAmues6moW8ReTMVxfx1Jo/r7e4Js28lX0nrCp2bRGItSC3yjrdqaHYpA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=RxLwGpfRzGLRZvdnaWrFWPLf5Z+QDp6nEs53FXAZZPQ=; b=pFJsOjyv5/kQxP51ZCexXoHO8d94FgcQLTxXijF8o+78eHhxaHQZv8q564bIpOLTfWxQx+sgmbZgSKEm1e19te8EwB62Fowov/+cRz/ycrSoGLQG91XgHoI8T/LPgAU+YUvhWILQJEJEnXSuo/ttnp84vQuNfJdWwRftsVp/s7A= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:38:51 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:38:51 +0000 Date: Thu, 15 Aug 2024 16:38:48 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 4/5] aarch64: Fix memtag intrinsic availability Message-ID: <1e834fec-37b7-b732-4775-d6db54d7dd83@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO2P265CA0510.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:13b::17) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|AM4PEPF00027A68:EE_|PAVPR08MB9082:EE_ X-MS-Office365-Filtering-Correlation-Id: 7bd20a66-1bb8-4ca0-fa5c-08dcbd4062a0 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: cOnbkyH4ZChLhs60rFqFF3P31X3S+ua58IKbXFYCC+r3wKd/BRqVxM7P2OYUK6x/V4jxQLbZ14BNT8LBbPCTTP3oWMybCJPCr7FlLCWPfJFFWhhiX2hTw75VzjeH2pgckypDQCq56MdBKDF2h1gSvufA3MsbeaX30J2E/r0QPkO24Ow6BRiVpTHKtAh7gIXqvURcj/GqKTeI1AnnkB6lH4DSo7cUEzPHz8QYeKAUMN3DxNCB1jCYjT9jOw0ydZHl5O01d7tpF7EmT253NU16YBLDI+yi7DfYEfujpDKqkAeEkUTv+eo3S6Ztld8T5hfnsDmswn3APOCI4+3eiLwid84wviYvB8dxG1hQ21nlr07BootXem+MNljYzWqjgpvZedtOfBoQBWp8GYVSGpM2faQku4wv+EipWnkM41AVYp7a26QHemxxqNUbs/jR+3IBwAFPWC+HIEbPssnIvM8z8Tf+/W9ANDEgwyGuKE0Q66rte1ONB9TKEk6VmKaD/D9T4uZdPAU85CO4B7W8YVx9yO6ZK2bqH6vjN6LP4gsG0jIeWxe5rde+6ExxuQZxnLLk+gh3HOZeQAYWMXUz5KDsIvIrNx5DLzb8Dg0GkklycmqtMuKAWnWWeFJGEMlArqGyJ54cnelPlHz7KaI4OqmoxKOymWgKzsT9s3evG3XjnJ5fbRxkjSvocfWqzQ0yi8JScTwxVNUL1Oa8zYspRK7Z2YnuqYGQOZQ3o9uBZI9Jb6AzS/X1DCxDxBSf+FOfXfI4FEATTJ4XORs5eXPXi9kvYG2/6uapDyQpeH9FOZrpEJA3JqeNfejAHwgEzIEoou5Cx99Q6NXiPeRIgX/EaR0YAKxCvJosZr47zVeNEe3q3B9YWkGUJfqtckYnf4drEQN+dGRWx1lXBxFmIYEhuA3g3ooLXzqX+TSV44BjHIaVOk/txq7HQzD5D98L/VKLgA0/QbSnJlLWdF+scvwD5CC8ql8sqUAd3qYBlwmBYp5NHfo4qTRM7zjDwSmNE77TivZWSefHQdCgW4q7JXG9Fr6VwGatLalf9cMFjnbqat3hkTzDTI/qspdCAIh2HdvjcMUWDlV4d1dyiW36JxIXc17OXNsCo98Vg/OwCihbeJqEZj1886i2AT8W/sWxgfHVivOINcvwALwEDeQod0F4JHus60xoXIArrI4yjqpQI3vfUIcrm+MMWejhpB3wJXRp8WomF2HtK9IAuryqfTbUKrcPO22xMBkKq0HzO3x5QyQi28+c6GKTMcnJlrUoxoPJqCXbKqkAQ2lK0seriSVivOmU98wimBquct/CMA4TVXSAoEF0U6+vwFNlPl/ezgvT2wyv X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM4PEPF00027A68.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 2c0e0b95-5bb5-40af-9adf-08dcbd405c78 X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: NnrKfdvtrXmM/DSY8aF/yzElrAolM7Pqo5JA03efT0cnvmuRLOzSCcKD4TJ+dV5rUSPxrevev5X0JKXIjqQuUV5TqVdYd1x+Wv8SHxTyCJhWtu2q2l1Z5XQ8Eh+iP8kntwkfbvPQVXAGS74MuPCdB2al1ZeejsikiPZg9ReltoC8DVAxH8eiVKK/STYZ/iq+eQKhIPCXsAe5pmMc3NOEQAao5XDMWKjx/NP2bSlPzlr+R5ByGdOAAPEV8iwolmhnQAJ/bBY978zMU8WkZ2hi+siqBBJhY2IV7ktxo0/tAumNCZIOlvlECYC3Zn3PC5fkkHAxfC2CFR+9Q0XCNyGB4cVzXXZ+JM05CU4z06fkZgYXKw2lDSQlg0zckebdfya/73U6x3Nchut4vE2yfacBDtZwPOsfR0UJkdJzyctZx65Vu5cqhL+brrO37FEd7ekpzxesJJTD4E8twWNUjw9QjeYtUIL92OzgC70GlHAktlpH6RDdstcpC/M3jLuevRKbp6B9xX47rB/ZY1zJmueMsH0tkCUfL/wG+kBzaunoGX++JUp99Pbvign9nBbaMzuC+zbMCZ7R+6G6bbLxiR6iKTxO3ITRSPKyaBRF58qIW5Fd+fL3EG5k4/wzAiQ6A8iAMe8EPg4TCM1XKfr0m//bXq45bfI/TYGv6SJVGDJAggssus0uPtISHtKCatalkBg6N8rU31y3xpO2sCOAh1BxAyUxswS7Ef8NtmfkFg6YMH3hKCvo5DgxItAXSEtAjuRxjOzW2Bqm5K5Om+DsTJm0yRxMqdtakxzR8FvAAAOPU9h/bV5Rhdf3wGJUJGB/MQyaqF/1cn83oh4sTGn/WzMXhgfCObO4yB23sF7DNdh3x3BPs68CuZW8jyPzN/VOljMIe1vGQbmfwHH34OrmEKCPLcl4Q6Sx9lle7X6rHEJ/HulhtyUqxp1zD5UiucOXqfZCfohu2exU87J49NiQ5nlTP6qMHjkVOr+j6mHV8GmzumW3zwcRLsNY3Wq3inGYjCMN7ybkYf3rue9m7KvtkFfwriL1pb7w9LOII3PdamSY0aNUleMeCbR7A0gPrKdudA1hgPA4dygCjR390VPsf3/L8jjS0ia4sc0mYLRfCudQusiKcO1C0C53yKbEEZXF0+c9QiHp040sbi8vBvm1v+71L4D1lReXu449+cYXd5ESaOvkEmNIgJJ7GsGVS9BKUo6g6BxrwrSKkfk2MGcZgnPSTNW77rry8ju/hq72i3GrPhr206Lk9+oc5Fkby+/9fccNcamIGpXjC3uWQUaO8xfgx9cRtBswDfAvBUjy4yNztyCUACp+U76aduVJ2wJ1ZzyawPBjTbVuw38ukwtIXmUXSFvdW8CKWH8dEUZf+vCUUQdMUS1uNG7GXz1h2v5GL6o9HLedpbcdFuDXSR2LpjfSkg== 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)(35042699022)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:39:00.9416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7bd20a66-1bb8-4ca0-fa5c-08dcbd4062a0 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: AM4PEPF00027A68.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAVPR08MB9082 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 availability of memtag intrinsics and data types were determined solely by the globally specified architecture features, which did not reflect any changes specified in target pragmas or attributes. This patch removes the initialisation-time guards for the intrinsics, and replaces them with checks at use time. It also removes the macro indirection from the header file - this simplifies the header, and allows the missing extension error reporting to find the user-facing intrinsic names. gcc/ChangeLog: PR target/112108 * config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins): Replace internal builtin names with intrinsic names. (aarch64_general_init_builtins): Move memtag intialisation... (handle_arm_acle_h): ...to here, and remove feature check. (aarch64_general_check_builtin_call): Check memtag intrinsics. * config/aarch64/arm_acle.h (__arm_mte_create_random_tag) (__arm_mte_exclude_tag, __arm_mte_ptrdiff) (__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag): Remove. gcc/testsuite/ChangeLog: PR target/112108 * gcc.target/aarch64/acle/memtag_guard-1.c: New test. * gcc.target/aarch64/acle/memtag_guard-2.c: New test. * gcc.target/aarch64/acle/memtag_guard-3.c: New test. * gcc.target/aarch64/acle/memtag_guard-4.c: New test. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 60e4c217921bc1144bfa436a168a4a1dc194f44e..9c6d9ec7537e7c473dc42a27a7737d80aab9cddb 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -1932,27 +1932,27 @@ aarch64_init_memtag_builtins (void) #define AARCH64_INIT_MEMTAG_BUILTINS_DECL(F, N, I, T) \ aarch64_builtin_decls[AARCH64_MEMTAG_BUILTIN_##F] \ - = aarch64_general_add_builtin ("__builtin_aarch64_memtag_"#N, \ - T, AARCH64_MEMTAG_BUILTIN_##F); \ + = aarch64_general_simulate_builtin ("__arm_mte_"#N, T, \ + AARCH64_MEMTAG_BUILTIN_##F); \ aarch64_memtag_builtin_data[AARCH64_MEMTAG_BUILTIN_##F - \ AARCH64_MEMTAG_BUILTIN_START - 1] = \ {T, CODE_FOR_##I}; fntype = build_function_type_list (ptr_type_node, ptr_type_node, uint64_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, irg, irg, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (IRG, create_random_tag, irg, fntype); fntype = build_function_type_list (uint64_type_node, ptr_type_node, uint64_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, gmi, gmi, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (GMI, exclude_tag, gmi, fntype); fntype = build_function_type_list (ptrdiff_type_node, ptr_type_node, ptr_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, subp, subp, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (SUBP, ptrdiff, subp, fntype); fntype = build_function_type_list (ptr_type_node, ptr_type_node, unsigned_type_node, NULL); - AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, inc_tag, addg, fntype); + AARCH64_INIT_MEMTAG_BUILTINS_DECL (INC_TAG, increment_tag, addg, fntype); fntype = build_function_type_list (void_type_node, ptr_type_node, NULL); AARCH64_INIT_MEMTAG_BUILTINS_DECL (SET_TAG, set_tag, stg, fntype); @@ -2065,6 +2065,7 @@ handle_arm_acle_h (void) if (TARGET_LS64) aarch64_init_ls64_builtins (); aarch64_init_tme_builtins (); + aarch64_init_memtag_builtins (); } /* Initialize fpsr fpcr getters and setters. */ @@ -2157,9 +2158,6 @@ aarch64_general_init_builtins (void) if (!TARGET_ILP32) aarch64_init_pauth_hint_builtins (); - if (TARGET_MEMTAG) - aarch64_init_memtag_builtins (); - if (in_lto_p) handle_arm_acle_h (); } @@ -2316,7 +2314,12 @@ aarch64_general_check_builtin_call (location_t location, vec, default: break; } - /* Default behavior. */ + + if (code >= AARCH64_MEMTAG_BUILTIN_START + && code <= AARCH64_MEMTAG_BUILTIN_END) + return aarch64_check_required_extensions (location, decl, + AARCH64_FL_MEMTAG); + return true; } diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 2d84ab1bd3f3241196727d7a632a155014708081..ab04326791309796125860ce64e63fe858a4a733 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -287,29 +287,6 @@ __rndrrs (uint64_t *__res) #pragma GCC pop_options -#pragma GCC push_options -#pragma GCC target ("+nothing+memtag") - -#define __arm_mte_create_random_tag(__ptr, __u64_mask) \ - __builtin_aarch64_memtag_irg(__ptr, __u64_mask) - -#define __arm_mte_exclude_tag(__ptr, __u64_excluded) \ - __builtin_aarch64_memtag_gmi(__ptr, __u64_excluded) - -#define __arm_mte_ptrdiff(__ptr_a, __ptr_b) \ - __builtin_aarch64_memtag_subp(__ptr_a, __ptr_b) - -#define __arm_mte_increment_tag(__ptr, __u_offset) \ - __builtin_aarch64_memtag_inc_tag(__ptr, __u_offset) - -#define __arm_mte_set_tag(__tagged_address) \ - __builtin_aarch64_memtag_set_tag(__tagged_address) - -#define __arm_mte_get_tag(__address) \ - __builtin_aarch64_memtag_get_tag(__address) - -#pragma GCC pop_options - #define __arm_rsr(__regname) \ __builtin_aarch64_rsr (__regname) diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c new file mode 100644 index 0000000000000000000000000000000000000000..4a34c37f44fae590d2a3f947dd1bf404fe8261fa --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a" } */ + +#include + +void foo (int * p) +{ + __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c new file mode 100644 index 0000000000000000000000000000000000000000..bf06b284dadd2082496cfc0a345f7cf5a783bd3b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-2.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a" } */ + +#include + +#pragma GCC target("arch=armv8.5-a+memtag") +void foo (int * p) +{ + __arm_mte_set_tag (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c new file mode 100644 index 0000000000000000000000000000000000000000..1f4ffa454a763e6b35bd84af6ef6c7d6474a518b --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a+memtag -mgeneral-regs-only" } */ + +#include + +void foo (int * p) +{ + __arm_mte_set_tag (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c new file mode 100644 index 0000000000000000000000000000000000000000..a1cd45ec79d242dcf710abdc375c29063866eb5a --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/memtag_guard-4.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.5-a+memtag" } */ + +#include + +#pragma GCC target("arch=armv8.5-a") +void foo (int * p) +{ + __arm_mte_set_tag (p); /* { dg-error {ACLE function '__arm_mte_set_tag' requires ISA extension 'memtag'} } */ +} From patchwork Thu Aug 15 15:39:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Carlotti X-Patchwork-Id: 1972844 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=LibYRYFn; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=LibYRYFn; 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 4Wl8TG4Jmlz1yNr for ; Fri, 16 Aug 2024 01:40:18 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E20C0385842C for ; Thu, 15 Aug 2024 15:40:16 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on20601.outbound.protection.outlook.com [IPv6:2a01:111:f403:2613::601]) by sourceware.org (Postfix) with ESMTPS id 2DFE63858431 for ; Thu, 15 Aug 2024 15:39:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2DFE63858431 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 2DFE63858431 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2613::601 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736366; cv=pass; b=vr3kuH9Mbxya9NlirsvRHp5OdNqq3XX5Xai6zzXO/Rg5okxmdRK0OGMww0RaB1GoSUzf27uxAq0BHmFcJYhbkYVscD6PN2I0nqgjGbW72dKZq4zWipqJGB2wvBZgqVGc/NgioEx+4/85uBfSCEPTJ12SGkQP1ge2yCLKNyBWfHQ= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1723736366; c=relaxed/simple; bh=7gtLONzcdIam48q5dO0U3Tvu0BBZ1qEuoMxVyrSUY2I=; h=DKIM-Signature:DKIM-Signature:Date:From:To:Subject:Message-ID: MIME-Version; b=qcOjJJlRXx1eGW0mGvtZT3l9ndgZ/+eglkwEBF+qQjYMJrZmWRrbrSJ1JumM3dGdffbfmYcU6Dh2+KNdxzVF7rHyEaroVWnJ4e7urb7pHqg4QaDQiEqP/2Q2WhlDBXb0N86/bao6NqcR5R2KvMJHbe1txFFdSJklhr5SqgJGKcg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=xQfc378bCMinOyx8TOwKqp0N1SNcrQcyzYaLTnuNwMLWgvPsQ7ryZBrYG0rDzqSuXXSTX4A0dIHfxZe+K2QKHsG5l+7gqZnJFA2z/I8SANkZSvR7LKmt0kMIagB0f/OROyKYqbtg5OU0JQ1UGcncAMPPZH+dXXyzpOG69pXFRLAb/QXbtSCu/DYPS9VK6OYdYpzPsbe85a7McJhmfJE3j2GRjlFpQFBLWHqa0lR8r8lLfzQvXCtCHnOFBtIjfkO2jTNXG2dUAyAgruyz7yOFq/amYwa66SdQPspwMOjsDpnXAIcr8a29nQ40pUGarEy1NwVFtoW4VxtMae32jI5OEA== 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=ZqCpDo75utA49NiEYSyAn7ZtUoswUPcXWg9pQhXQg6g=; b=WQ4RTG3TKzC1hbcYnGjrMjLNydzpckAybvQHOVb94p+NE+MN1/NsAQ6OKqBMM7/+tKjqhzQXaNyF9as84C9wSEqIdTNcLkAKCKHaUt5350HbKOGjLMvirThn2HrG2NtmMPWqcg05GmKTJtbjJZfXBDloQ/KexlozNCdRFPkESLuBLDDYp3CaP8erd0f6D3vM3MxdwrZYZAtpJAzPNAzx7jSp7vYrzOheFs20V6cBU00HnAuD2YLlGea62tjLqx3aeJl41leDzAJztRdFDf9G838AxskqUjP8KI0U9ZIn/IPgYUOhN68dtJCipp04D/wH26CLCWbF5Qm5sYyfI3K/Gg== 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] dkim=[1,1,header.d=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=ZqCpDo75utA49NiEYSyAn7ZtUoswUPcXWg9pQhXQg6g=; b=LibYRYFnh6o+Pb0jR+p4ByN8AqyUF+mrm4TAp3LZfYteCiAT4sg+yTqQWvJn90PM0//X3psUWzhOk45xrMB9JLrbw2CtxxXS6lvCzOoHXzEhwT55AAXtg5EGZZCeTa26OTNfP4FGsOH8/zJItw1gmzEgRa5RHKHFbTq/XSJL724= Received: from AM5PR0101CA0004.eurprd01.prod.exchangelabs.com (2603:10a6:206:16::17) by AM9PR08MB5922.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.9; Thu, 15 Aug 2024 15:39:18 +0000 Received: from AM2PEPF0001C714.eurprd05.prod.outlook.com (2603:10a6:206:16:cafe::cf) by AM5PR0101CA0004.outlook.office365.com (2603:10a6:206:16::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.19 via Frontend Transport; Thu, 15 Aug 2024 15:39:18 +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 AM2PEPF0001C714.mail.protection.outlook.com (10.167.16.184) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7849.8 via Frontend Transport; Thu, 15 Aug 2024 15:39:18 +0000 Received: ("Tessian outbound 1d2b3b5e3ba0:v403"); Thu, 15 Aug 2024 15:39:18 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 59401edf57bb9495 X-CR-MTA-TID: 64aa7808 Received: from L6904029e1497.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 05775BFC-72E5-4D66-B414-CC601FBC1FB9.1; Thu, 15 Aug 2024 15:39:12 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id L6904029e1497.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Thu, 15 Aug 2024 15:39:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Lam81eK55T69GsyqzK5eIA6AG+kNuR+n38mpCfSPZo5EHzoW2QBe1f4G/oIOtaYfwYSbsbIlAwg0iSVtCUTDEOU2C1JGgw2ljo+zZWC3puP0NNOjvKfmbOvDrqggjbCLtSv9bgy2vxP1y+8TsR7zINYmUjQa7e++XwpP7dg1xpWXUdjQiteA8Wno5Szwu2YKMttcoop5syKkvFrxQwaqgr0o5ORXVW62OuPA/5v0Ijzrn7Mv4ygsp31SditJhDwuyyBMyAC43Keo7o9AccC5MwG9ID6G3UPJKESiL+a1EsytT/+OWRdL9v4AOlA6PRGt0BVnUYyRUjrF4Qg2VzIUVA== 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=ZqCpDo75utA49NiEYSyAn7ZtUoswUPcXWg9pQhXQg6g=; b=NuqAeCGBnLzVIisV8fipn06YTYfIAomEhS21pU7IogbRm+vcjLGptDco8xLsHg70L6HA4o5Kfd9HUh6c69BehUsh59CbdWE7319L5APud+ZNQA/tMO7trz/zP3NXGubxrbXoGVTt6a/z95OurgkXs7XeKDMa4R+Gf4u+v5YWjI03N0spiGJAZeLEH1w84EuYoik3ETmCqz4W469NHnm04cZvd91g/ETlBmv/lQqFy8OtI6agUSP3FODWWcIZRoe+sPbpi2gLyHcdMZoJQLfkn7PGm1WZy22nYFPI/TSO8JUcikI0MeulkInPgmItWY+7Su73+CtwKVo2RADwAkUQ5Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none 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=ZqCpDo75utA49NiEYSyAn7ZtUoswUPcXWg9pQhXQg6g=; b=LibYRYFnh6o+Pb0jR+p4ByN8AqyUF+mrm4TAp3LZfYteCiAT4sg+yTqQWvJn90PM0//X3psUWzhOk45xrMB9JLrbw2CtxxXS6lvCzOoHXzEhwT55AAXtg5EGZZCeTa26OTNfP4FGsOH8/zJItw1gmzEgRa5RHKHFbTq/XSJL724= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) by DB9PR08MB9466.eurprd08.prod.outlook.com (2603:10a6:10:458::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.16; Thu, 15 Aug 2024 15:39:09 +0000 Received: from AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29]) by AS8PR08MB6678.eurprd08.prod.outlook.com ([fe80::3b48:ae45:5b79:cc29%5]) with mapi id 15.20.7897.007; Thu, 15 Aug 2024 15:39:09 +0000 Date: Thu, 15 Aug 2024 16:39:07 +0100 From: Andrew Carlotti To: gcc-patches@gcc.gnu.org, Richard Sandiford , Richard Earnshaw Subject: [PATCH v3 5/5] aarch64: Fix ls64 intrinsic availability Message-ID: <8e467116-e6e8-f0fe-7699-3cfc30cc72e1@e124511.cambridge.arm.com> References: Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO4P123CA0159.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:188::20) To AS8PR08MB6678.eurprd08.prod.outlook.com (2603:10a6:20b:398::8) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: AS8PR08MB6678:EE_|DB9PR08MB9466:EE_|AM2PEPF0001C714:EE_|AM9PR08MB5922:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b10d2e4-09ec-4400-2137-08dcbd406d34 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|366016|376014; X-Microsoft-Antispam-Message-Info-Original: 1HudGyN6EQzx4XdMCkbuXN5XAYH3LlhviJnx7CEcPZPKlktZ9gXF4/xOhfPhUgxmcV/qtL+5D4yBRZfyyS2B6Cq/R8MkqTrvopEaoz6bXY9Qn4iCizq/hfUXEOEp1bgQA6PyoUybSi/94PQ5z9d7wtIzXhkiNmZ6fvHHfvsOK9PG9rU3+CsHEIlG3vkLpxY8jDZ3gGQrTnLF1SXUsO42zMMx3PPU/RxhP8rNkuAKhnKT0WhxXt8khNeTJWE2uldBx3IxYI65nkuS4EW6ZQ58Uzpwo2Mh7xDx02LZk61/pMsj9A07jTpdySB1eaQEZuYhzxFkkxOuZjHd+WfC7UT0YnkQepyvVUt1381XKS8PH2AhjtyEcQcN8wOl3uWjqqHyVNRwGN0oXAAJdmRDMOMdZAdU0agGzQ/L6MD1xdGcx7xbCFilAKeV7X8c26DRFic+Cm6xFTkUURdZ9+1E4qEdm7qWPixBz0w8l9LK2vOI4aa5ZHclQqhmsrHZ7ZuR/U3V+jHZa2+3Lj73ETlIMvKIZy52H5zrPQyJJLaJiqTnjojelRygWla36mXDOnC8/5g/U1ulgnexDiSyYWBiijlt4RNRNSGvqctuRjs/wy1lfAULjDr6g08zyT1BHn7Wiq9ar+l1nlP68mMYeit3OlT6DWaet7WethjeTdTMiXrJncWE/iJNsehygUW1eZlx1lYrhOW4VKtR8cV3jENEi5vwj5WAH0lL6xAVH5YHnGicKi+grGkPV5C2womCrkwQZoR9LbebA2E8oGDYHX9MMCfUPDpMatyidLUZrVWXbFZ+U2Li4t7p4cKyHlOFO9EMyf0MFcE6stih82H4NZqUJiAwCEEkB5/7kj+CAUFfi7j9fuER3QMERSjz4zINqt/6z6DMtZGmla11jPzJFDLHdcgz+hn/B654ji9EXUUnOqXPL2sqcVF+gJUN+BSVF+VXOGS7iUJfBDhJL/uohZsUiyop0fFU8A9v3ORB9TTmAwB7AaxNU9Cin41ZHMQS5rsyyITqG1LX2cEDNf0L9CUw/3hrt9eL33TXpp8ZXdcTS25sEaJ12gFH7ym6F0Uy3f/TOsGHADrXtcdea0WS9OWqEgp1iEoDRn5uTMubalSj8dT7O8KKIV/4xCi0rpN+JmZiJVlegQYAHTpsb1S7o3+D6DOzaEhkITDyLy4Ci5Ps6i5g/ppuNkYnQjRi3sjDw3lSq+mxDeXMmcqgPI0hZKH+BNwaQ3AQVMNXNaOWPtIRDXakvh8VyfhtdgpjyaBjlbaIqGGz2873h6jZoFvj5u7wgfkU01b6y5gvwRJUwjNLf9SvoIHzLHe0sOaMvjs+RE5LOjJP X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB6678.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9466 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-SkipListedInternetSender: ip=[2603:10a6:20b:398::8]; domain=AS8PR08MB6678.eurprd08.prod.outlook.com X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM2PEPF0001C714.eurprd05.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: c08d0e88-5e78-46a7-b463-08dcbd40677e X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: p/nJAWw5lxPyxm2YJ5ORBOCTRKCfEbZ0TsgY5KAgR2mOeLeN2aTvNsxCEWhD7y+/PfKFgqriaedtKcp6l3AxI3Y8d3mhDsVddG5EwS2R8shbckVA/H34jainA5lOYejryq6JHiBS1JUnVMMKyb1KIqRXnL9GpSmta3O+9vFdggxexlJXodSCZjUBCz8WRz65DyxGwf5T48mUUt+O2rEaqe0Sij4ff6eaAuoWvE0masBhuLON+SeWGjIjuCOcKYriranvOPciZ9gUSpwEpNTZYaPwl1OibLps7qiu5coBW2odSy7mx16megBJYobHc5Y8rBBALJHjAxXD8bBSQsJbmFjg4qcmNqB4obD7hpSbSekDq2Sk7TecBGU2v+2lEZfo1LjwHREfKk0qmRe9saHR8PPkGWXfFDlu/5mmEMweMjKu1Q3DATDLYq9Yv8YJgude/PrcQRhGCeVtcBZdXb3EPbwwZwjUKDUlL5wcmwUocYWB+nAsOmZ5QFNADYyCiHU8j6cvtgIHGbThu63gcdMDHeYeISQiWmW7bhdE5ZvEDjlgHI3kNYJSm36ZeP7N+1xFLtMTN0NoABc3cmCJ22qceNEk45LrMIekN8YfkfYi2RxcfCZDG0M6MsJc71+RfksTd0kAkp4R/SYafzY7KInZqZ5a3t/UMxqcVm0ZpbDFcg9YGGYVgVq1A1/QvpwsaIOlP1EanxXIsX6TprosjSqYbZlSjuNWFm30aCfkaAqqXY5WglqCF9/FyFxCiLRqmC794DmrVkkNHz9P7kRXYcK9QcHqa4ds6PWnSyWSNkbiK7sDeO93Qi95GFkTmy0U3G0tqZClWjKw13WCUiGhyhDZI6f3p2P74f2ptCSDK3JW0SWCEdMLCVExqr3wirdcp+tRFdk0inE2o9LAupQP3FLzv5gUbTQV3qeRuFx7mariRxge6YNPOeB45bmoJUaqElFwipp6HCBDIrP+EMcFWmUgMVbDO4oWwi8EGp8HlFBq0tgMhK51Mw12TBo9yAlYzrDx909KaHTJGHbuAOn/vbEMBxLhCAJlKjgMLQSOqC0yrpwW70gMybU1tgdaJIlHV7nrhGpRa19KwQrOeG7Xe9uFej7mQ97qtufdLzsXVGney6CJuGL170rlXNMSPwzgc1SOaSDk2XrvoWEhzZS+sD2k/MFmunFs2U6rWdY7FieOpJQC47/uHE/rk0b1xajXC+2J6QFV3ToabDJ0Jp52wgH2Shb9+eBxhPsHu+QYMBxr6ZLqWPweU7R96SYG5PLnX6jSHQAEmdMNs36wyFS3SPkqHZTajuXR2Vn3i4rDK/voiIiWZNEdEKVXi7PzTEYnCI9Z2DWQ3r8MKDDgzBz1nwXsNx1RvZpHX5KUQa3uYVu13HdUYFRhv6f7ag1madySrLZ6DMRXo3mfRm12QgJRSPKMMw== 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)(35042699022)(36860700013)(1800799024)(82310400026)(376014); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2024 15:39:18.5894 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7b10d2e4-09ec-4400-2137-08dcbd406d34 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: AM2PEPF0001C714.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5922 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FORGED_SPF_HELO, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, 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 availability of ls64 intrinsics and data types were determined solely by the globally specified architecture features, which did not reflect any changes specified in target pragmas or attributes. This patch removes the initialisation-time guards for the intrinsics, and replaces them with checks at use time. We also get better error messages when ls64 is not available (matching the existing error messages for SVE intrinsics). The data512_t type is made always available; this is consistent with the present behaviour for Neon fp16/bf16 types. gcc/ChangeLog: PR target/112108 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove feature check at initialisation. (aarch64_general_check_builtin_call): Check ls64 intrinsics. * config/aarch64/arm_acle.h: (data512_t) Make always available. gcc/testsuite/ChangeLog: PR target/112108 * gcc.target/aarch64/acle/ls64_guard-1.c: New test. * gcc.target/aarch64/acle/ls64_guard-2.c: New test. * gcc.target/aarch64/acle/ls64_guard-3.c: New test. * gcc.target/aarch64/acle/ls64_guard-4.c: New test. diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 9c6d9ec7537e7c473dc42a27a7737d80aab9cddb..eb878b933fe5ba4ee35a371d7149cd14ef161c2c 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -2062,8 +2062,7 @@ aarch64_init_data_intrinsics (void) void handle_arm_acle_h (void) { - if (TARGET_LS64) - aarch64_init_ls64_builtins (); + aarch64_init_ls64_builtins (); aarch64_init_tme_builtins (); aarch64_init_memtag_builtins (); } @@ -2311,6 +2310,13 @@ aarch64_general_check_builtin_call (location_t location, vec, return aarch64_check_required_extensions (location, decl, AARCH64_FL_TME); + case AARCH64_LS64_BUILTIN_LD64B: + case AARCH64_LS64_BUILTIN_ST64B: + case AARCH64_LS64_BUILTIN_ST64BV: + case AARCH64_LS64_BUILTIN_ST64BV0: + return aarch64_check_required_extensions (location, decl, + AARCH64_FL_LS64); + default: break; } diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index ab04326791309796125860ce64e63fe858a4a733..ab4e7e60e046a9e9c81237de2ca5463c3d4f96ca 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -265,9 +265,7 @@ __crc32d (uint32_t __a, uint64_t __b) #define _TMFAILURE_INT 0x00800000u #define _TMFAILURE_TRIVIAL 0x01000000u -#ifdef __ARM_FEATURE_LS64 typedef __arm_data512_t data512_t; -#endif #pragma GCC push_options #pragma GCC target ("+nothing+rng") diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c new file mode 100644 index 0000000000000000000000000000000000000000..7dfc193a2934c994220280990316027c07e75ac4 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-1.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.6-a" } */ + +#include + +data512_t foo (void * p) +{ + return __arm_ld64b (p); /* { dg-error {ACLE function '__arm_ld64b' requires ISA extension 'ls64'} } */ +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c new file mode 100644 index 0000000000000000000000000000000000000000..3ede05a81f026f8606ee2c9cd56f15ce45caa1c8 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-2.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8.6-a" } */ + +#include + +#pragma GCC target("arch=armv8-a+ls64") +data512_t foo (void * p) +{ + return __arm_ld64b (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c new file mode 100644 index 0000000000000000000000000000000000000000..e0fccdad7bec4aa522fb709d010289fd02f91d05 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-3.c @@ -0,0 +1,9 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+ls64 -mgeneral-regs-only" } */ + +#include + +data512_t foo (void * p) +{ + return __arm_ld64b (p); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c new file mode 100644 index 0000000000000000000000000000000000000000..af1d9a4241fd0047c52735a8103eeaa45525ffc0 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/ls64_guard-4.c @@ -0,0 +1,10 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-march=armv8-a+ls64" } */ + +#include + +#pragma GCC target("arch=armv8.6-a") +data512_t foo (void * p) +{ + return __arm_ld64b (p); /* { dg-error {ACLE function '__arm_ld64b' requires ISA extension 'ls64'} } */ +}