From patchwork Fri Oct 14 14:31:45 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Wilco Dijkstra X-Patchwork-Id: 58835 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D98573860764 for ; Fri, 14 Oct 2022 14:32:44 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D98573860764 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1665757964; bh=OtZkRumGOk7+Reb4PvMgNUYCNuNP4n4tNwTaY+pBIKQ=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=AowDcFf6UW9kKzqczbFwD1fbuPNFPSrQVFNQocD775kSjs/mnbB6SDUi5Zj2sXV+Q kRt6/BTS078eS88HXYQq6SIcuQZLYlQcuofcWUiKl/J+mRNlPEsT9dUeKb2JwBMdbS 8tI2vYtj1rlBOz9SLEZqeE0FVZuPJ7zh+J9S5q+c= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2043.outbound.protection.outlook.com [40.107.22.43]) by sourceware.org (Postfix) with ESMTPS id 3A97A3860753 for ; Fri, 14 Oct 2022 14:31:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 3A97A3860753 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=GsT+a8thb0V5q/6KtXPUH5l3Nzr9arwUaTb0RiV0difEGiQ6AlQMyViW2Ry4cSZt4qHZPvF8+QJ8KP10/l8jgrjgi75FF2V3GbA6tjOSGHi5y4l4UGfx8s0MaIuZqCBzV5VYVnZfgQvBtkRyJY7/VmyNUe+YVxmiuoY54fwnDKlkX6RG4DRroH8tyGgd5WriVBaQb2TYUiqMtZ1cDCOm6wXPSS5DS9vXnA5UNG0ZY4eOEqri5nul/oe3tC1QBXFMs17fShG2uVrsQdAl5h8Wu7+1mSqgfj5eSgDkekrWE2Mi1+xDhcpmkhz3sI+kCT7oBwMFooSQduOGsRdO8zoT5Q== 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=OtZkRumGOk7+Reb4PvMgNUYCNuNP4n4tNwTaY+pBIKQ=; b=LVBquCem5UL6VXeptCedRITXZN2uePzioJ1ucudmYZxyGdVVBE7fQmZMSv6Qzh0zv1eA1GKkpQJXtbBAH8ZU0gBxLZV06FTy7tMZAs9pdSBX4s/nACPGunXLKB7MRVgSxsyWzESlWmw8OXEsreqU3Dqv1qDRBZ8Su223OdHGfELtZptEVOj4Fk/m200aevw1YL95aR33Elg5Q4/w2OFCRSQZLxh3YEnH1Ln4NAsOBSfvOffgNJ9vp192SPSzFDoNaMX9OaPujLqSoPytfIrSBa2OLlM/q5UkSX1p8zewuAx6Wi9kklTzXUnmcMGUuMbXqN6IhYCDAc2q5lBzphcXPg== 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=armh.onmicrosoft.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]) Received: from AM6P193CA0088.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:88::29) by DBBPR08MB6315.eurprd08.prod.outlook.com (2603:10a6:10:209::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.26; Fri, 14 Oct 2022 14:31:54 +0000 Received: from AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:88:cafe::89) by AM6P193CA0088.outlook.office365.com (2603:10a6:209:88::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29 via Frontend Transport; Fri, 14 Oct 2022 14:31:54 +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=armh.onmicrosoft.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 AM7EUR03FT008.mail.protection.outlook.com (100.127.141.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5709.10 via Frontend Transport; Fri, 14 Oct 2022 14:31:54 +0000 Received: ("Tessian outbound aeae1c7b66fd:v130"); Fri, 14 Oct 2022 14:31:54 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 1e438b4626e162a6 X-CR-MTA-TID: 64aa7808 Received: from e8da6c45747f.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B1BC88DA-08D7-4509-8A50-7D45190DE1B3.1; Fri, 14 Oct 2022 14:31:47 +0000 Received: from EUR03-AM7-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id e8da6c45747f.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 14 Oct 2022 14:31:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R0aJjGqqcBq4yYxYyxGswrjJwNTySDgR3FKMnKCvd+AhSyc5n7xE9QeKyKhJ2A5+Meuq2SBljFpjkyrG2JL87Plhrv6OhEaGpo86B7PA7pYDzh9GlcuhZjN/fpFBEnX8qo/jIlb5O9IGM1KYss7aKTiTznP4YtyqMsApzQ8wY0JGrqyiERmVWMfP4+A8irGXH1c3QgtU8myyb2GXMYFsYu85atbdhk0BLWfwITV38efztQrlw4glhH68vqdt1T2aTQcbeCw1EndZ3Iy6PXOmBRCau0Kr0vFJ32Dh+yFRl9pn7/dBlArQUbASLt1mOtpkghioa37dY62s9a+zFbxMnQ== 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=OtZkRumGOk7+Reb4PvMgNUYCNuNP4n4tNwTaY+pBIKQ=; b=oCBulNOEFKgp3igM0syDOFsc0Ol22Y//6gOq6vOzUeBrMbCGG3wIIHNz58lnYHb05mvV+q1h+m0JlvgladxxhfFgS94IHHxqk96O/JLsGNFUW/j0EhCScs/m1m7RvhhVrxyn83osDByux2eoakJPjqk3za5ThfvnneaJ+OeAV+YdG2yaB653sobM96hXbaMTAzrdJpt4R8iotfPPOyQCAJ6jjC14JGeeJc8fnDQJR8SjAlv7TOOPHoLx60IP4JIgjFXQQuhhUKv0GkLc4KBNj12E6K39+0ppG+XjwCrAcIXCyJrDiqeyoR0llS68ag9172FAvSug1myzcYVupz7JcA== 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 Received: from AS4PR08MB7901.eurprd08.prod.outlook.com (2603:10a6:20b:51c::16) by GV1PR08MB7875.eurprd08.prod.outlook.com (2603:10a6:150:5e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.26; Fri, 14 Oct 2022 14:31:45 +0000 Received: from AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::3991:ebed:c15b:de1e]) by AS4PR08MB7901.eurprd08.prod.outlook.com ([fe80::3991:ebed:c15b:de1e%5]) with mapi id 15.20.5723.026; Fri, 14 Oct 2022 14:31:45 +0000 To: Szabolcs Nagy Subject: [PATCH] math: Fix asin and acos invalid exception with old gcc Thread-Topic: [PATCH] math: Fix asin and acos invalid exception with old gcc Thread-Index: AQHY39htPV/DgcJ2WkWVCpkd2IWFSA== Date: Fri, 14 Oct 2022 14:31:45 +0000 Message-ID: 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: AS4PR08MB7901:EE_|GV1PR08MB7875:EE_|AM7EUR03FT008:EE_|DBBPR08MB6315:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a580900-db96-4dde-4d9e-08daadf0d73f x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: WD4iB11NQjZfV1Dxg8o00rptfEdrTfAxNt5RJSbAdmKfbHiOjQS/E4aDJJraM+eR7T+VHv5JYV3HM/olcm3pnbRJnKyfLKDIDat3NkdBDkOx1+/Vc+vtx3wCt0+UyYvY9QTQnmb1WAhVYBqy2LTv+Xe75+79NeE+Wi5TJVP4EjAODH8V8wVUYFHPinIbhtvWR38VQ4BTazyxPPvl7fASAwZKPGZTMvrIuMJcEM4wco+bFCcvtBMalTXyOOFh8iE1uaw8HCGLod+GOVyRw8n4Vo49JdugW5MkyvAmQAbBxOFB+fDLmXvYUkXU0G1unzMUNYaPVsmjB6fPf8Mmz/OYUKpPczRlZYG8FNxrcExtkasm9Nk9m69RfD1gfgMLMzyIHS7enInCshxachwB6R/S0XVMUV+YgwJ0xLnNp63GQVp1lQWURadCTOc2w3LKGIccdF0X+ELUVSvnAo5wtfokzjSfHZlgw/2HvX06MJejXKapeWULH1xhphSn5LOMF54/VG6/j2FgKQQQV0w6btsmLWEcxYdvD8blxzOtuDPCdjSo4I3pZmvIdtC6zLK8HoqvVqcwajD22YA27+5VXvDoeCIK68ppmCVNFTwXROoTWd9ER+3Lm3i6r8m1lSXrJ/BOkWobMxGyfxdthcA/xY76H/dfDxmZ5C4gQ34Cq3qNEjw4wi3IyQMpoAqjkawFP+yGxt55vRzedM4WRK+lX91TxY2pr1uJWG04dK+DE4teNSCqqF5WevzJRmn5kI+0T82ch5z/FtNz/XRcjdOLYPJOrFW8ThNVXWOWueVxBEfHgbA= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS4PR08MB7901.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(396003)(376002)(346002)(136003)(39860400002)(366004)(451199015)(66946007)(478600001)(71200400001)(122000001)(38070700005)(966005)(86362001)(38100700002)(83380400001)(41300700001)(8676002)(66446008)(66476007)(76116006)(6506007)(7696005)(64756008)(26005)(4326008)(66556008)(55016003)(316002)(91956017)(186003)(9686003)(52536014)(6636002)(5660300002)(2906002)(8936002)(33656002)(6862004); DIR:OUT; SFP:1101; MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB7875 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-Transport-CrossTenantHeadersStripped: AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 0f7b9b61-b0ec-41ce-d0ae-08daadf0d1f9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DwQApE114WDk8VqfpqlrBYL2aVX37cRjOMnue/Y9IxPyG7ItiIOtLLvOkax2gpv3tiaYuIlYkmBNB2sXmAKY4b4adKcqxdAHQYede9qGU93d3vrDU8c0njwqbUpUrqvkbUnRL37bDNT43rNtRfzP5ETbttkUWMI5W/Nw1VCAtacvlKq1jMVLiXAwlyHE9qdELds34N683vTlcyqY4HLoZK0Oh2rw5Kp8c6G8VKaUqqJiZDePfHp6kMnZIHZJXLgXoF46okYd+VKb1dXGEanb+rG/v+LCjaw5BKvnf9coNJ+tilJu2V4RGx7XkH23rpE/yknyjmPI8tb1hzrweI0RohYIhZCVJxejKGu/dW4JEs/B4NR1lkCGwKwY2XpH/dOM/91B7emKkLHhVE0Iz38K3y40ud8QzJltPr1A2+p6xrMmKNhAg1MLsLskInAaX5WAGQUq5XfJ09SP2Z27oNCvkXbWWlyqfEbbrXChR+sv7K61iWXdHanD+Pa+E/SJPyAprbE9gPmNZtXAqr+wuK+bUcMDCULDZk3tFOMfa9vYRZVM5DlGspNwYeRbshKUd+UGSH0gZ+qDxlToYmaRot+aiALbt9zPC0qVPwa87snJ73zT03iZQ5NOU+4gxT0Gr/fLckq1nBBlkwPU+SWiuJ0GUeIKucbLI18/6ZQrShYS/EaqFTBv+rULE5qDS7H1cvUtarziGe66AJEMjCuAvUVvZVmAL2KBnGXcmoKcORZqwfdqC2sD55DM5dNLK3vXgkrHSCd4zRR7UeMCUzzntfAfv+BsSWGDqmFjHh+9bB+wuVC9nYBKo1p2Yv90O/A/v7+2 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:(13230022)(4636009)(136003)(346002)(376002)(39860400002)(396003)(451199015)(40470700004)(36840700001)(46966006)(81166007)(478600001)(316002)(6636002)(966005)(70206006)(4326008)(70586007)(8676002)(9686003)(8936002)(26005)(41300700001)(6862004)(356005)(5660300002)(186003)(336012)(7696005)(6506007)(2906002)(82310400005)(47076005)(83380400001)(40460700003)(86362001)(82740400003)(36860700001)(52536014)(33656002)(55016003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2022 14:31:54.0884 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2a580900-db96-4dde-4d9e-08daadf0d73f 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: AM7EUR03FT008.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB6315 X-Spam-Status: No, score=-11.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, KAM_SHORT, RCVD_IN_DNSWL_NONE, 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 X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Wilco Dijkstra via Libc-alpha From: Wilco Dijkstra Reply-To: Wilco Dijkstra Cc: 'GNU C Library' Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Hi Szabolcs, > This works around a gcc issue where it const folded inf/inf into nan, > preventing the invalid exception to be signalled. > > (x-x)/(x-x) is more robust against optimizations and works for all > out of bounds values including x==nan. > > The gcc issue https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95115 > should be fixed on release branches starting from gcc-10, but it is > better to change the code in case glibc is built with older gcc. LGTM. Reviewed-by: Wilco Dijkstra Cheers, Wilco ---  sysdeps/ieee754/dbl-64/e_asin.c | 18 ++----------------  1 file changed, 2 insertions(+), 16 deletions(-) diff --git a/sysdeps/ieee754/dbl-64/e_asin.c b/sysdeps/ieee754/dbl-64/e_asin.c index e7ea0cbe8f..6b7c971e76 100644 --- a/sysdeps/ieee754/dbl-64/e_asin.c +++ b/sysdeps/ieee754/dbl-64/e_asin.c @@ -165,14 +165,7 @@ __ieee754_asin(double x){    /*---------------------------- |x|>=1 -------------------------------*/    else if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?hp0.x:-hp0.x;    else -  if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x; -  else { -    u.i[HIGH_HALF]=0x7ff00000; -    v.i[HIGH_HALF]=0x7ff00000; -    u.i[LOW_HALF]=0; -    v.i[LOW_HALF]=0; -    return u.x/v.x;  /* NaN */ - } +    return (x - x) / (x - x);  }  #ifndef __ieee754_asin  libm_alias_finite (__ieee754_asin, __asin) @@ -334,14 +327,7 @@ __ieee754_acos(double x)    else    if (k==0x3ff00000 && u.i[LOW_HALF]==0) return (m>0)?0:2.0*hp0.x;    else -  if (k>0x7ff00000 || (k == 0x7ff00000 && u.i[LOW_HALF] != 0)) return x + x; -  else { -    u.i[HIGH_HALF]=0x7ff00000; -    v.i[HIGH_HALF]=0x7ff00000; -    u.i[LOW_HALF]=0; -    v.i[LOW_HALF]=0; -    return u.x/v.x; -  } +    return (x - x) / (x - x);  }  #ifndef __ieee754_acos  libm_alias_finite (__ieee754_acos, __acos)