From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2042.outbound.protection.outlook.com [40.107.241.42]) by sourceware.org (Postfix) with ESMTPS id 5BD323858288 for ; Tue, 30 Apr 2024 12:50:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5BD323858288 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 5BD323858288 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.241.42 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1714481438; cv=pass; b=k2MtEFEwuWzAqri1wXiGXiRMfwCx4yaCEACf9S0kiHX9uDekBFWK1S1lrtLjc6m+Xu4CcUcfP2gWvpuvKDl+EWFZi5BDfyS5FzrO9i67CrdsLm+d7Dyi1kYLaALJUnUWekiCg28vnc1g0Ff7f2sqwkX6fUMMrVnuHt1VjH1XD40= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1714481438; c=relaxed/simple; bh=BZnIGv6/QqIlU+1Ql+zSVpY73nndHHRHsqHVaTrpYyE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=Iw7iY9rMva18olelWMHFCh9GmKXctipAw2AXDqi8pgPjzRHNJPhmFDrDDooFJZE3Dny619aftAadkJag8MjfGcryrPU71+traQz92dVl8TKTPMghvoAe+FCkeJSfnZDoFkdqJDIpO/FkuhPDBeHz8ExEmVLTMTixXyn5aPienfg= ARC-Authentication-Results: i=3; server2.sourceware.org ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=VqMfiZjBGp2Swt5y4BIAamccfEJ/F2PBDZFi/xJbhaO3n9SLbxMeQ1+TUT7Q24huxJ6RTtEFdgJSqGKnJmlRVChvhIInzkjF4T5RWbIrpSGPKqkZMsIVO61wanZNw8qk/fvQKqcbNqf8kQUMBIRnJxSPrFbAzReDJVh3JGd3xOedjnbIfzuXzXAP1968XhEQ5B+szk3cxj6Y9hTb3nj8IdlP7ddX8aChBOTUPQ3Bp2QQILJR9hxlBXLvP5BMCkSwCcERj3eqHumU2j8/JpYUe8KzxHtqala0tgAQHnEVcty3o4bTYTLc+E7bLTvhhAQHZj/taDTzE1jbjZerg1YysA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=rrwp5q5Dq8Fam8hj2a19DeNUlPKTw1fCjFIzZHP4Ewk=; b=LYCKyq6S4ZMAf1rxkWuaND8CR36B9bfjeaDzGniXRtsyU+GRtJbxvBqOxCO1pFyOV+plNNprYnTj+jFXMjj3gYUy582jGp1717puG2pOwJQxXJUj2JA6wSKrWVDTEtn3YksZgnbij9TfXcf+ghjpbDRSlrMrcboy7HiwTG7jAdGCakvEbdH/LSZucGnE+O859SWle0GFVJYRYk1UUdFAIRkXmuxjWFKbGTRpzBziPuBGiwzUkgr2BZsWXF3tZUei7v9jWPzMDE2JdCHqSK4P35s0rLtN4u3zlrY3UanMcuD+fefDmZlQEV4eAU5Mn72VBQPOf9KDdlqWKamYi9Uerg== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=sourceware.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=rrwp5q5Dq8Fam8hj2a19DeNUlPKTw1fCjFIzZHP4Ewk=; b=BLG1LOOYuvTgidvGeIjWmQBsQ7vIyM66y/ikPlQt5G5vkRAOqVgvUQMIpyVvDOPHcqDyJnifrnmUqQVg+w7GTGZ8PdX0pwMT0m946Pz4KAMsokXCS9fWXcEu9AY5sY380qh7af+XZSwnCWgQ3DaeF+g3Xu3yvvW2DdHqS+oFLfg= Received: from AS4P195CA0049.EURP195.PROD.OUTLOOK.COM (2603:10a6:20b:65a::25) by PAWPR08MB10305.eurprd08.prod.outlook.com (2603:10a6:102:367::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.32; Tue, 30 Apr 2024 12:50:20 +0000 Received: from AM3PEPF0000A790.eurprd04.prod.outlook.com (2603:10a6:20b:65a:cafe::f) by AS4P195CA0049.outlook.office365.com (2603:10a6:20b:65a::25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.32 via Frontend Transport; Tue, 30 Apr 2024 12:50: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 AM3PEPF0000A790.mail.protection.outlook.com (10.167.16.119) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.7544.18 via Frontend Transport; Tue, 30 Apr 2024 12:50:18 +0000 Received: ("Tessian outbound ba75727f6dca:v315"); Tue, 30 Apr 2024 12:50:18 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: eda5998650458668 X-CR-MTA-TID: 64aa7808 Received: from c5be33261b7c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 46EA6986-B1D2-4FBF-8D0E-683125DED672.1; Tue, 30 Apr 2024 12:50:12 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c5be33261b7c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 30 Apr 2024 12:50:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mFwzskLDbmmY/97GaXaVQP2Bh4oSR+/hdLOP8sW98ypC5hQOYOZFhjYCS9OUCMTNVvXcOKi2mR26fhsH0iRs9eR7g4yy27Dha8ErbPFYEEwWn1ZeuQw7zJ7LLS+1Ao79hlOSKBStNfUEbLlJUvJ6koae/fZgvY/JnkbtRAH0u8mrpttPuG09wggFOZJUTfwDAMJw59uh4TVIuQHQqdEmDAVGPua0s4XNOI6wtLBymFEmZ20Y0AWWEHPLU7/k5Sp6q9qH+zfRnV0P6ueDwIyCv6FUHVg6Nsx7HRaWit7SSteSRCnGIT7gyMT3/T0QUQPp0H/asspq/DIgdO2Gzs9f6g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=rrwp5q5Dq8Fam8hj2a19DeNUlPKTw1fCjFIzZHP4Ewk=; b=B9QKGlY2ws7gZ+BWxmvSBjZbzGHOXS1O/F/QMl3+3MkEFcUoN48LDU7SfmUht56xlFizi3RzrjNhEf2UeYiXb8x3YzsTQZshCQGviB0qk2kJaDYQNwlwKc+MCiEM6zYuRrB1xEE/TRwRVI3wOmG1NlYfqxqREkw7gEoqnaNyryWuM0xyxXQ1sk0R/yopRRTvhzE2kBvSM+zWHVoVoBm30Y+vVViisYHOc0Q9tFKYO03a4xctzqGlt0jZav0EaGcLJ+BA8L2HzInNq3vfWO4fAC4GDWINCEW0NsXkL/h8GQ7XnqsEhPOQ3oeQnuO89TlCUP4AhtepTD9V0wFhandquQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 40.67.248.234) smtp.rcpttodomain=sourceware.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=rrwp5q5Dq8Fam8hj2a19DeNUlPKTw1fCjFIzZHP4Ewk=; b=BLG1LOOYuvTgidvGeIjWmQBsQ7vIyM66y/ikPlQt5G5vkRAOqVgvUQMIpyVvDOPHcqDyJnifrnmUqQVg+w7GTGZ8PdX0pwMT0m946Pz4KAMsokXCS9fWXcEu9AY5sY380qh7af+XZSwnCWgQ3DaeF+g3Xu3yvvW2DdHqS+oFLfg= Received: from DU7PR01CA0021.eurprd01.prod.exchangelabs.com (2603:10a6:10:50f::9) by AS8PR08MB8182.eurprd08.prod.outlook.com (2603:10a6:20b:54f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.34; Tue, 30 Apr 2024 12:50:08 +0000 Received: from DU2PEPF00028D0B.eurprd03.prod.outlook.com (2603:10a6:10:50f:cafe::de) by DU7PR01CA0021.outlook.office365.com (2603:10a6:10:50f::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.36 via Frontend Transport; Tue, 30 Apr 2024 12:50:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 40.67.248.234) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 40.67.248.234 as permitted sender) receiver=protection.outlook.com; client-ip=40.67.248.234; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (40.67.248.234) by DU2PEPF00028D0B.mail.protection.outlook.com (10.167.242.171) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.7544.18 via Frontend Transport; Tue, 30 Apr 2024 12:50:06 +0000 Received: from AZ-NEU-EX04.Arm.com (10.251.24.32) by AZ-NEU-EX03.Arm.com (10.251.24.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 30 Apr 2024 12:50:02 +0000 Received: from vcn-man-apps.manchester.arm.com (10.32.108.22) by mail.arm.com (10.251.24.32) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Tue, 30 Apr 2024 12:50:02 +0000 From: Joe Ramsay To: CC: Joe Ramsay Subject: [PATCH 1/3] aarch64/fpu: Add vector variants of hypot Date: Tue, 30 Apr 2024 13:49:58 +0100 Message-ID: <20240430125000.50324-1-Joe.Ramsay@arm.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DU2PEPF00028D0B:EE_|AS8PR08MB8182:EE_|AM3PEPF0000A790:EE_|PAWPR08MB10305:EE_ X-MS-Office365-Filtering-Correlation-Id: 84010696-28e4-4e53-fac1-08dc69141719 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0;ARA:13230031|1800799015|376005|82310400014|36860700004; X-Microsoft-Antispam-Message-Info-Original: =?us-ascii?Q?b6WpPwdd6ifPOCQ6pq7aaU0N3g/23TM6eZmxvNtuVUsp4CBX9YlXwo4bas13?= =?us-ascii?Q?dfOXWd3kYCfzWCGgU0u4KAHMNdYEwrYfozPKqzcC1Gn3UzIwI6WwbfztaG2t?= =?us-ascii?Q?7lfAY/bM13I7uCjCe6y1EwwjkLKxjstckBfMAPK49NHypFSCyFeaTM4W64/X?= =?us-ascii?Q?fuJfIgku2xKOqeolTp/Gx3D/ZNhs1LEMPW9kt6pcZgqvgkevxi8WJrZjZ5PO?= =?us-ascii?Q?uxRDcrS2BLhCUbhOImcHQ+W+yCZVTmJ8R3GyR7SfpB42fx7xRpYx47ZIRMCA?= =?us-ascii?Q?/DWrcgEmK0rp8LUC8V3hM1TzDAj44KxFdI8gc4CsEQ4ap9HUk0wy2W3B5Nx1?= =?us-ascii?Q?1//sd9UyIIy1ietLmeJlIlxnDf87G+THI9EyXq10sKEIH2CeG0YsHvjHcbCE?= =?us-ascii?Q?40++wvCR1jp0Zq6Nrj/2dY/kUICFyP+tvhXsb+xSLtxXcVUUS5JLVdNo5Cw+?= =?us-ascii?Q?bPdhYEwguVMdtB5pS+zZKev+V90yoEBPTC1/UILN0NIbs+6EZBsOPey3UEHb?= =?us-ascii?Q?aNKtWM8wrec137PUHBYZJ6BAvCAKEe9+u2ezeBQ2zAHo5/VPOa9FhGfGQuSa?= =?us-ascii?Q?z1AEaMXsF8bkEsTnTf8e+RU99tN3RSteEsZy5jqN9NoxEpmsyJx9v14SIeu1?= =?us-ascii?Q?HbWNTTDCPMWNM6MURJUkYsz5oB6DGSmUwnUBEbGmCB+VyaHkAQbFo3c/EdAM?= =?us-ascii?Q?yEAPRgTUjsJ/eBJKRALhoUEbSLiM9f7A1cEWKdDiOpq7rOy5gT6UVqZxuJtb?= =?us-ascii?Q?e8sTmzkOVYsfkVL4RmFSwff4BbbV3brF9tTqAG18/BCDL2dBReWSYH+/8YYS?= =?us-ascii?Q?Yx63DR04ssDirQAW/0ZXuCh3ZI/tsJ5NM7T9tvZRn62fYiF2MPqRjwro7jjk?= =?us-ascii?Q?dDAVEZZEYCjUZGBNmlmv4jDVuOEuOeMWQP6m2xpljZbawlwmj1dnqaVH96Vg?= =?us-ascii?Q?IOu2tEujMhoR53XziZmrU8C2HOuBHpIAdnSRvFVU/Cu0+puDmhhaZHCbrGBS?= =?us-ascii?Q?4GZCfwXhe8lx1XnQALiDX1xC9gGXzYJ6DwYhwGPugdZCQ8Y5pQgTwgZOMYWj?= =?us-ascii?Q?f8XNJvom8pOamePqcIMBO+MB7ovhBLnQTEMHzQJdBFFh2IMVmuR81v+/zeHq?= =?us-ascii?Q?myKL9yYR1HOMs5bEOxZCmJbSGtPPY0mD79ssajkhG86VI+N364SKp0BWvYAw?= =?us-ascii?Q?YCkkqvmMcDHiAn25KQcS4vtTxrUO7UYB12ivoQeTUznuhF/2jSDRA+/3Vjsh?= =?us-ascii?Q?COdenNiiJcra18c2G7ZAMgm+n1hBdctrN7pFvY/7w9n9B3im6tSOgyxouAHO?= =?us-ascii?Q?St4J2qcF+TVyEDTRopQQ+/FZ?= X-Forefront-Antispam-Report-Untrusted: CIP:40.67.248.234;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:nebula.arm.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230031)(1800799015)(376005)(82310400014)(36860700004);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8182 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A790.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0968970e-d36b-45d1-7c4f-08dc69140f8e X-Microsoft-Antispam: BCL:0;ARA:13230031|35042699010|1800799015|376005|82310400014|36860700004; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?hscfFjIj8+FFIxZxnWuByvygTLZVNq/2TTIbgJ/AX0MWTAXSSlV+idigL1zE?= =?us-ascii?Q?apk89K8V88xbGlBSgMxQdH/5Emc8rxPXg4TdWLK5YDgmLeuJiwnbvfRf9LvY?= =?us-ascii?Q?wTOPz3w2gwn5ejr2xC5tbKfDVqyxozM6YPn81G1jeVda2t9kgh8EDlkcexbP?= =?us-ascii?Q?Nlef5TZnpdQble5tUXGPKUOhY1k4de5aD2JWT39lMxiNGkNhJ7Fb3C+/M890?= =?us-ascii?Q?lUsKZnQ5ffmEiflCImzCk2aiWVp5ITNzwmA6vBiRKUaNlb67VL+whbbI9qrT?= =?us-ascii?Q?VCkWQPiMoSedDL6xaVbIsfYMqn96Xy0X6zBujhXK+VC9eC9q71NeKeJVEiYE?= =?us-ascii?Q?IFlRx7UsID5QH2T/nynrmS4mXRKT0hPbsrBB9BxfHr9nH7HgDpy2Xtx2t8Kj?= =?us-ascii?Q?Ur+TTKo43ASru+FRS24wgEVR70jZGBMqJEt7sCiMKOPAxsz5Lldx/06VEFUb?= =?us-ascii?Q?JyPloP3LDbQGsn9zG6NirTW6s7dKHIPgSG70WhKZASQk58HAXIzBj4JSaXMD?= =?us-ascii?Q?lP1Kpt5dGbkuTMb7ITdPYcDOxIiX0c1nZdHbyP1E6YANqsXwnE4oH2HYN+jv?= =?us-ascii?Q?V5yU4DnftLA9TyYHclGeucCEvOfQd5JCk3nkVHxv0+Kt6aTADKcQ9/7JNnoK?= =?us-ascii?Q?CpGqc+sWdavbhs81PJegGBbkTQk1MkM4vZNvUq5lzESBtQiv9RRMFUw4/x7Z?= =?us-ascii?Q?8UVZRkuWDda9OTngU268puVVO3e9e59aZDv/81ZtHlkDeh3BkvBSAAsSHLSi?= =?us-ascii?Q?K5qecoxDePyeAH5M/yhXgLLBmEPsNdzYpbnWl6vUly6AhtEPsf1KoCFkdt/5?= =?us-ascii?Q?HdyRqIkhlE28OyUzuWHH5QQ82hMwTXcSCOxX2oFTJ2HUF2+2WaNACetPjd9l?= =?us-ascii?Q?cd5FWyvEOKReb1ZuEYLMXU6gtBRb0LQdKrfwGZCqRk51N07JvyXG2eU/lZUZ?= =?us-ascii?Q?cC/ei5I80EedNhwLJOO5E2azGniIObYaguCQ8zBc8mfZTJ3PFxcRrZTi5gTC?= =?us-ascii?Q?5Hz1eu1mwfLY5Z/IqDnoipPcPoZBuRA0o9thMIit5SrfsgeU8lcT9pVSADu9?= =?us-ascii?Q?gDKFg066pcQc4dkOWkTA/YST7dfoTI6kBSZMJvWMtq4U+fwUCnCRgnVvXK8E?= =?us-ascii?Q?EgGUrvK+3lAVl6+AUfz34dAoICena09h0Te/t9iqqt+Ka3fwDtG5Pk/noWlE?= =?us-ascii?Q?R4L2jQTzCyHXaX3EgNFTQmh8kq8xScp8hEHLbMmcjY4Qe/R52XmY5UxH0AOI?= =?us-ascii?Q?6I9DYkOtucy/ED8VQCLfc1GTJnSvEq1gTWIcyKJeDJL93iMcJcJKhnsFmHcG?= =?us-ascii?Q?LfdJUaYkFzmDligdgGCIu0M9?= 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:(13230031)(35042699010)(1800799015)(376005)(82310400014)(36860700004);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Apr 2024 12:50:18.6983 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 84010696-28e4-4e53-fac1-08dc69141719 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: AM3PEPF0000A790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB10305 X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO,GIT_PATCH_0,KAM_SHORT,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --- Thanks, Joe sysdeps/aarch64/fpu/Makefile | 1 + sysdeps/aarch64/fpu/Versions | 5 + sysdeps/aarch64/fpu/advsimd_f32_protos.h | 1 + sysdeps/aarch64/fpu/bits/math-vector.h | 8 ++ sysdeps/aarch64/fpu/hypot_advsimd.c | 97 ++++++++++++++++++ sysdeps/aarch64/fpu/hypot_sve.c | 54 ++++++++++ sysdeps/aarch64/fpu/hypotf_advsimd.c | 98 +++++++++++++++++++ sysdeps/aarch64/fpu/hypotf_sve.c | 48 +++++++++ .../fpu/test-double-advsimd-wrappers.c | 1 + .../aarch64/fpu/test-double-sve-wrappers.c | 1 + .../aarch64/fpu/test-float-advsimd-wrappers.c | 1 + sysdeps/aarch64/fpu/test-float-sve-wrappers.c | 1 + sysdeps/aarch64/libm-test-ulps | 8 ++ .../unix/sysv/linux/aarch64/libmvec.abilist | 5 + 14 files changed, 329 insertions(+) create mode 100644 sysdeps/aarch64/fpu/hypot_advsimd.c create mode 100644 sysdeps/aarch64/fpu/hypot_sve.c create mode 100644 sysdeps/aarch64/fpu/hypotf_advsimd.c create mode 100644 sysdeps/aarch64/fpu/hypotf_sve.c diff --git a/sysdeps/aarch64/fpu/Makefile b/sysdeps/aarch64/fpu/Makefile index e8af35099d..06657782a1 100644 --- a/sysdeps/aarch64/fpu/Makefile +++ b/sysdeps/aarch64/fpu/Makefile @@ -13,6 +13,7 @@ libmvec-supported-funcs = acos \ exp10 \ exp2 \ expm1 \ + hypot \ log \ log10 \ log1p \ diff --git a/sysdeps/aarch64/fpu/Versions b/sysdeps/aarch64/fpu/Versions index 3cb1b82bd2..aedae9457b 100644 --- a/sysdeps/aarch64/fpu/Versions +++ b/sysdeps/aarch64/fpu/Versions @@ -109,6 +109,11 @@ libmvec { _ZGVnN4v_erfcf; _ZGVsMxv_erfc; _ZGVsMxv_erfcf; + _ZGVnN4vv_hypotf; + _ZGVnN2vv_hypotf; + _ZGVnN2vv_hypot; + _ZGVsMxvv_hypotf; + _ZGVsMxvv_hypot; _ZGVnN2v_sinh; _ZGVnN2v_sinhf; _ZGVnN4v_sinhf; diff --git a/sysdeps/aarch64/fpu/advsimd_f32_protos.h b/sysdeps/aarch64/fpu/advsimd_f32_protos.h index 383c436972..a8889a92fd 100644 --- a/sysdeps/aarch64/fpu/advsimd_f32_protos.h +++ b/sysdeps/aarch64/fpu/advsimd_f32_protos.h @@ -31,6 +31,7 @@ libmvec_hidden_proto (V_NAME_F1(exp10)); libmvec_hidden_proto (V_NAME_F1(exp2)); libmvec_hidden_proto (V_NAME_F1(exp)); libmvec_hidden_proto (V_NAME_F1(expm1)); +libmvec_hidden_proto (V_NAME_F2(hypot)); libmvec_hidden_proto (V_NAME_F1(log10)); libmvec_hidden_proto (V_NAME_F1(log1p)); libmvec_hidden_proto (V_NAME_F1(log2)); diff --git a/sysdeps/aarch64/fpu/bits/math-vector.h b/sysdeps/aarch64/fpu/bits/math-vector.h index e29b2d1c09..ca30177339 100644 --- a/sysdeps/aarch64/fpu/bits/math-vector.h +++ b/sysdeps/aarch64/fpu/bits/math-vector.h @@ -89,6 +89,10 @@ # define __DECL_SIMD_expm1 __DECL_SIMD_aarch64 # undef __DECL_SIMD_expm1f # define __DECL_SIMD_expm1f __DECL_SIMD_aarch64 +# undef __DECL_SIMD_hypot +# define __DECL_SIMD_hypot __DECL_SIMD_aarch64 +# undef __DECL_SIMD_hypotf +# define __DECL_SIMD_hypotf __DECL_SIMD_aarch64 # undef __DECL_SIMD_log # define __DECL_SIMD_log __DECL_SIMD_aarch64 # undef __DECL_SIMD_logf @@ -162,6 +166,7 @@ __vpcs __f32x4_t _ZGVnN4v_expf (__f32x4_t); __vpcs __f32x4_t _ZGVnN4v_exp10f (__f32x4_t); __vpcs __f32x4_t _ZGVnN4v_exp2f (__f32x4_t); __vpcs __f32x4_t _ZGVnN4v_expm1f (__f32x4_t); +__vpcs __f32x4_t _ZGVnN4vv_hypotf (__f32x4_t, __f32x4_t); __vpcs __f32x4_t _ZGVnN4v_logf (__f32x4_t); __vpcs __f32x4_t _ZGVnN4v_log10f (__f32x4_t); __vpcs __f32x4_t _ZGVnN4v_log1pf (__f32x4_t); @@ -186,6 +191,7 @@ __vpcs __f64x2_t _ZGVnN2v_exp (__f64x2_t); __vpcs __f64x2_t _ZGVnN2v_exp10 (__f64x2_t); __vpcs __f64x2_t _ZGVnN2v_exp2 (__f64x2_t); __vpcs __f64x2_t _ZGVnN2v_expm1 (__f64x2_t); +__vpcs __f64x2_t _ZGVnN2vv_hypot (__f64x2_t, __f64x2_t); __vpcs __f64x2_t _ZGVnN2v_log (__f64x2_t); __vpcs __f64x2_t _ZGVnN2v_log10 (__f64x2_t); __vpcs __f64x2_t _ZGVnN2v_log1p (__f64x2_t); @@ -215,6 +221,7 @@ __sv_f32_t _ZGVsMxv_expf (__sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_exp10f (__sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_exp2f (__sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_expm1f (__sv_f32_t, __sv_bool_t); +__sv_f32_t _ZGVsMxvv_hypotf (__sv_f32_t, __sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_logf (__sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_log10f (__sv_f32_t, __sv_bool_t); __sv_f32_t _ZGVsMxv_log1pf (__sv_f32_t, __sv_bool_t); @@ -239,6 +246,7 @@ __sv_f64_t _ZGVsMxv_exp (__sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_exp10 (__sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_exp2 (__sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_expm1 (__sv_f64_t, __sv_bool_t); +__sv_f64_t _ZGVsMxvv_hypot (__sv_f64_t, __sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_log (__sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_log10 (__sv_f64_t, __sv_bool_t); __sv_f64_t _ZGVsMxv_log1p (__sv_f64_t, __sv_bool_t); diff --git a/sysdeps/aarch64/fpu/hypot_advsimd.c b/sysdeps/aarch64/fpu/hypot_advsimd.c new file mode 100644 index 0000000000..e4e279fa0c --- /dev/null +++ b/sysdeps/aarch64/fpu/hypot_advsimd.c @@ -0,0 +1,97 @@ +/* Double-precision vector (Advanced SIMD) hypot function + + Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "v_math.h" + +#if WANT_SIMD_EXCEPT +static const struct data +{ + uint64x2_t tiny_bound, thres; +} data = { + .tiny_bound = V2 (0x2000000000000000), /* asuint (0x1p-511). */ + .thres = V2 (0x3fe0000000000000), /* asuint (0x1p511) - tiny_bound. */ +}; +#else +static const struct data +{ + uint64x2_t tiny_bound; + uint32x4_t thres; +} data = { + .tiny_bound = V2 (0x0360000000000000), /* asuint (0x1p-969). */ + .thres = V4 (0x7c900000), /* asuint (inf) - tiny_bound. */ +}; +#endif + +static float64x2_t VPCS_ATTR NOINLINE +special_case (float64x2_t x, float64x2_t y, float64x2_t sqsum, + uint32x2_t special) +{ + return v_call2_f64 (hypot, x, y, vsqrtq_f64 (sqsum), vmovl_u32 (special)); +} + +/* Vector implementation of double-precision hypot. + Maximum error observed is 1.21 ULP: + _ZGVnN2vv_hypot (0x1.6a1b193ff85b5p-204, 0x1.bc50676c2a447p-222) + got 0x1.6a1b19400964ep-204 + want 0x1.6a1b19400964dp-204. */ +#if WANT_SIMD_EXCEPT + +float64x2_t VPCS_ATTR V_NAME_D2 (hypot) (float64x2_t x, float64x2_t y) +{ + const struct data *d = ptr_barrier (&data); + + float64x2_t ax = vabsq_f64 (x); + float64x2_t ay = vabsq_f64 (y); + + uint64x2_t ix = vreinterpretq_u64_f64 (ax); + uint64x2_t iy = vreinterpretq_u64_f64 (ay); + + /* Extreme values, NaNs, and infinities should be handled by the scalar + fallback for correct flag handling. */ + uint64x2_t specialx = vcgeq_u64 (vsubq_u64 (ix, d->tiny_bound), d->thres); + uint64x2_t specialy = vcgeq_u64 (vsubq_u64 (iy, d->tiny_bound), d->thres); + ax = v_zerofy_f64 (ax, specialx); + ay = v_zerofy_f64 (ay, specialy); + uint32x2_t special = vaddhn_u64 (specialx, specialy); + + float64x2_t sqsum = vfmaq_f64 (vmulq_f64 (ax, ax), ay, ay); + + if (__glibc_unlikely (v_any_u32h (special))) + return special_case (x, y, sqsum, special); + + return vsqrtq_f64 (sqsum); +} +#else + +float64x2_t VPCS_ATTR V_NAME_D2 (hypot) (float64x2_t x, float64x2_t y) +{ + const struct data *d = ptr_barrier (&data); + + float64x2_t sqsum = vfmaq_f64 (vmulq_f64 (x, x), y, y); + + uint32x2_t special = vcge_u32 ( + vsubhn_u64 (vreinterpretq_u64_f64 (sqsum), d->tiny_bound), + vget_low_u32 (d->thres)); + + if (__glibc_unlikely (v_any_u32h (special))) + return special_case (x, y, sqsum, special); + + return vsqrtq_f64 (sqsum); +} +#endif diff --git a/sysdeps/aarch64/fpu/hypot_sve.c b/sysdeps/aarch64/fpu/hypot_sve.c new file mode 100644 index 0000000000..74417040ac --- /dev/null +++ b/sysdeps/aarch64/fpu/hypot_sve.c @@ -0,0 +1,54 @@ +/* Double-precision vector (SVE) hypot function + + Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "sv_math.h" + +static const struct data +{ + uint64_t tiny_bound, thres; +} data = { + .tiny_bound = 0x0c80000000000000, /* asuint (0x1p-102). */ + .thres = 0x7300000000000000, /* asuint (inf) - tiny_bound. */ +}; + +static svfloat64_t NOINLINE +special_case (svfloat64_t sqsum, svfloat64_t x, svfloat64_t y, svbool_t pg, + svbool_t special) +{ + return sv_call2_f64 (hypot, x, y, svsqrt_x (pg, sqsum), special); +} + +/* SVE implementation of double-precision hypot. + Maximum error observed is 1.21 ULP: + _ZGVsMxvv_hypot (-0x1.6a22d0412cdd3p+352, 0x1.d3d89bd66fb1ap+330) + got 0x1.6a22d0412cfp+352 + want 0x1.6a22d0412cf01p+352. */ +svfloat64_t SV_NAME_D2 (hypot) (svfloat64_t x, svfloat64_t y, svbool_t pg) +{ + const struct data *d = ptr_barrier (&data); + + svfloat64_t sqsum = svmla_x (pg, svmul_x (pg, x, x), y, y); + + svbool_t special = svcmpge ( + pg, svsub_x (pg, svreinterpret_u64 (sqsum), d->tiny_bound), d->thres); + + if (__glibc_unlikely (svptest_any (pg, special))) + return special_case (sqsum, x, y, pg, special); + return svsqrt_x (pg, sqsum); +} diff --git a/sysdeps/aarch64/fpu/hypotf_advsimd.c b/sysdeps/aarch64/fpu/hypotf_advsimd.c new file mode 100644 index 0000000000..34818b021a --- /dev/null +++ b/sysdeps/aarch64/fpu/hypotf_advsimd.c @@ -0,0 +1,98 @@ +/* Single-precision vector (Advanced SIMD) hypot function + + Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "v_math.h" + +#if WANT_SIMD_EXCEPT +static const struct data +{ + uint32x4_t tiny_bound, thres; +} data = { + .tiny_bound = V4 (0x20000000), /* asuint (0x1p-63). */ + .thres = V4 (0x3f000000), /* asuint (0x1p63) - tiny_bound. */ +}; +#else +static const struct data +{ + uint32x4_t tiny_bound; + uint16x8_t thres; +} data = { + .tiny_bound = V4 (0x0C800000), /* asuint (0x1p-102). */ + .thres = V8 (0x7300), /* asuint (inf) - tiny_bound. */ +}; +#endif + +static float32x4_t VPCS_ATTR NOINLINE +special_case (float32x4_t x, float32x4_t y, float32x4_t sqsum, + uint16x4_t special) +{ + return v_call2_f32 (hypotf, x, y, vsqrtq_f32 (sqsum), vmovl_u16 (special)); +} + +/* Vector implementation of single-precision hypot. + Maximum error observed is 1.21 ULP: + _ZGVnN4vv_hypotf (0x1.6a419cp-13, 0x1.82a852p-22) got 0x1.6a41d2p-13 + want 0x1.6a41dp-13. */ +#if WANT_SIMD_EXCEPT + +float32x4_t VPCS_ATTR V_NAME_F2 (hypot) (float32x4_t x, float32x4_t y) +{ + const struct data *d = ptr_barrier (&data); + + float32x4_t ax = vabsq_f32 (x); + float32x4_t ay = vabsq_f32 (y); + + uint32x4_t ix = vreinterpretq_u32_f32 (ax); + uint32x4_t iy = vreinterpretq_u32_f32 (ay); + + /* Extreme values, NaNs, and infinities should be handled by the scalar + fallback for correct flag handling. */ + uint32x4_t specialx = vcgeq_u32 (vsubq_u32 (ix, d->tiny_bound), d->thres); + uint32x4_t specialy = vcgeq_u32 (vsubq_u32 (iy, d->tiny_bound), d->thres); + ax = v_zerofy_f32 (ax, specialx); + ay = v_zerofy_f32 (ay, specialy); + uint16x4_t special = vaddhn_u32 (specialx, specialy); + + float32x4_t sqsum = vfmaq_f32 (vmulq_f32 (ax, ax), ay, ay); + + if (__glibc_unlikely (v_any_u16h (special))) + return special_case (x, y, sqsum, special); + + return vsqrtq_f32 (sqsum); +} +#else + +float32x4_t VPCS_ATTR V_NAME_F2 (hypot) (float32x4_t x, float32x4_t y) +{ + const struct data *d = ptr_barrier (&data); + + float32x4_t sqsum = vfmaq_f32 (vmulq_f32 (x, x), y, y); + + uint16x4_t special = vcge_u16 ( + vsubhn_u32 (vreinterpretq_u32_f32 (sqsum), d->tiny_bound), + vget_low_u16 (d->thres)); + + if (__glibc_unlikely (v_any_u16h (special))) + return special_case (x, y, sqsum, special); + + return vsqrtq_f32 (sqsum); +} +#endif +libmvec_hidden_def (V_NAME_F2 (hypot)) +HALF_WIDTH_ALIAS_F2(hypot) diff --git a/sysdeps/aarch64/fpu/hypotf_sve.c b/sysdeps/aarch64/fpu/hypotf_sve.c new file mode 100644 index 0000000000..3a403de66e --- /dev/null +++ b/sysdeps/aarch64/fpu/hypotf_sve.c @@ -0,0 +1,48 @@ +/* Single-precision vector (SVE) hypot function + + Copyright (C) 2024 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include "sv_math.h" + +#define TinyBound 0x0c800000 /* asuint (0x1p-102). */ +#define Thres 0x73000000 /* 0x70000000 - TinyBound. */ + +static svfloat32_t NOINLINE +special_case (svfloat32_t sqsum, svfloat32_t x, svfloat32_t y, svbool_t pg, + svbool_t special) +{ + return sv_call2_f32 (hypotf, x, y, svsqrt_x (pg, sqsum), special); +} + +/* SVE implementation of single-precision hypot. + Maximum error observed is 1.21 ULP: + _ZGVsMxvv_hypotf (0x1.6a213cp-19, -0x1.32b982p-26) got 0x1.6a2346p-19 + want 0x1.6a2344p-19. */ +svfloat32_t SV_NAME_F2 (hypot) (svfloat32_t x, svfloat32_t y, + const svbool_t pg) +{ + svfloat32_t sqsum = svmla_x (pg, svmul_x (pg, x, x), y, y); + + svbool_t special = svcmpge ( + pg, svsub_x (pg, svreinterpret_u32 (sqsum), TinyBound), Thres); + + if (__glibc_unlikely (svptest_any (pg, special))) + return special_case (sqsum, x, y, pg, special); + + return svsqrt_x (pg, sqsum); +} diff --git a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c index f2d8714075..417125be47 100644 --- a/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c +++ b/sysdeps/aarch64/fpu/test-double-advsimd-wrappers.c @@ -38,6 +38,7 @@ VPCS_VECTOR_WRAPPER (exp_advsimd, _ZGVnN2v_exp) VPCS_VECTOR_WRAPPER (exp10_advsimd, _ZGVnN2v_exp10) VPCS_VECTOR_WRAPPER (exp2_advsimd, _ZGVnN2v_exp2) VPCS_VECTOR_WRAPPER (expm1_advsimd, _ZGVnN2v_expm1) +VPCS_VECTOR_WRAPPER_ff (hypot_advsimd, _ZGVnN2vv_hypot) VPCS_VECTOR_WRAPPER (log_advsimd, _ZGVnN2v_log) VPCS_VECTOR_WRAPPER (log10_advsimd, _ZGVnN2v_log10) VPCS_VECTOR_WRAPPER (log1p_advsimd, _ZGVnN2v_log1p) diff --git a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c index 37873d5e43..31ebf18705 100644 --- a/sysdeps/aarch64/fpu/test-double-sve-wrappers.c +++ b/sysdeps/aarch64/fpu/test-double-sve-wrappers.c @@ -57,6 +57,7 @@ SVE_VECTOR_WRAPPER (exp_sve, _ZGVsMxv_exp) SVE_VECTOR_WRAPPER (exp10_sve, _ZGVsMxv_exp10) SVE_VECTOR_WRAPPER (exp2_sve, _ZGVsMxv_exp2) SVE_VECTOR_WRAPPER (expm1_sve, _ZGVsMxv_expm1) +SVE_VECTOR_WRAPPER_ff (hypot_sve, _ZGVsMxvv_hypot) SVE_VECTOR_WRAPPER (log_sve, _ZGVsMxv_log) SVE_VECTOR_WRAPPER (log10_sve, _ZGVsMxv_log10) SVE_VECTOR_WRAPPER (log1p_sve, _ZGVsMxv_log1p) diff --git a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c index 08e33115b9..dab0f1cfcb 100644 --- a/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c +++ b/sysdeps/aarch64/fpu/test-float-advsimd-wrappers.c @@ -38,6 +38,7 @@ VPCS_VECTOR_WRAPPER (expf_advsimd, _ZGVnN4v_expf) VPCS_VECTOR_WRAPPER (exp10f_advsimd, _ZGVnN4v_exp10f) VPCS_VECTOR_WRAPPER (exp2f_advsimd, _ZGVnN4v_exp2f) VPCS_VECTOR_WRAPPER (expm1f_advsimd, _ZGVnN4v_expm1f) +VPCS_VECTOR_WRAPPER_ff (hypotf_advsimd, _ZGVnN4vv_hypotf) VPCS_VECTOR_WRAPPER (logf_advsimd, _ZGVnN4v_logf) VPCS_VECTOR_WRAPPER (log10f_advsimd, _ZGVnN4v_log10f) VPCS_VECTOR_WRAPPER (log1pf_advsimd, _ZGVnN4v_log1pf) diff --git a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c index 025daa662e..2aa6cbcc28 100644 --- a/sysdeps/aarch64/fpu/test-float-sve-wrappers.c +++ b/sysdeps/aarch64/fpu/test-float-sve-wrappers.c @@ -57,6 +57,7 @@ SVE_VECTOR_WRAPPER (expf_sve, _ZGVsMxv_expf) SVE_VECTOR_WRAPPER (exp10f_sve, _ZGVsMxv_exp10f) SVE_VECTOR_WRAPPER (exp2f_sve, _ZGVsMxv_exp2f) SVE_VECTOR_WRAPPER (expm1f_sve, _ZGVsMxv_expm1f) +SVE_VECTOR_WRAPPER_ff (hypotf_sve, _ZGVsMxvv_hypotf) SVE_VECTOR_WRAPPER (logf_sve, _ZGVsMxv_logf) SVE_VECTOR_WRAPPER (log10f_sve, _ZGVsMxv_log10f) SVE_VECTOR_WRAPPER (log1pf_sve, _ZGVsMxv_log1pf) diff --git a/sysdeps/aarch64/libm-test-ulps b/sysdeps/aarch64/libm-test-ulps index 116a5404f5..e7463d30bc 100644 --- a/sysdeps/aarch64/libm-test-ulps +++ b/sysdeps/aarch64/libm-test-ulps @@ -1174,10 +1174,18 @@ double: 1 float: 1 ldouble: 1 +Function: "hypot_advsimd": +double: 1 +float: 1 + Function: "hypot_downward": double: 1 ldouble: 1 +Function: "hypot_sve": +double: 1 +float: 1 + Function: "hypot_towardzero": double: 1 ldouble: 1 diff --git a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist index 26c3fbf18b..1184374efd 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libmvec.abilist @@ -89,6 +89,8 @@ GLIBC_2.40 _ZGVnN2v_sinh F GLIBC_2.40 _ZGVnN2v_sinhf F GLIBC_2.40 _ZGVnN2v_tanh F GLIBC_2.40 _ZGVnN2v_tanhf F +GLIBC_2.40 _ZGVnN2vv_hypot F +GLIBC_2.40 _ZGVnN2vv_hypotf F GLIBC_2.40 _ZGVnN4v_acoshf F GLIBC_2.40 _ZGVnN4v_asinhf F GLIBC_2.40 _ZGVnN4v_atanhf F @@ -97,6 +99,7 @@ GLIBC_2.40 _ZGVnN4v_erfcf F GLIBC_2.40 _ZGVnN4v_erff F GLIBC_2.40 _ZGVnN4v_sinhf F GLIBC_2.40 _ZGVnN4v_tanhf F +GLIBC_2.40 _ZGVnN4vv_hypotf F GLIBC_2.40 _ZGVsMxv_acosh F GLIBC_2.40 _ZGVsMxv_acoshf F GLIBC_2.40 _ZGVsMxv_asinh F @@ -113,3 +116,5 @@ GLIBC_2.40 _ZGVsMxv_sinh F GLIBC_2.40 _ZGVsMxv_sinhf F GLIBC_2.40 _ZGVsMxv_tanh F GLIBC_2.40 _ZGVsMxv_tanhf F +GLIBC_2.40 _ZGVsMxvv_hypot F +GLIBC_2.40 _ZGVsMxvv_hypotf F -- 2.27.0