From patchwork Fri Oct 14 12:41:27 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Szabolcs Nagy X-Patchwork-Id: 58723 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 513FD385800B for ; Fri, 14 Oct 2022 12:42:53 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 513FD385800B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1665751373; bh=SxK2ZiILVQIhT7w8ql6p7N7fIOHatO6yh+sP37LJ58o=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=BcNDMmNel6Gl326zn+AUp19Fg04oXM/tmP3r/5qTHE5baCyix2fJbJ3M6mhKcAXxI vZzoRcQiL6hmu7aXeD401ktdNN76ubQqHJQD4/LeTyRYc7n6FV/hOY0Xmfx2i2SPYs v98u9+M2Jsu+BERk7UNAWJrnWgccMrcd76O3YtAM= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2061.outbound.protection.outlook.com [40.107.20.61]) by sourceware.org (Postfix) with ESMTPS id 5B1A13858429 for ; Fri, 14 Oct 2022 12:41:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 5B1A13858429 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=Fh93B0M1zvgPti4V3Ti8CdiZkEDuJ7JYqTxajzVzW4x7LTrcDTgrFYDHEW05CiqakFu3n7BBPTEZh1c+O4JbRjUq+YVQMNhxdC9GiY9dam0ihYdrBHkEirTUR2e6f8zSS/39GvqUPOvG2ecwuzTk6R2FBr2TE9Bra8yo6evU0NAe+Uy6VpoxKZPvMZWCLPg0IKuivcdaUbpuOyo6sSwwYWplOReXh4OzXQzAIeihUL2qU5RvD7cHDk2zdjNwWY6pz+KxB9Nryianslpx18M6KeaipDrURGOWXZxgX52SbC31dN/glt5KPhmjf4jFCoc/J7AvQ51+knMwGMSJyDOXpw== 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=SxK2ZiILVQIhT7w8ql6p7N7fIOHatO6yh+sP37LJ58o=; b=EbnfDuHb4vekCSGdcK8s5dyUkwBHHxOWu5NQP3qPzVa8T+GbhQdM6ciBnVzzYBCP+35jfIjMZZJHYxJPEk5kpNaLnQw8//8+ZtqWiC4pVsYmUfDKtXpymFqI+SZKs7xFALBT4jDZIo0q7q5pMW7esZkelM+U7SAUIBBv/Q2DU+wXeBS+veC2uEOrD7lzmgX0S9DAvRtsMqo5CpazMr9qc3iMdD7P+/Hdy4mHTn41euBaQYbdXQmFylVWaKW30ZzqdENzQZGxFF6HjzqH2V64Y9A0QJMxZkUz4lUxpuK1fZifBl8zyL+qYCqOdQygT8g+Q2RfuC+93BpueKAD75M67w== 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] dmarc=[1, 1, header.from=arm.com]) Received: from FR3P281CA0160.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a2::15) by AM0PR08MB5330.eurprd08.prod.outlook.com (2603:10a6:208:17f::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Fri, 14 Oct 2022 12:41:44 +0000 Received: from VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:a2:cafe::65) by FR3P281CA0160.outlook.office365.com (2603:10a6:d10:a2::15) 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 12:41:44 +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 VE1EUR03FT026.mail.protection.outlook.com (10.152.18.148) 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 12:41:44 +0000 Received: ("Tessian outbound 73ab5f36653e:v130"); Fri, 14 Oct 2022 12:41:44 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 757cca05aa0ba5e0 X-CR-MTA-TID: 64aa7808 Received: from 28ca516682bd.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AAD817A9-DD0A-4149-BC45-1B982F08C7EA.1; Fri, 14 Oct 2022 12:41:38 +0000 Received: from EUR05-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 28ca516682bd.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 14 Oct 2022 12:41:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VGIFSgU50arF5C+12QFq37bUXKuXDRAIiFNVk09GwGOGrcNmEwtrv2ceEz2AUFjvsX+a3nN8eIWdLRzCqiMQkmTIpqKhOadOeBp5c6N3NIh+I1SVhazIkO2s1+9hy2j80CTEYIFDFt4rS+wRdrALhJJGOZ5OvtIXR52nJk/hWgF8LBTf4PhimPX/hK/sfavcOZjASWa2tfsx1tW8w2Ukgl84+Pvqcgc5+uYbaHzR0sXA7IIp7yuw0vQH7KAKaw01I9rNSKevygw4hFrrQt9GdK0LU297y0/ZbeJrleRo8ueF3XHBU49y5hDLO3qJqRB1TWLGduLv9+HFuuGbn5XK/g== 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=SxK2ZiILVQIhT7w8ql6p7N7fIOHatO6yh+sP37LJ58o=; b=hL4F3uGrNhUpZ1D1pKZ80xOJZChj+Wpqr4l/Pft5i3TIe9D2tHkxuPIs+qei+sUpHQMqAkEU63naFzcVgacaN+Q/VYWDVyc7BOnc/or+O08nEi4xpNKH8WfxI4zxnfR8GDKlCHhGj+tRfkjMA6ogCH53bs1CVCxzlddoXAZYCx2ylUJM3E7a2FSPODwzGemoBbcH/gj/kP5CHoFgtSym2go447IyzFbUOkmWAP8NAKvobBh4eEouZ3OErzxpqJ5VGZpVQG7GBIDB7NWCDZUkca/THcm12GPdyjMQLEFnagO4w10bPymrorWq5gHdrvTZiE9Emzh6EzTErIpio7xptQ== 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 Received: from FR3P281CA0061.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:4b::9) by DB8PR08MB5340.eurprd08.prod.outlook.com (2603:10a6:10:11c::14) 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 12:41:33 +0000 Received: from VE1EUR03FT040.eop-EUR03.prod.protection.outlook.com (2603:10a6:d10:4b:cafe::ed) by FR3P281CA0061.outlook.office365.com (2603:10a6:d10:4b::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5746.9 via Frontend Transport; Fri, 14 Oct 2022 12:41:33 +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 VE1EUR03FT040.mail.protection.outlook.com (10.152.18.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.20.5709.10 via Frontend Transport; Fri, 14 Oct 2022 12:41:32 +0000 Received: from AZ-NEU-EX03.Arm.com (10.251.24.31) 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.12; Fri, 14 Oct 2022 12:41:28 +0000 Received: from armchair.cambridge.arm.com (10.2.80.71) by mail.arm.com (10.251.24.31) with Microsoft SMTP Server id 15.1.2507.12 via Frontend Transport; Fri, 14 Oct 2022 12:41:28 +0000 To: Subject: [PATCH] math: Fix asin and acos invalid exception with old gcc Date: Fri, 14 Oct 2022 13:41:27 +0100 Message-ID: <20221014124127.2567889-1-szabolcs.nagy@arm.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: VE1EUR03FT040:EE_|DB8PR08MB5340:EE_|VE1EUR03FT026:EE_|AM0PR08MB5330:EE_ X-MS-Office365-Filtering-Correlation-Id: 3cff3479-ad16-4c8e-458d-08daade17393 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: iePcyBhB647GuKlg93dpJgCy92iRi0/BLRkNoLi8rkCcJ1X7oAAekhaFGsrE3lBZWxoYsOcGJrDIdMcUA3fdad0bEqxQGMtPGTGjgBHLKBeF4fSvVo6+2Ee466M5c7sAZI82Bf0m6RxoipPhFIK2fhA1KI4v4/wCFqX4ynQGZDi1TjgAWgfbCfU4kAd3sw4pb7ZNvqA+8WxHpjpxEm1H3RhoPVUCMm0McZgtUcleoDbY/9e8uShy2rLCDqskSONKIBwG5XM4cZEvEbSytITWsdXLnLDP9HuMRbSVsKRtSwo8yW+dfjwshRF1x1Cqmg2Sj86GCcwZ8xh/wOMHEgkR1yld8R3eNgrmjIWlOQcqSFe7uqDY9GFnT5niWs36yNO418fAX6yOZWRDaHNHx1lBhT4JITa5ighp87wELL46reTmUVqk7QN0D/SGgFNgOiqqAhJcvV+u3AC1hKN3yaOWN6iMCPKGafNQ6JTxcDnDwgslwx5x3zkwaWWOtfdh1FzTP5LPjmb6sP+aVlXWdNI9xtTlpigrW58Wvr7v5/YaisdJ1khQJ5T5pDazZnyjTew9EhMoZnbrztADCpQFNkvh10bQ84RnZ6vNgcx+PltHBrWRieGksLffBeaOz1/1aCBZ41HrASJVy428uOGvsWkMqlNzEQG2zoGuETbogLEbJEjRyhOk52f30+N/Iz8Hxvzc79jx3N0zeU9fLvzStcLnTVTjSAg6WJN9KfNehgQjpAVmKlosGZ9m8UCMjZ7hOGsfT/ZzZsN8ZNmwaUuXGMmA02sRFWxS1WF4M4PkCoHTYBIPOB0MQHcwy7tSswxoXVmg0zrCt35QYlkjOrLPjBROYg== 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:(13230022)(4636009)(396003)(346002)(136003)(39860400002)(376002)(451199015)(40470700004)(36840700001)(46966006)(2906002)(36756003)(44832011)(40460700003)(186003)(5660300002)(36860700001)(6916009)(8936002)(82310400005)(4326008)(41300700001)(478600001)(966005)(316002)(70586007)(70206006)(8676002)(2616005)(1076003)(26005)(47076005)(83380400001)(81166007)(86362001)(426003)(336012)(356005)(82740400003)(7696005)(40480700001)(36900700001); DIR:OUT; SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR08MB5340 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: abb4cd1f-9fe9-4cac-8910-08daade16c9c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UimJTqfIe9Zrwn+Cv+PZo36BdZVgkza4li1oHtKJ36fgiIcn2TGOox5VEZmJQtN9d69/lJ8anVIX5abI+ntr3fJJDAEFaZnn2JMcC2VyvHXFcoX/AiFSydD8H3ZabzsOuf4g4vjeyiIAM0q01tJzXnigPRhuEyYujXOuxQqCBEsXTOR2LA/b05bE22gPFUyw6OjyATmY2dXPWZ1nl1aV39Zqm+B7F5W1U4wW1M+bkQWEkxhL901S06dXT5KKbiIFTn8UggOhoK1ZM5cS8cpVgVL8V7tLu3rgvKTNQ8PzX8pC2YTLHW3NBeA46rKWRG78huE4jWptotQ6DKdiWmtWvm7sHiFQA7yow8lbP0Be80ZbNkV1vrgIZsapr1zlfbHpPUVtH0n763qUiBhe9xJAMFjzsqiKR5GRBoSSnXGCWrDor6q01ofeEyteUz4w48I1j7mCIbDVdvmI5FiOpU50qQXtyggNILpzYKOz6btoejl5eNF1izDgSE0nU/dj/yOvCxWAWwH/H/rKe+1UD8owx4TXrcrcv5P9wYJLyJIlEtk8Q4IOQoi8M7mk9xp8Zc9FYxwOHlMQ8JlNqZmabCXd7Ws3UogF1fPhH7YNOKmUPhhmncHLej0lHx+5oLwET2mw9RnEcZ51d0muM87gzjTvarjBaNgciMcz4JLbdbIVfZ519qa/lRDZwq6SCrH7jpSESDy8DWEOT9U4geTUC3OVgz/f65TAZLuvJTny4vOesWri9C0xS7k0uwWUtHPWWRJ4q1ijmi9yfKE2ktzsI7NLU1NHxPc9D26WqHBG0hPJKPEgGinprzUOg00f9T2ExFCw 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)(39860400002)(396003)(346002)(376002)(136003)(451199015)(46966006)(40470700004)(36840700001)(2906002)(44832011)(70586007)(70206006)(7696005)(8676002)(4326008)(8936002)(6916009)(316002)(36756003)(36860700001)(40460700003)(966005)(478600001)(107886003)(41300700001)(5660300002)(47076005)(83380400001)(426003)(26005)(82740400003)(186003)(1076003)(40480700001)(81166007)(336012)(82310400005)(86362001)(2616005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Oct 2022 12:41:44.3374 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3cff3479-ad16-4c8e-458d-08daade17393 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: VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB5330 X-Spam-Status: No, score=-11.9 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: Szabolcs Nagy via Libc-alpha From: Szabolcs Nagy Reply-To: Szabolcs Nagy Cc: Yu-Chien Peter Lin Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" 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. --- 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)