| Message ID | PAWPR08MB89820EFAEA3331B86B9888D58317A@PAWPR08MB8982.eurprd08.prod.outlook.com |
|---|---|
| State | Committed |
| Commit | 66a2e7137049482ac317a5af8d64f43c315f87a6 |
| Headers |
Return-Path: <gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 42D643858417 for <patchwork@sourceware.org>; Wed, 17 Sep 2025 17:21:18 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 42D643858417 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=VzYyX72S; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=VzYyX72S X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by sourceware.org (Postfix) with ESMTPS id 1B13D3858D33 for <gcc-patches@gcc.gnu.org>; Wed, 17 Sep 2025 17:20:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1B13D3858D33 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 1B13D3858D33 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:c201::3 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758129617; cv=pass; b=qlGDJBr3751ri7ZAP4FfuO98IKU8MmkCo7AdsfhtXXo5r6HXNMXekZL8DVelpCwydRqC8soEXwPRNpQcUPVywrrPNnLlo49mvSYDIpLrtV8Vvs84duTaISAO2YwhubLERgNgHFIF+54oWEViGbx/XYHMMIGzGhFJw8aIipeSEeY= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1758129617; c=relaxed/simple; bh=o9E2OBY5JPQXyVRmsq8WGAqiG0YghLInbGE4dA/1kDE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=JnyrOFcNPAieJ2026K72qN1PX9CS2h50lPW/fQHeEmf1VdKfijHwPMirlUY1z4FybdCvKY2oD8fnTKp9/gUYLl5pHwzLOxGT59mI9uCjTRlj0x/wtpYXMSLTbuFkMjCjrwkTzj2E7oICvUZBwXzjg7sxgEd+pOhVM/LcaVkO6U0= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1B13D3858D33 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=OmFLGZAGjvwkM3vJ3qXuHU08CgN8BLz6phhwLYeJhcPMbVSlmbOgy1PKLBVJ2TThE6kfm6guDdpjMZoNCB2h9Viw8Uo/NkpuN6w61CYmwAKI6GZZOcHykcbGzqGfdpVeELewn9hvwrzCSzbDOkW3baHkl4zGbt8zcUJh/44qLsjGhKsEIAdKBmbBmrp78XSFFmDu91z2yZdDnn15oMj3L5+zc82bM+mubA8S8oAiHeXAmzSjNvMBHRfZfCHfRXnhmNQbj3BMjGkQxsDO2hweErPiRTKqxKZPLgful8rdv0L/5i2nesDu8i5Jw6e4cITSEyqsFo+0q9Hn/bQqU3V+Rg== 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=2WKiFdCmhpUmuFfB5jtruVbUztvRaYkPd7o3FPZ8Ebs=; b=T2/4HQdh2UBRu9ouykimAksFDcut2GtCjk31CG1slFgaEgQEMzyFKoc2wuBd8F8QwLkkKSjuZRWAuylusqZLPhnPTn8h7CkeimnMyLUEy49/fEQpsX0h5ihr6PIuOfkar2KMJeADq4V67t5FZPSDv24r2rrX1MgDBgBPQ3mVkvP8ORtoJqoTTtpQw+zQfPHgngeeDyAwvor5WWX/9UNFCIhShllgPYIe923VDiytXZD3QLWu9EOb6RGNjGVoFpkXUyX1RSR3SnpJfUUT9pttNl4scEo0ce1URcGejC1zqiDzapn6bJVXn3sMNe1jYiMJGRCJ0sytzKDQIcQCCDHYtQ== 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] 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=2WKiFdCmhpUmuFfB5jtruVbUztvRaYkPd7o3FPZ8Ebs=; b=VzYyX72SjHig0TBY168npXgGhW9gIJhP5zNokNGx9TIhl2MiVXRhN3EPpC/DSjQJ925KXZLLPBw1e/z+ECvD0vC0Pab+46WbUnPoAshE7KFWD8FmUvBdx/75Zkhm5+YVP9refcHs9vgfEXI1sYdUEccu9ZC5JaytC3PZmA3hU3g= Received: from DB7PR05CA0051.eurprd05.prod.outlook.com (2603:10a6:10:2e::28) by DU0PR08MB9052.eurprd08.prod.outlook.com (2603:10a6:10:474::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.22; Wed, 17 Sep 2025 17:20:12 +0000 Received: from DU2PEPF00028CFC.eurprd03.prod.outlook.com (2603:10a6:10:2e:cafe::5f) by DB7PR05CA0051.outlook.office365.com (2603:10a6:10:2e::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.13 via Frontend Transport; Wed, 17 Sep 2025 17:20:12 +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 DU2PEPF00028CFC.mail.protection.outlook.com (10.167.242.180) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9137.12 via Frontend Transport; Wed, 17 Sep 2025 17:20:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=G5G/8A7dnsveMiZlFABokp3+YSdj6Afr6P1yh7scrg4DIgg1BSiutF4nRu8fQnT2oUs1+KPTSuFdEhgZcdDY/n6fAo4Tcas/MjB2PfXl0HPVzrCcnhl2pzxVqPPLkjsjMI+HxoEag6lyya72NDMtL3ATZVyx1j7COdz8CfzZMmg9hrX5i7j3cop+6GtKSvj8SeeiKrxizzK5tmmwiPqTWq7db7nnUZ908sq7hibhrFzQGlVXQFs3R587id+xrR2tBtwPqtRCuzZE+83pKo1nUUtH0u206ZKAxuNmmjkw7k58NG34bdkJnB1Ie44Fg3Eg5L673Xyb95mTIYAHrLgvwA== 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=2WKiFdCmhpUmuFfB5jtruVbUztvRaYkPd7o3FPZ8Ebs=; b=X/8SjSI9fcZ4atOQTutYICFTR3XQ+571A3aCjrqpcCRmHVQ0FOy892EciuycNdLgfn81LsA188wTkAmIBgduGqkPAdKe+u7XL88M1CxmsNT6ZzvmjbhLWHxaENTYEEWkS7guhIUgoGs+7vkHB0Wm2y5GWKrXQnaGAiZmA6WVwgScE6tmtndjFK5dmI+W+t1S45i7aZ0Ju5lsmumSa2Jv/Y2yo2L2Dva8webOOkT24aRQj4RGdoWHmxKidKHwnJzPd1MxwXK6UmdGb1N9q6OBbnSeox5uRAQlTBr/mnTiFH1E8OBLxzdO2C+9Ediq0B/ApKCGcA6GStidQnmEQrQ/DA== 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=2WKiFdCmhpUmuFfB5jtruVbUztvRaYkPd7o3FPZ8Ebs=; b=VzYyX72SjHig0TBY168npXgGhW9gIJhP5zNokNGx9TIhl2MiVXRhN3EPpC/DSjQJ925KXZLLPBw1e/z+ECvD0vC0Pab+46WbUnPoAshE7KFWD8FmUvBdx/75Zkhm5+YVP9refcHs9vgfEXI1sYdUEccu9ZC5JaytC3PZmA3hU3g= Received: from PAWPR08MB8982.eurprd08.prod.outlook.com (2603:10a6:102:33f::20) by DBAPR08MB5654.eurprd08.prod.outlook.com (2603:10a6:10:1a6::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 17 Sep 2025 17:19:39 +0000 Received: from PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d]) by PAWPR08MB8982.eurprd08.prod.outlook.com ([fe80::b366:6358:236e:352d%6]) with mapi id 15.20.9137.012; Wed, 17 Sep 2025 17:19:39 +0000 From: Wilco Dijkstra <Wilco.Dijkstra@arm.com> To: GCC Patches <gcc-patches@gcc.gnu.org> Subject: [PATCH] fortran: Allow vector math functions only with fast-math [PR 118955] Thread-Topic: [PATCH] fortran: Allow vector math functions only with fast-math [PR 118955] Thread-Index: AQHcJ/cI7TXx3F15d0iI7DV0EJpuyw== Date: Wed, 17 Sep 2025 17:19:39 +0000 Message-ID: <PAWPR08MB89820EFAEA3331B86B9888D58317A@PAWPR08MB8982.eurprd08.prod.outlook.com> Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAWPR08MB8982:EE_|DBAPR08MB5654:EE_|DU2PEPF00028CFC:EE_|DU0PR08MB9052:EE_ X-MS-Office365-Filtering-Correlation-Id: fcdafccd-674c-49ef-c095-08ddf60e75f1 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|376014|1800799024|366016|38070700021; X-Microsoft-Antispam-Message-Info-Original: =?iso-8859-1?q?7KFlVTrNjL0ZWMfdP?= =?iso-8859-1?q?OTlFe7bvF7hj4nnRnfDYB4/jUSCxo4WLDVu2hkmUjA563YeTG3tO7ux/MuTi?= =?iso-8859-1?q?HmxTvRc0LnRInq1i3+KW8mx4GExPQwcsrbi7//MWaDERjMhFbQdmJZ56ekO1?= =?iso-8859-1?q?vBP+gGwsIYIDoqppLZwY3cZmI1ANCZf2kKxxmt9gW1ZceFfc3nVFL9R2ugRo?= =?iso-8859-1?q?DvrOuhlD1D9goDGKcEW7pAyIAR66UkDhNhXvUwkErIzfEIg7JLx4CCAICNQN?= =?iso-8859-1?q?tqrSBwcQ9QKuYhs9/lejl3cj+0zWgnrojC2TMnuzC5jVkEy70O5hQvD8Iur7?= =?iso-8859-1?q?+oeHNoUCYRYJqlWaBjUAvI9/sNY+N0zgwZIraOwYgocixVZIvp3zIlGCSHzT?= =?iso-8859-1?q?9viHYMzSfeE5Yqr9Gjd367XU+XHpiow0DjL/zkVE5kNrwB1A82pNRRsfxwA6?= =?iso-8859-1?q?cZyV0z0d+RSLnm2plBzz4PcPbYUI7EOK0fxTTnV4yMGjgtGKTYOBMHe/1aNQ?= =?iso-8859-1?q?sEIKT7J6rcU9ACyq5kugrrMk5FsRdjBgYmPOs04E4hhua3x0uQDD/yH8geje?= =?iso-8859-1?q?Yxxidz8MF+Yj806uPoXzDQsiOIW5jubJpq7AspiRZwVN+0djMdiC/A2o6dMg?= =?iso-8859-1?q?0qitOhyRRpa2KeCG/+DAUDtqU7F36cYxv/XmAhWriwfmtoKjKxnDW2LYr9Xf?= =?iso-8859-1?q?K/rJ7m0K2I65Kx/MZbaUUZin8eoisgwm/BPJllztiG2eZtLGOWyoEiFMKa70?= =?iso-8859-1?q?/EgFLwsVR3tje/UpXQgHrwd5REwz1EI5/VNrp/TgfDj6ASxWfIlOawDCFZiv?= =?iso-8859-1?q?PQxH+ZGBUSj9fF6yROFtMGLDFU/HOh6kU1mwboscNJU384xtYCQbwzrLuCgh?= =?iso-8859-1?q?JKQPZnk5bNDXxN1yLObZNaSQyQSavmDoMvXWv/Y7Q2Km1T2OpbC9xobF2X0O?= =?iso-8859-1?q?bnrnJkvHKmM6Y8iRcpOoykmldzuNkx6K4GYuBuOfTEyAhV2zh1FBoJ8zC9B1?= =?iso-8859-1?q?0bK1SBJy5qFugxIe33hddk1Uy7V+ipFEVJtGsDGQFUGHZikzpnL+59m1iP8f?= =?iso-8859-1?q?sDd/AP0cZ6ccrQq2S33Cr9BvZVMUH79No399biMMNKEqO0N4nJrc0Aq2RGxt?= =?iso-8859-1?q?4TsSCM/Ga5aOmGBF5r1PS2RZHLrrfJRY6VIDzwNEgj7Btao8WaAidHpL80Mt?= =?iso-8859-1?q?r1vIv++7TFMUBWErd3OAlLu6oJ80+i4Zk0wNf41QMhdxOdtJzlHHvcIIdkZp?= =?iso-8859-1?q?TIskrSysqQ0Xt/FOSyGemPfDzCyPdN+oc5ku5u6dba4BJENovEmELVcCVKBD?= =?iso-8859-1?q?QbNYWXcEM2AHTAv1s7Br2oe/5RlWSwTl+IaU2PZWDeZ6aEdXssEXEZig29bS?= =?iso-8859-1?q?LPq/CwFWycNecwqiGQtc2sPuWjtg0xXV+gzXrHl1VAG9WSkSLZ8UXIUR1FMb?= =?iso-8859-1?q?zkv6My6tzQVVLfF4zdq3M2PpEXD7kQj0iYHVzNWOEVhHUzrFhXDJy2+Ye/14?= =?iso-8859-1?q?sfzbHXCXnfpUDb4?= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAWPR08MB8982.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(38070700021); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR08MB5654 X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028CFC.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: e43da6de-9cbf-4470-9d28-08ddf60e626e X-Microsoft-Antispam: BCL:0; ARA:13230040|35042699022|82310400026|1800799024|36860700013|376014|14060799003|13003099007; X-Microsoft-Antispam-Message-Info: =?iso-8859-1?q?Mu8sf2Lxom0tc/nAOqRFNmqeiN?= =?iso-8859-1?q?77OnG6+EKZB9gB9OMhLa2ApX+0xLmyhTqvwQCKKompWTuG0ck2kESO/xHh4O?= =?iso-8859-1?q?KUQV5oATuKP7wyNFx7IGVoimdALfdnhcXQii2vGXkKtJMs73G5H+LLIDMrxE?= =?iso-8859-1?q?l8FP+hkiPCBV8OrcIZWzzPPvSScNW5X7OgjWRmnvTrmdV7rPfda2Y8EkNwJL?= =?iso-8859-1?q?pIqFZVShzvenSjs3t+Ivxjix1FYAud4wmCrt52rfwUbdIhtbA0sXwjPf2+tP?= =?iso-8859-1?q?vqUn6Zosj5wjInNU0secOb8a5ADru79JrIJXsWFXedaDpPOkxxMcZvOhT+CD?= =?iso-8859-1?q?E+Fu/m8yWipa1ODlFLAd8EeUDpmPRgpxS6vciQlqPP7+NS4debi/iK0FMT8o?= =?iso-8859-1?q?AVasKqaUrbXx1GTQ10HlU6m2OA3OWfDQPDURvGknjb8Dd/obChAB/TnnH3Ya?= =?iso-8859-1?q?JeC5kQzzmQt2AmvIXk7fGiiwmmzps1Ke8xh5EMuC295QlKxzkPkp97LnoiXa?= =?iso-8859-1?q?r6Xv7FjEu4P/XHF6jZrNJcDAf/JqqYH8L2YPmIh3IrhRn/fDycp6DHvOqH+u?= =?iso-8859-1?q?FnGj8Mc2MnZ3l3ACIX4VHR5wGtFMWes8nmKXSIrXX/4Sdh81VXikMgOJ2inP?= =?iso-8859-1?q?ZNK6v2TjXJcw8CI/c0VAV7GvlJ8CRnBIkLAUYLA9KtagLxoJMN37jjdy5THG?= =?iso-8859-1?q?+PF2BuGq+zx+abT36bJ5/LSBVDTayfFLbLkFZi2R7QZ26fhBM2RfFeSxAS3P?= =?iso-8859-1?q?lWMk11P932nNxL0S+I18n27zcrAr7aBupz3oG/Fte9SPcjjpHtG9hQNvstKp?= =?iso-8859-1?q?JkgVCb7BtjcngvlCKpKC0A/l9sTytwzxHyKb5thO7NOuBbZnkSxJpTjUpbGU?= =?iso-8859-1?q?AcZL51x6P1M5P5M5yViFRbmpycXy82t9zBiPYdwFzQKTB0w3lr1PM/uzRUZS?= =?iso-8859-1?q?YM6CBMpq/AiIVkGCTWf0DunfQNTGbbZbqVsztzIwD9FvmFBzmd89fxBlU9T1?= =?iso-8859-1?q?BJaftc8EFtvPuxl4kO9YFwUp4Qmi36/UWwwmGvIlpQJw6ZOxZS6ZRh8R/T4o?= =?iso-8859-1?q?uPD23znMiIMJ472oY17oyojqIT9ZKVAhl6COnIZnIFsu6+uny1KkMtFbOcZ9?= =?iso-8859-1?q?DK6RZ2DD26IUOOWfZdTxf/chzmwG8qI/1QZI4PyS9MhldWtRk3/XBQZUXEiw?= =?iso-8859-1?q?ko/v9IvsMPN0Oq+UwLV5TxnIynRJ6gL1e9Nev7B8EI2MyEL/4BRIWOfVOplb?= =?iso-8859-1?q?KlCLY977nh5m4sX0z17uS+LIBkJng2DSu8CWAWnd15BNdWn+XHB+UK5cgkUU?= =?iso-8859-1?q?g50FWdzp3nD5z8TgJok3UqKNpxRiTwgqByMrikVnhpUznSHoNmsBGpu4DV5p?= =?iso-8859-1?q?k9dtDuNTcGNqIfbdLuFh26whOVCBe0wlDKPVN7FFy1/xCIvGygfeW/BGCofv?= =?iso-8859-1?q?lidxWwadra2H0z0hQft65q6+ZDN610f9eQJEHb6huEhCHUR40CK0O5fWM8nZ?= =?iso-8859-1?q?eN38aZFjAi9aCnnj9nZzwjQrP/jc/yfrP7vvahvB9YLTSbw7s=3D?= 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)(35042699022)(82310400026)(1800799024)(36860700013)(376014)(14060799003)(13003099007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Sep 2025 17:20:12.4830 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fcdafccd-674c-49ef-c095-08ddf60e75f1 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: DU2PEPF00028CFC.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB9052 X-Spam-Status: No, score=-10.1 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 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 <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe> List-Archive: <https://gcc.gnu.org/pipermail/gcc-patches/> List-Post: <mailto:gcc-patches@gcc.gnu.org> List-Help: <mailto:gcc-patches-request@gcc.gnu.org?subject=help> List-Subscribe: <https://gcc.gnu.org/mailman/listinfo/gcc-patches>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org |
| Series |
fortran: Allow vector math functions only with fast-math [PR 118955]
|
|
Commit Message
Wilco Dijkstra
Sept. 17, 2025, 5:19 p.m. UTC
Vector math functions are currently always enabled in Fortran. This is
incorrect since vector math functions are designed to be Ofast only.
Add a new 'fastmath' option which only accepts vector functions if fast-math
is enabled:
!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath')
Passes regress.
gcc:
PR fortran/118955
* fortran/decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which
checks for fast-math before accepting a vector function.
* fortran/gfortran.texi (!GCC$ builtin): Update documentation.
gcc/testsuite:
PR fortran/118955
* gfortran.dg/simd-builtins-9.f90: Add new test.
* gfortran.dg/simd-builtins-9.h: Likewise.
---
Comments
ping
Adding Fortran list too ping
Hi Wilco, Am 13.01.26 um 2:27 PM schrieb Wilco Dijkstra: > > Adding Fortran list too > > ping the patch does not apply cleanly here. Can you rebase it? Thanks, Harald > ________________________________________ > From: Wilco Dijkstra > Sent: 17 September 2025 18:19 > To: GCC Patches <gcc-patches@gcc.gnu.org> > Subject: [PATCH] fortran: Allow vector math functions only with fast-math [PR 118955] > > > Vector math functions are currently always enabled in Fortran. This is > incorrect since vector math functions are designed to be Ofast only. > Add a new 'fastmath' option which only accepts vector functions if fast-math > is enabled: > > !GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath') > > Passes regress. > > gcc: > PR fortran/118955 > * fortran/decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which > checks for fast-math before accepting a vector function. > * fortran/gfortran.texi (!GCC$ builtin): Update documentation. > > gcc/testsuite: > PR fortran/118955 > * gfortran.dg/simd-builtins-9.f90: Add new test. > * gfortran.dg/simd-builtins-9.h: Likewise. > > --- > > diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc > index 9fe697cd5498467df2600fe878956e8050a28adb..04ed9075491d3ec2c9d7fb75bced34f9ffb9f577 100644 > --- a/gcc/fortran/decl.cc > +++ b/gcc/fortran/decl.cc > @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see > #include "parse.h" > #include "constructor.h" > #include "target.h" > +#include "flags.h" > > /* Macros to access allocate memory for gfc_data_variable, > gfc_data_value and gfc_data. */ > @@ -12562,9 +12563,17 @@ gfc_match_gcc_builtin (void) > > if (gfc_match (" if ( '%n' ) ", target) == MATCH_YES) > { > - const char *abi = targetm.get_multilib_abi_name (); > - if (abi == NULL || strcmp (abi, target) != 0) > - return MATCH_YES; > + if (strcmp (target, "fastmath") == 0) > + { > + if (!fast_math_flags_set_p (&global_options)) > + return MATCH_YES; > + } > + else > + { > + const char *abi = targetm.get_multilib_abi_name (); > + if (abi == NULL || strcmp (abi, target) != 0) > + return MATCH_YES; > + } > } > > if (gfc_vectorized_builtins == NULL) > diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi > index 841f6135066043935ca31496e910c69908c0c53e..e76c37f8123d0b5885730f01928d821606d42752 100644 > --- a/gcc/fortran/gfortran.texi > +++ b/gcc/fortran/gfortran.texi > @@ -3470,6 +3470,13 @@ for the built-in that should be vectorized. Example usage: > !GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') > @end smallexample > > +The special target @code{'fastmath'} is used to specify the vector > +implementation is only valid if fast-math is enabled: > + > +@smallexample > +!GCC$ builtin (exp) attributes simd (notinbranch) if('fastmath') > +@end smallexample > + > The purpose of the directive is to provide an API among the GCC compiler and > the GNU C Library which would define vector implementations of math routines. > > diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 > new file mode 100644 > index 0000000000000000000000000000000000000000..02944e578533afccc90768516cafb473f098f19d > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 > @@ -0,0 +1,16 @@ > +! { dg-do compile { target { aarch64*-*-linux* } } } > +! { dg-additional-options "-nostdinc -O3 -fpre-include=simd-builtins-9.h -fdump-tree-optimized" } > + > +program test_overloaded_intrinsic > + real(8) :: x8(3200), y8(3200) > + > + y8 = sin(x8) > + print *, y8 > + > + x8 = cos(y8) > + print *, x8 > +end > + > +! { dg-final { scan-tree-dump-not "sin.simdclone" "optimized" } } */ > + > +! { dg-final { scan-tree-dump "cos.simdclone" "optimized" } } */ > diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.h b/gcc/testsuite/gfortran.dg/simd-builtins-9.h > new file mode 100644 > index 0000000000000000000000000000000000000000..3ca3ea8062c9d1c99ccabc9dd5466befd6e6d4f6 > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.h > @@ -0,0 +1,2 @@ > +!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath') > +!GCC$ builtin (cos) attributes simd (notinbranch)
Hi Harald,
> the patch does not apply cleanly here. Can you rebase it?
Sure, see below:
Cheers,
Wilco
v2: Rebased to current trunk
Vector math functions are currently always enabled in Fortran. This is
incorrect since vector math functions are designed to be Ofast only.
Add a new 'fastmath' option which only accepts vector functions if fast-math
is enabled:
!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath')
Passes regress.
gcc:
PR fortran/118955
* fortran/decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which
checks for fast-math before accepting a vector function.
* fortran/gfortran.texi (!GCC$ builtin): Update documentation.
gcc/testsuite:
PR fortran/118955
* gfortran.dg/simd-builtins-9.f90: Add new test.
* gfortran.dg/simd-builtins-9.h: Likewise.
---
diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc
index 3d0410501b65dd4328815cdedda8c0e24cf2e00f..5348dc1bcacdd1173b37c696f053a2b8f3c66188 100644
--- a/gcc/fortran/decl.cc
+++ b/gcc/fortran/decl.cc
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "parse.h"
#include "constructor.h"
#include "target.h"
+#include "flags.h"
/* Macros to access allocate memory for gfc_data_variable,
gfc_data_value and gfc_data. */
@@ -12803,9 +12804,17 @@ gfc_match_gcc_builtin (void)
if (gfc_match (" if ( '%n' ) ", target) == MATCH_YES)
{
- const char *abi = targetm.get_multilib_abi_name ();
- if (abi == NULL || strcmp (abi, target) != 0)
- return MATCH_YES;
+ if (strcmp (target, "fastmath") == 0)
+ {
+ if (!fast_math_flags_set_p (&global_options))
+ return MATCH_YES;
+ }
+ else
+ {
+ const char *abi = targetm.get_multilib_abi_name ();
+ if (abi == NULL || strcmp (abi, target) != 0)
+ return MATCH_YES;
+ }
}
if (gfc_vectorized_builtins == NULL)
diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi
index c4f39acf6bc31398d010a4165e31b871b39aab20..a930cc1dc9c04348d9ef284789720a79055ca702 100644
--- a/gcc/fortran/gfortran.texi
+++ b/gcc/fortran/gfortran.texi
@@ -3454,6 +3454,13 @@ for the built-in that should be vectorized. Example usage:
!GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64')
@end smallexample
+The special target @code{'fastmath'} is used to specify the vector
+implementation is only valid if fast-math is enabled:
+
+@smallexample
+!GCC$ builtin (exp) attributes simd (notinbranch) if('fastmath')
+@end smallexample
+
The purpose of the directive is to provide an API among the GCC compiler and
the GNU C Library which would define vector implementations of math routines.
diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90
new file mode 100644
index 0000000000000000000000000000000000000000..02944e578533afccc90768516cafb473f098f19d
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90
@@ -0,0 +1,16 @@
+! { dg-do compile { target { aarch64*-*-linux* } } }
+! { dg-additional-options "-nostdinc -O3 -fpre-include=simd-builtins-9.h -fdump-tree-optimized" }
+
+program test_overloaded_intrinsic
+ real(8) :: x8(3200), y8(3200)
+
+ y8 = sin(x8)
+ print *, y8
+
+ x8 = cos(y8)
+ print *, x8
+end
+
+! { dg-final { scan-tree-dump-not "sin.simdclone" "optimized" } } */
+
+! { dg-final { scan-tree-dump "cos.simdclone" "optimized" } } */
diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.h b/gcc/testsuite/gfortran.dg/simd-builtins-9.h
new file mode 100644
index 0000000000000000000000000000000000000000..3ca3ea8062c9d1c99ccabc9dd5466befd6e6d4f6
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.h
@@ -0,0 +1,2 @@
+!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath')
+!GCC$ builtin (cos) attributes simd (notinbranch)
Hi Wilco, Am 14.01.26 um 7:17 PM schrieb Wilco Dijkstra: > Hi Harald, > >> the patch does not apply cleanly here. Can you rebase it? > > Sure, see below: > > Cheers, > Wilco > > > v2: Rebased to current trunk thanks, this works here. The patch looks good to me. Regarding your testcase, which is target-specific: you restrict it to aarch64, but it should in principle work on x64_64 too, and maybe on several other supported platforms. I verified that manually, as it is reported as unsupported when running the testsuite on x86_64-pc-linux-gnu. So if you - or someone else - find a better choice here, it is pre-approved. Thanks for the patch! Harald > Vector math functions are currently always enabled in Fortran. This is > incorrect since vector math functions are designed to be Ofast only. > Add a new 'fastmath' option which only accepts vector functions if fast-math > is enabled: > > !GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath') > > Passes regress. > > gcc: > PR fortran/118955 > * fortran/decl.cc (gfc_match_gcc_builtin): Add 'fastmath' option which > checks for fast-math before accepting a vector function. > * fortran/gfortran.texi (!GCC$ builtin): Update documentation. > > gcc/testsuite: > PR fortran/118955 > * gfortran.dg/simd-builtins-9.f90: Add new test. > * gfortran.dg/simd-builtins-9.h: Likewise. > > --- > > diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc > index 3d0410501b65dd4328815cdedda8c0e24cf2e00f..5348dc1bcacdd1173b37c696f053a2b8f3c66188 100644 > --- a/gcc/fortran/decl.cc > +++ b/gcc/fortran/decl.cc > @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see > #include "parse.h" > #include "constructor.h" > #include "target.h" > +#include "flags.h" > > /* Macros to access allocate memory for gfc_data_variable, > gfc_data_value and gfc_data. */ > @@ -12803,9 +12804,17 @@ gfc_match_gcc_builtin (void) > > if (gfc_match (" if ( '%n' ) ", target) == MATCH_YES) > { > - const char *abi = targetm.get_multilib_abi_name (); > - if (abi == NULL || strcmp (abi, target) != 0) > - return MATCH_YES; > + if (strcmp (target, "fastmath") == 0) > + { > + if (!fast_math_flags_set_p (&global_options)) > + return MATCH_YES; > + } > + else > + { > + const char *abi = targetm.get_multilib_abi_name (); > + if (abi == NULL || strcmp (abi, target) != 0) > + return MATCH_YES; > + } > } > > if (gfc_vectorized_builtins == NULL) > diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi > index c4f39acf6bc31398d010a4165e31b871b39aab20..a930cc1dc9c04348d9ef284789720a79055ca702 100644 > --- a/gcc/fortran/gfortran.texi > +++ b/gcc/fortran/gfortran.texi > @@ -3454,6 +3454,13 @@ for the built-in that should be vectorized. Example usage: > !GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') > @end smallexample > > +The special target @code{'fastmath'} is used to specify the vector > +implementation is only valid if fast-math is enabled: > + > +@smallexample > +!GCC$ builtin (exp) attributes simd (notinbranch) if('fastmath') > +@end smallexample > + > The purpose of the directive is to provide an API among the GCC compiler and > the GNU C Library which would define vector implementations of math routines. > > diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 > new file mode 100644 > index 0000000000000000000000000000000000000000..02944e578533afccc90768516cafb473f098f19d > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 > @@ -0,0 +1,16 @@ > +! { dg-do compile { target { aarch64*-*-linux* } } } > +! { dg-additional-options "-nostdinc -O3 -fpre-include=simd-builtins-9.h -fdump-tree-optimized" } > + > +program test_overloaded_intrinsic > + real(8) :: x8(3200), y8(3200) > + > + y8 = sin(x8) > + print *, y8 > + > + x8 = cos(y8) > + print *, x8 > +end > + > +! { dg-final { scan-tree-dump-not "sin.simdclone" "optimized" } } */ > + > +! { dg-final { scan-tree-dump "cos.simdclone" "optimized" } } */ > diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.h b/gcc/testsuite/gfortran.dg/simd-builtins-9.h > new file mode 100644 > index 0000000000000000000000000000000000000000..3ca3ea8062c9d1c99ccabc9dd5466befd6e6d4f6 > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.h > @@ -0,0 +1,2 @@ > +!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath') > +!GCC$ builtin (cos) attributes simd (notinbranch) > >
diff --git a/gcc/fortran/decl.cc b/gcc/fortran/decl.cc index 9fe697cd5498467df2600fe878956e8050a28adb..04ed9075491d3ec2c9d7fb75bced34f9ffb9f577 100644 --- a/gcc/fortran/decl.cc +++ b/gcc/fortran/decl.cc @@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see #include "parse.h" #include "constructor.h" #include "target.h" +#include "flags.h" /* Macros to access allocate memory for gfc_data_variable, gfc_data_value and gfc_data. */ @@ -12562,9 +12563,17 @@ gfc_match_gcc_builtin (void) if (gfc_match (" if ( '%n' ) ", target) == MATCH_YES) { - const char *abi = targetm.get_multilib_abi_name (); - if (abi == NULL || strcmp (abi, target) != 0) - return MATCH_YES; + if (strcmp (target, "fastmath") == 0) + { + if (!fast_math_flags_set_p (&global_options)) + return MATCH_YES; + } + else + { + const char *abi = targetm.get_multilib_abi_name (); + if (abi == NULL || strcmp (abi, target) != 0) + return MATCH_YES; + } } if (gfc_vectorized_builtins == NULL) diff --git a/gcc/fortran/gfortran.texi b/gcc/fortran/gfortran.texi index 841f6135066043935ca31496e910c69908c0c53e..e76c37f8123d0b5885730f01928d821606d42752 100644 --- a/gcc/fortran/gfortran.texi +++ b/gcc/fortran/gfortran.texi @@ -3470,6 +3470,13 @@ for the built-in that should be vectorized. Example usage: !GCC$ builtin (sinf) attributes simd (notinbranch) if('x86_64') @end smallexample +The special target @code{'fastmath'} is used to specify the vector +implementation is only valid if fast-math is enabled: + +@smallexample +!GCC$ builtin (exp) attributes simd (notinbranch) if('fastmath') +@end smallexample + The purpose of the directive is to provide an API among the GCC compiler and the GNU C Library which would define vector implementations of math routines. diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 new file mode 100644 index 0000000000000000000000000000000000000000..02944e578533afccc90768516cafb473f098f19d --- /dev/null +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.f90 @@ -0,0 +1,16 @@ +! { dg-do compile { target { aarch64*-*-linux* } } } +! { dg-additional-options "-nostdinc -O3 -fpre-include=simd-builtins-9.h -fdump-tree-optimized" } + +program test_overloaded_intrinsic + real(8) :: x8(3200), y8(3200) + + y8 = sin(x8) + print *, y8 + + x8 = cos(y8) + print *, x8 +end + +! { dg-final { scan-tree-dump-not "sin.simdclone" "optimized" } } */ + +! { dg-final { scan-tree-dump "cos.simdclone" "optimized" } } */ diff --git a/gcc/testsuite/gfortran.dg/simd-builtins-9.h b/gcc/testsuite/gfortran.dg/simd-builtins-9.h new file mode 100644 index 0000000000000000000000000000000000000000..3ca3ea8062c9d1c99ccabc9dd5466befd6e6d4f6 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/simd-builtins-9.h @@ -0,0 +1,2 @@ +!GCC$ builtin (sin) attributes simd (notinbranch) if('fastmath') +!GCC$ builtin (cos) attributes simd (notinbranch)