From patchwork Tue Sep 1 14:12:14 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinath Parvathaneni X-Patchwork-Id: 2296016 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=piAoKvgC; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=piAoKvgC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=38.145.34.32; helo=vm01.sourceware.org; envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (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 4hZ7BL2X0xz1xvS for ; Wed, 02 Sep 2026 00:13:30 +1000 (AEST) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7C3B54BA23EB for ; Tue, 1 Sep 2026 14:13:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7C3B54BA23EB Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=piAoKvgC; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=piAoKvgC X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazon11011058.outbound.protection.outlook.com [52.101.65.58]) by sourceware.org (Postfix) with ESMTPS id D85D94BA79A0 for ; Tue, 1 Sep 2026 14:12:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D85D94BA79A0 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 D85D94BA79A0 Authentication-Results: sourceware.org; arc=pass smtp.remote-ip=52.101.65.58 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788271976; cv=pass; b=pDSrcH5A+HObK8IFTaCyY2jWgbse3BnCtS3bv1z1IcaJkNR6j+fqTkG9Pz4XwMBjf8Z4Ws7a3de1o8ayFtVGdA4DUAU4BySpZ0r2UUQbIgxGiYzrMKDg9hitVd9ANkfyGD0MBXh0Y7I2K8WLiunfP9jPlbjVbIY1xUcU01cay0o= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1788271976; c=relaxed/simple; bh=WQkcqpPwGnxeaMgPxc9+fpS55IYejMLU8qDSjN7uklU=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=b1PzBCNT+Gngm+c9jKNbXFiO6QLb9LHPjjI/nZPxEsiw4OuaOJGagkBPLJnwLzeJlqwk3+IZjqT8jlMgkaU9Zd7b2fBPModT44tuBaQEw58yY7yyjVjNeVm0s4qLXesg6xUUfOxbC0TSsdHtmAnVU1jp0obNYiW77Hk3VSxcKhs= ARC-Authentication-Results: i=3; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=piAoKvgC; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=piAoKvgC DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D85D94BA79A0 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=wyutfHk2QeR9F0enW2adFt0MTU6jyH50IwzrBTN0TpAESORQHR4epAGBeelmCvG+XWrA7Gvnzf9GtRTF5jFDDZVEXobF8+ND8BsCHaI7ubys1vmTleNAAFda3Gnj4iCsyE7k9DYQhXXNdFucVzLWM/B3zAYPp3d4XUpGD9n0ckZ7BcTNps5cf69gOCRMutFplHTs5aLV9q23nXhT+JImOxUyO6doSCZOzQQiOnBjJFGZNF10QZbyQzeIbml5W5Gy7tLHzYygAEXuLvbRN708MUv37jcyOJaHgI9UCCVCAOlDFTXTcTNAm92lPLN8hB96RI5/i0F43cOOFll9ZEBSQg== 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=kq5ppagY4+uaQxM1GfBd4TV5mp1A5QIOfjcunnGFI7c=; b=XuJq0ajC4Pz67pj7DzfgFuIQ3L9u6+DzS3yAOOasBYMOuGVnf/uJO8BY/Qxh898scUybq2gOcFgbbdA7dMZa05eOkiAla4vKqvXX53onWMcBQf+r688wbGhhdp4LVlbBlGo49qB2mvbdRoTg0a7q2zOjncVMcoE1B6+dBhAC3JPPf+GOsjJDaILJa4aMYKi/Nzueanp5AaaCB1Le+gWB+0Ro0J66LSTPDeU2tcCmto5ORHQA1j0CmS+187FuRpfQa9HCjQAMi1VlDMo5y5hPi71lkswdM/IW3+3uBV9Q5UxPyM0DBuGnn+zs7p/qT9m+r3DyhH8Tc08oG0mrcKhGmA== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kq5ppagY4+uaQxM1GfBd4TV5mp1A5QIOfjcunnGFI7c=; b=piAoKvgC08TFEQRLm+SlSUi/LZMBK2C6Ax7H7v6kF9dXNVBVWZYXQBPfDRR9thtGU0i/FAc0bOuTx35Tqufutdc4ZJ5sdv7io32BoMm1QatFvAEhV17gr936bUcXhuY9rOdca5fwtivfKzRl8lntO1B6NeyBJ6STj2KwtMqSYS0= Received: from DU2PR04CA0228.eurprd04.prod.outlook.com (2603:10a6:10:2b1::23) by VI0PR08MB11685.eurprd08.prod.outlook.com (2603:10a6:800:316::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Tue, 1 Sep 2026 14:12:50 +0000 Received: from DB1PEPF000509ED.eurprd03.prod.outlook.com (2603:10a6:10:2b1:cafe::f) by DU2PR04CA0228.outlook.office365.com (2603:10a6:10:2b1::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Tue, 1 Sep 2026 14:12:50 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DB1PEPF000509ED.mail.protection.outlook.com (10.167.242.71) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.3 via Frontend Transport; Tue, 1 Sep 2026 14:12:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jkImFVA/8H+jVTngJb+6HxpqGJg49HDRsA1dJA0LpE9DGqjg8pcRzNpaO8iXCnP9TLkSQqdasGbnASuZRzfVf5RyOEsxM3Y9WGimWCL92V5EypwY5Y6tdic2JnuoItB1mwZ3GKYQW0oN6Dl9so0I0QiEJiDEFcdIWN0Ez/Ktm9b66kk84J8EjEMuewgwVxLT+4kZ8MLxLL9mgNQBM4x4EmuUMQJtg+Iy4F68SXZ88CDPVll5SSL+sdbnvYfqFSXjP2q0gg/hCmcgKyX9sfaIjXju+Wm/1JwlpI+XbyJ0dJI1zjbmayIPqF77VTsJSEW8VtdgtB4lZ17r7OnZvwlb9A== 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=kq5ppagY4+uaQxM1GfBd4TV5mp1A5QIOfjcunnGFI7c=; b=d0iKn4F9p2SUxIXpGfX7BmxJCf6m9+IepIDXPmsM2shddSpDQbhgpDkvnOHB8/IBkCmOCnCIILd41o4/94x8ymd8MKC9BNH9Loq9s6EvjMquXm0aUONn15OjE84jhRIgIYxuRVOtZ0HCvRArd6160Oa6BoWkgEbqGMiFMh3HO9I0lOL+1CGzNvA8tv9z8AJoRUjjzo+WW8+2cHF12lZxRgWzV+LlG0keGtUjlr45z35FRQWZIWgyVJjtHPZ7ybwimrf4qdFbtHHjh1cwnV7I7WkPAkeZ72pyRK6JeL7CS+fv5TXgggPTvmq1TwDgOX1Cpq+e9ia965OBCcqZm6iVKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kq5ppagY4+uaQxM1GfBd4TV5mp1A5QIOfjcunnGFI7c=; b=piAoKvgC08TFEQRLm+SlSUi/LZMBK2C6Ax7H7v6kF9dXNVBVWZYXQBPfDRR9thtGU0i/FAc0bOuTx35Tqufutdc4ZJ5sdv7io32BoMm1QatFvAEhV17gr936bUcXhuY9rOdca5fwtivfKzRl8lntO1B6NeyBJ6STj2KwtMqSYS0= Received: from AS8PR05CA0011.eurprd05.prod.outlook.com (2603:10a6:20b:311::16) by AM7PR08MB5320.eurprd08.prod.outlook.com (2603:10a6:20b:103::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.10; Tue, 1 Sep 2026 14:12:17 +0000 Received: from AM2PEPF0001C715.eurprd05.prod.outlook.com (2603:10a6:20b:311:cafe::3d) by AS8PR05CA0011.outlook.office365.com (2603:10a6:20b:311::16) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.21.360.13 via Frontend Transport; Tue, 1 Sep 2026 14:12:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by AM2PEPF0001C715.mail.protection.outlook.com (10.167.16.185) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.8 via Frontend Transport; Tue, 1 Sep 2026 14:12:17 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX03.Arm.com (10.240.25.137) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Tue, 1 Sep 2026 14:12:17 +0000 Received: from ip-10-249-56-67.eu-west-1.compute.internal (10.249.56.67) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Tue, 1 Sep 2026 14:12:17 +0000 From: To: CC: , , , , Srinath Parvathaneni Subject: [PATCH v3][GCC] aarch64: Add support for ACLE hint intrinsics Date: Tue, 1 Sep 2026 14:12:14 +0000 Message-ID: <20260901141214.23094-1-srinath.parvathaneni@arm.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: AM2PEPF0001C715:EE_|AM7PR08MB5320:EE_|DB1PEPF000509ED:EE_|VI0PR08MB11685:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e5c4f56-d6b2-41f5-1eb9-08df08331b44 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|23010399003|36860700016|82310400026|1800799024|6049299003|4053099003|6133799003|11063799006|10067099003|18002099003|56012099006|13003099007|3023799007; X-Microsoft-Antispam-Message-Info-Original: hl8Au+w5OXjswIgbhWcsZTsGIh3MG1DZsZXkYJxJMiZz2e/0J7uw8UMqXkFNMS3nnFGNEVJpFzZX6mqXX6WcRH7FhcDtuGNhqWUtQXT8MywoEdJBuvVDIGNdx4FkahQZvGiKLnGznyUZ4uD6bw+6dqjR16EWeBs/yFNvpAcq707P5TVUltZYNf0P7N6TjUZGeQwYFbE4IUV/sXNDROQuv88SjOFaRB+GB0wRuCR5dvkqKS+fPis9JSOGfamMYlqw9RQnaLjRzOqzfpR82PSXnKgV2zk2H1R4g9jpyAVOWbQJjrbHvoimRYtE78vMvq7blWRNjcxDkh02TZTAUKDfBOAWlivbdUgPeu+GQZV0j6n/0C0z94a/7khGabnJFzktO//nickOFeIdfYc2RfGrZJOtC5YHfi0G2SERmVJvoFySaKtJ20+Aq+HSodeQHmHfYZMgMjtm9Nu67E5WRTPI26sHKA+O9OI14bojt1kNYPylUJy/VaItXeOu8LbcE/AiQm5JKTh3GN7w3p3J41q+jxK6MazBkyrxjbgePB4UQ29hRJJhlckNUznEmtGJp2SL/klKCDoUu5+WY+1/JCN80dNs2H/SKdNlSfd3rigjeTpysDLlE6U1Axw6eq+g4urYtdrWrpOQSgmg+tdV4ER/dWaCjt0jrAfGjwB+kYqmaIA= X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(376014)(23010399003)(36860700016)(82310400026)(1800799024)(6049299003)(4053099003)(6133799003)(11063799006)(10067099003)(18002099003)(56012099006)(13003099007)(3023799007); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: WV7wN6LkNGvlbEdyAhbvf2DsMcTUD/J5zjrVfZyYE1bBvgB8UxaqY0fyqUhsJo72KOQEtCkLRhd4RqAC9hdYuHUkT0iuHc4HAAxuHr9TzWlzqg7z7Og3NrIHXg0Uond0fZXsU8L4Q7mgt1suDhI2bdA8LdlKZrxfjyLtA+LuLpK6rUHIdZfjd3fZY9VrM0YfkO6ePZYzssESv432lCwDc2RIZiMjLCeSAfq1NHR0biCw9cRavMvN52Mn3L36M0E22HzMusJVp+wkElDr7jJjdR82Fj4KZk9UMSc6QPDOdRnLbg/p72VJnsnegnbtg0phApbLC5wE1qgtiXuHhRIdYw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5320 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB1PEPF000509ED.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: ac12f033-69fd-49bc-0887-08df083307ba X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|23010399003|376014|36860700016|35042699022|1800799024|82310400026|6049299003|4053099003|6133799003|3023799007|10067099003|56012099006|11063799006|18002099003; X-Microsoft-Antispam-Message-Info: FpuJIBHcjYMYYJkLlTjRNeJ6KbDntWEKzdzObKEKQraAWim823jhwBfGmspwpfd7SLEMBiByFO+Q0wOosV86a0jo0ZbBSOgTfRp6jkzU1htpe+9LxGn1Jdh1YCfPF4DFsd2NmWZStHqize56t3H/OCqTbkdBtV+Lrsp4xBfUp22zPhlbF7gvRHIj4HeZhDeKWS1JQP3sENJ5vynxJQLprzke8O2Bp++qfocr8+cQ+HKZVm7rcJ1bBmk/XblPCk8iC4uK9gHxZhlmv5bMDYVVTgoWy8jgg+pr1Iu9UJUG9hBDBARlngmOPK1m60Aq5tKi5Lw7nTDjW9so+4huIVDEoj89QxrWQMdcbeTjZh6JMNWuFU3Xi9Iu2xRb6zqruVankqfEeyOK5tl+aNCEdw+BZyVKjHpwGHBlFn5NGlEg4d/FuAxlHsFkjQX2kGGhobc0YDC2BNltAAJ8prgI87KeFpZs4ia/PrwXNNamDJyLxdmq1QJTB392dzG4tjAxngq00HEBoQUSrBHbaeMSPwjEd1W3JDa5W8W0mZNv/ii4yjIEq2r9zzUpoP6tPdn3QKSfI38aC8O1dTo1bu0j8UBpGasH6QEPrOJfMvnQo+WT9nJAZK51kkeFHafoDnBB/ogBEvWuPlMXIrRJUhCS0C9BrexNo4F7++J5HLsRwqEg62I= X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(14060799003)(23010399003)(376014)(36860700016)(35042699022)(1800799024)(82310400026)(6049299003)(4053099003)(6133799003)(3023799007)(10067099003)(56012099006)(11063799006)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iZwsvdTsKbQYpp/FH5ROGzN3/5MZCN5jlKStj3EuMtn36Q/exCB1f4hBCBY/04dKqaV319tWLsQK7nO8tTUZ5jSozHL2L83IAr3n9zmh1d+h/lD8XBfeghjCHPKQQSZdUhNRJra0o1BTZsglpzTL2ip03KSogRTzrWCavpF7/z2whDm1i3ylec3KGWxkAuhD3VA3glLbNd2NmScF09WU0TzpZy0DA2oqlsp4PZWRDKjLKL7tFUz5eUyfujZoPB9LnQVfEizaL7I+2OVi8V6RoPdUsdYfaXzOuhnLAiR/SxYrwEiPkMH223evNq38s8ZAykVHMiRt/0tLGyZxWVMhj1hJ/SICzKHtg5l04KAFlg7I5sbud+oPLmaZlMiBt/ebuGkwP76wWIUL0NdkeSyw28oEPXwK4cG+2T8ajWrDUEtgaB75c+m7T2F+fVYAz+Sc X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Sep 2026 14:12:50.2631 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e5c4f56-d6b2-41f5-1eb9-08df08331b44 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DB1PEPF000509ED.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR08MB11685 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 Changes v2 -> v3: * Accept and address all review comments. * Use aarch64_general_simulate_builtin to register the hint intrinsics. * Use direct intrinsic name (eg: __yield) inside instead of "__builtin_aarch64_yield" while registering them using aarch64_general_simulate_builtin. * Move aarch64_init_syshintop_builtins call to handle_arm_acle_h. * Rename the hint instruction patterns to use the aarch64_ prefix. * Remove the hint intrinsic macros from arm_acle.h ---------------------------- Changes v1 -> v2: * Rebase the old v1 patch: https://gcc.gnu.org/legacy-ml/gcc-patches/2019-05/msg01925.html * Add memory clobbers to the hint instruction patterns so that the builtins are treated as affecting memory. * Update the tests to reflect the addition of the memory clobbers. * Change the hint intrinsic definitions in arm_acle.h from inline functions to macro expansions. -------------------------------------------------------------------- Hi, This patch adds support for ACLE system hint intrinsics __yield(), __wfe(), __wfi(), __sev() and __sevl(). The ACLE specification is available at [1]. Regression tested on aarch64-none-linux-gnu with no regressions. Ok for trunk? Thanks, Srinath gcc/ChangeLog: * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add AARCH64_BUILTIN_YIELD, AARCH64_BUILTIN_WFE, AARCH64_BUILTIN_WFI, AARCH64_BUILTIN_SEV and AARCH64_BUILTIN_SEVL. (aarch64_init_syshintop_builtins): New function. (handle_arm_acle_h): Call aarch64_init_syshintop_builtins. (aarch64_general_expand_builtin): Expand the system hint builtins. * config/aarch64/aarch64.md (unspecv): Add UNSPECV_YIELD, UNSPECV_WFE, UNSPECV_WFI, UNSPECV_SEV and UNSPECV_SEVL. (aarch64_yield): New insn pattern. (aarch64_wfe): Likewise. (aarch64_wfi): Likewise. (aarch64_sev): Likewise. (aarch64_sevl): Likewise. gcc/testsuite/ChangeLog: * gcc.target/aarch64/acle/hint-1.c: New test. * gcc.target/aarch64/acle/hint-2.c: Likewise. [1] https://github.com/ARM-software/acle/blob/main/main/acle.md#hints --- gcc/config/aarch64/aarch64-builtins.cc | 51 ++++++++++++ gcc/config/aarch64/aarch64.md | 45 +++++++++++ .../gcc.target/aarch64/acle/hint-1.c | 26 +++++++ .../gcc.target/aarch64/acle/hint-2.c | 77 +++++++++++++++++++ 4 files changed, 199 insertions(+) create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/hint-1.c create mode 100644 gcc/testsuite/gcc.target/aarch64/acle/hint-2.c diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 8cd1bc4b1a2..8a82b131b72 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -751,6 +751,12 @@ enum aarch64_builtins AARCH64_BUILTIN_STSHH_SF, AARCH64_BUILTIN_STSHH_DF, AARCH64_BUILTIN_STSHH_PTR, + /* System Hint Operation builtins. */ + AARCH64_BUILTIN_YIELD, + AARCH64_BUILTIN_WFE, + AARCH64_BUILTIN_WFI, + AARCH64_BUILTIN_SEV, + AARCH64_BUILTIN_SEVL, AARCH64_BUILTIN_MAX }; @@ -1261,6 +1267,30 @@ aarch64_get_attributes (unsigned int f, machine_mode mode) return aarch64_add_attribute ("leaf", attrs); } +/* System Hint Operation builtins. */ +void +aarch64_init_syshintop_builtins (void) +{ + tree vtype_node + = build_function_type_list (void_type_node, NULL); + + aarch64_builtin_decls[AARCH64_BUILTIN_YIELD] + = aarch64_general_simulate_builtin ("__yield", vtype_node, + AARCH64_BUILTIN_YIELD); + aarch64_builtin_decls[AARCH64_BUILTIN_WFE] + = aarch64_general_simulate_builtin ("__wfe", vtype_node, + AARCH64_BUILTIN_WFE); + aarch64_builtin_decls[AARCH64_BUILTIN_WFI] + = aarch64_general_simulate_builtin ("__wfi", vtype_node, + AARCH64_BUILTIN_WFI); + aarch64_builtin_decls[AARCH64_BUILTIN_SEV] + = aarch64_general_simulate_builtin ("__sev", vtype_node, + AARCH64_BUILTIN_SEV); + aarch64_builtin_decls[AARCH64_BUILTIN_SEVL] + = aarch64_general_simulate_builtin ("__sevl", vtype_node, + AARCH64_BUILTIN_SEVL); +} + /* Due to the architecture not providing lane variant of the lane instructions for fcmla we can't use the standard simd builtin expansion code, but we still want the majority of the validation that would normally be done. */ @@ -2180,6 +2210,7 @@ handle_arm_acle_h (void) aarch64_init_tme_builtins (); aarch64_init_memtag_builtins (); aarch64_init_prefetch_builtins (); + aarch64_init_syshintop_builtins (); } /* Initialize fpsr fpcr getters and setters. */ @@ -4354,6 +4385,26 @@ aarch64_general_expand_builtin (unsigned int fcode, tree exp, rtx target, return ops[0].value; } + case AARCH64_BUILTIN_YIELD: + emit_insn (GEN_FCN (CODE_FOR_aarch64_yield) ()); + return NULL_RTX; + + case AARCH64_BUILTIN_WFE: + emit_insn (GEN_FCN (CODE_FOR_aarch64_wfe) ()); + return NULL_RTX; + + case AARCH64_BUILTIN_WFI: + emit_insn (GEN_FCN (CODE_FOR_aarch64_wfi) ()); + return NULL_RTX; + + case AARCH64_BUILTIN_SEV: + emit_insn (GEN_FCN (CODE_FOR_aarch64_sev) ()); + return NULL_RTX; + + case AARCH64_BUILTIN_SEVL: + emit_insn (GEN_FCN (CODE_FOR_aarch64_sevl) ()); + return NULL_RTX; + case AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF: case AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF: case AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF: diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 3e726d2b115..9e441fa7946 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -425,6 +425,11 @@ (define_c_enum "unspecv" [ UNSPECV_BLOCKAGE ; Represent a blockage UNSPECV_PROBE_STACK_RANGE ; Represent stack range probing. UNSPECV_SPECULATION_BARRIER ; Represent speculation barrier. + UNSPECV_YIELD ; Represent yield instruction. + UNSPECV_WFE ; Represent wfe instruction. + UNSPECV_WFI ; Represent wfi instruction. + UNSPECV_SEV ; Represent sev instruction. + UNSPECV_SEVL ; Represent sevl instruction. UNSPECV_BTI_NOARG ; Represent BTI. UNSPECV_BTI_C ; Represent BTI c. UNSPECV_BTI_J ; Represent BTI j. @@ -1334,6 +1339,46 @@ (define_insn "nop" [(set_attr "type" "no_insn")] ) +(define_insn "aarch64_yield" + [(unspec_volatile [(const_int 0)] UNSPECV_YIELD) + (clobber (mem:BLK (scratch)))] + "" + "yield" + [(set_attr "type" "nop")] +) + +(define_insn "aarch64_wfe" + [(unspec_volatile [(const_int 0)] UNSPECV_WFE) + (clobber (mem:BLK (scratch)))] + "" + "wfe" + [(set_attr "type" "nop")] +) + +(define_insn "aarch64_wfi" + [(unspec_volatile [(const_int 0)] UNSPECV_WFI) + (clobber (mem:BLK (scratch)))] + "" + "wfi" + [(set_attr "type" "nop")] +) + +(define_insn "aarch64_sev" + [(unspec_volatile [(const_int 0)] UNSPECV_SEV) + (clobber (mem:BLK (scratch)))] + "" + "sev" + [(set_attr "type" "nop")] +) + +(define_insn "aarch64_sevl" + [(unspec_volatile [(const_int 0)] UNSPECV_SEVL) + (clobber (mem:BLK (scratch)))] + "" + "sevl" + [(set_attr "type" "nop")] +) + (define_insn "prefetch" [(prefetch (match_operand:DI 0 "aarch64_prefetch_operand" "Dp") (match_operand:QI 1 "const_int_operand" "") diff --git a/gcc/testsuite/gcc.target/aarch64/acle/hint-1.c b/gcc/testsuite/gcc.target/aarch64/acle/hint-1.c new file mode 100644 index 00000000000..17372a09617 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/hint-1.c @@ -0,0 +1,26 @@ +/* Test the ACLE hint intrinsics. */ +/* { dg-do compile } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include + +/* +** test_hint: +** ... +** yield +** wfe +** sev +** sevl +** wfi +**... +** ret +*/ +void +test_hint () +{ + __yield (); + __wfe (); + __sev (); + __sevl (); + __wfi (); +} diff --git a/gcc/testsuite/gcc.target/aarch64/acle/hint-2.c b/gcc/testsuite/gcc.target/aarch64/acle/hint-2.c new file mode 100644 index 00000000000..151fd690fa2 --- /dev/null +++ b/gcc/testsuite/gcc.target/aarch64/acle/hint-2.c @@ -0,0 +1,77 @@ + /* Test the ACLE hint intrinsics effect on memory. */ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +/* { dg-final { check-function-bodies "**" "" } } */ + +#include + +/* +** foo: +** ... +** mov w[0-9]+, 5 +** str w[0-9]+, \[x0\] +** yield +** mov w[0-9]+, 4 +** str w[0-9]+, \[x0\] +** wfe +** mov w[0-9]+, 3 +** str w[0-9]+, \[x0\] +** sev +** str w[0-9]+, \[x0\] +** sevl +** mov w[0-9]+, 9 +** str w[0-9]+, \[x0\] +** wfi +** mov w0, 0 +** ret +*/ +int foo (int* counter) +{ + *counter = 5; + __yield(); + *counter = 4; + __wfe(); + *counter = 3; + __sev(); + *counter = 4; + __sevl(); + *counter = 9; + __wfi(); + return 0; +} + +/* +** foo1: +** ... +** mov w[0-9]+, 5 +** str w[0-9]+, \[x0\] +** yield +** mov w[0-9]+, 4 +** str w[0-9]+, \[x0\] +** yield +** mov w[0-9]+, 3 +** str w[0-9]+, \[x0\] +** yield +** mov w[0-9]+, 6 +** str w[0-9]+, \[x0\] +** yield +** mov w[0-9]+, 9 +** str w[0-9]+, \[x0\] +** yield +** mov w0, 0 +** ret +*/ +int foo1 (int* counter) +{ + *counter = 5; + __yield(); + *counter = 4; + __yield(); + *counter = 3; + __yield(); + *counter = 6; + __yield(); + *counter = 9; + __yield(); + return 0; +}