From patchwork Tue Jun 2 00:35:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 39415 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 B97E0383F853; Tue, 2 Jun 2020 00:35:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B97E0383F853 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1591058154; bh=U6vV/L7AkB9t2iwQiFr2dK/tPhgerOOjAjJP7+dP4i0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Bha/5UAJZAaR0zQkbdVbBiXEUe76o0yZfLyDAjLPgfIHXATrZoisPVxVNwYO8Lfn2 Esv6hsBRXEIGyRZp2iUNygLvCNWUyfzXu2Z6fo/wkKZnKlPqvPwpse1Hj6rc1dD/my feMB2muxtYZb+YfR5j2kbHWKh7TtemmcMIQnd3rY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.73.133]) by sourceware.org (Postfix) with ESMTPS id 000E0383F850 for ; Tue, 2 Jun 2020 00:35:49 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 000E0383F850 Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id D4A74401C8; Tue, 2 Jun 2020 00:35:48 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id 84299A00A2; Tue, 2 Jun 2020 00:35:48 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH v2 1/4] iee754: provide gcc builtins based generic sqrt functions Date: Mon, 1 Jun 2020 17:35:38 -0700 Message-Id: <20200602003541.21005-2-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200602003541.21005-1-vgupta@synopsys.com> References: <20200602003541.21005-1-vgupta@synopsys.com> MIME-Version: 1.0 X-Spam-Status: No, score=-15.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Vineet Gupta via Libc-alpha From: Vineet Gupta Reply-To: Vineet Gupta Cc: Vineet Gupta , linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" Reviewed-by: Adhemerval Zanella Reviewed-by: Adhemerval Zanella --- sysdeps/generic/math-use-builtins.h | 3 +++ sysdeps/ieee754/dbl-64/e_sqrt.c | 6 ++++++ sysdeps/ieee754/flt-32/e_sqrtf.c | 16 ++++++++++------ 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h index 8a39ef58bc95..fc724c824a17 100644 --- a/sysdeps/generic/math-use-builtins.h +++ b/sysdeps/generic/math-use-builtins.h @@ -60,4 +60,7 @@ # define USE_COPYSIGNF128_BUILTIN 0 #endif +#define USE_SQRT_BUILTIN 0 +#define USE_SQRTF_BUILTIN 0 + #endif /* math-use-builtins.h */ diff --git a/sysdeps/ieee754/dbl-64/e_sqrt.c b/sysdeps/ieee754/dbl-64/e_sqrt.c index d42a1a4eb6e9..518a8ae5cdaf 100644 --- a/sysdeps/ieee754/dbl-64/e_sqrt.c +++ b/sysdeps/ieee754/dbl-64/e_sqrt.c @@ -41,6 +41,7 @@ #include #include #include +#include /*********************************************************************/ /* An ultimate sqrt routine. Given an IEEE double machine number x */ @@ -50,6 +51,10 @@ double __ieee754_sqrt (double x) { +#if USE_SQRT_BUILTIN + return __builtin_sqrt (x); +#else + /* Use generic implementation. */ static const double rt0 = 9.99999999859990725855365213134618E-01, rt1 = 4.99999999495955425917856814202739E-01, @@ -138,6 +143,7 @@ __ieee754_sqrt (double x) return (x - x) / (x - x); /* sqrt(-ve)=sNaN */ return 0x1p-256 * __ieee754_sqrt (x * 0x1p512); } +#endif /* ! USE_SQRT_BUILTIN */ } #ifndef __ieee754_sqrt libm_alias_finite (__ieee754_sqrt, __sqrt) diff --git a/sysdeps/ieee754/flt-32/e_sqrtf.c b/sysdeps/ieee754/flt-32/e_sqrtf.c index b339444301aa..d85a04162983 100644 --- a/sysdeps/ieee754/flt-32/e_sqrtf.c +++ b/sysdeps/ieee754/flt-32/e_sqrtf.c @@ -16,12 +16,15 @@ #include #include #include - -static const float one = 1.0, tiny=1.0e-30; +#include float __ieee754_sqrtf(float x) { +#if USE_SQRTF_BUILTIN + return __builtin_sqrtf (x); +#else + /* Use generic implementation. */ float z; int32_t sign = (int)0x80000000; int32_t ix,s,q,m,t,i; @@ -70,10 +73,10 @@ __ieee754_sqrtf(float x) /* use floating add to find out rounding direction */ if(ix!=0) { - z = one-tiny; /* trigger inexact flag */ - if (z>=one) { - z = one+tiny; - if (z>one) + z = 0x1p0 - 0x1.4484cp-100; /* trigger inexact flag */ + if (z >= 0x1p0) { + z = 0x1p0 + 0x1.4484cp-100; + if (z > 0x1p0) q += 2; else q += (q&1); @@ -83,6 +86,7 @@ __ieee754_sqrtf(float x) ix += (m <<23); SET_FLOAT_WORD(z,ix); return z; +#endif /* ! USE_SQRTF_BUILTIN */ } #ifndef __ieee754_sqrtf libm_alias_finite (__ieee754_sqrtf, __sqrtf) From patchwork Tue Jun 2 00:35:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 39417 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 C28F6383F86D; Tue, 2 Jun 2020 00:35:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C28F6383F86D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1591058155; bh=SgkS1FOW9hv8wurA6M3rYrLJLZ81c5Vhq9w9atgeGGo=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=OlDKrBgHsW2c906i5uxbbYwBC59y5mhDksT/siH12E/WeQSY/3fNkFBNLoj0I+UOh EqzZilNPmGaZ5DaVdw2N4AteOJ8iBveYfrwp7vXLsFgmCtxthnhTjJtxWk47PLifLd t1dT0DHKvaZGZpgLArrBBtZ5ubdCocMD3Zc7+9G0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.73.133]) by sourceware.org (Postfix) with ESMTPS id 0AAF2383F853 for ; Tue, 2 Jun 2020 00:35:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0AAF2383F853 Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 23B5C401D8; Tue, 2 Jun 2020 00:35:49 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id D0BE7A00A3; Tue, 2 Jun 2020 00:35:48 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH v2 2/4] iee754: provide gcc builtins based generic fma functions Date: Mon, 1 Jun 2020 17:35:39 -0700 Message-Id: <20200602003541.21005-3-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200602003541.21005-1-vgupta@synopsys.com> References: <20200602003541.21005-1-vgupta@synopsys.com> MIME-Version: 1.0 X-Spam-Status: No, score=-15.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Vineet Gupta via Libc-alpha From: Vineet Gupta Reply-To: Vineet Gupta Cc: Vineet Gupta , linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --- sysdeps/generic/math-use-builtins.h | 5 +++++ sysdeps/ieee754/dbl-64/s_fma.c | 6 ++++++ sysdeps/ieee754/dbl-64/s_fmaf.c | 6 ++++++ sysdeps/ieee754/float128/float128_private.h | 2 ++ sysdeps/ieee754/ldbl-128/s_fmal.c | 5 +++++ 5 files changed, 24 insertions(+) Reviewed-by: Adhemerval Zanella diff --git a/sysdeps/generic/math-use-builtins.h b/sysdeps/generic/math-use-builtins.h index fc724c824a17..cf25ed8a2138 100644 --- a/sysdeps/generic/math-use-builtins.h +++ b/sysdeps/generic/math-use-builtins.h @@ -63,4 +63,9 @@ #define USE_SQRT_BUILTIN 0 #define USE_SQRTF_BUILTIN 0 +#define USE_FMA_BUILTIN 0 +#define USE_FMAF_BUILTIN 0 +#define USE_FMAL_BUILTIN 0 +#define USE_FMAF128_BUILTIN 0 + #endif /* math-use-builtins.h */ diff --git a/sysdeps/ieee754/dbl-64/s_fma.c b/sysdeps/ieee754/dbl-64/s_fma.c index 876df6e78bdc..9dc5b132b9ee 100644 --- a/sysdeps/ieee754/dbl-64/s_fma.c +++ b/sysdeps/ieee754/dbl-64/s_fma.c @@ -25,6 +25,7 @@ #include #include #include +#include /* This implementation uses rounding to odd to avoid problems with double rounding. See a paper by Boldo and Melquiond: @@ -33,6 +34,10 @@ double __fma (double x, double y, double z) { +#if USE_FMA_BUILTIN + return __builtin_fma (x, y, z); +#else + /* Use generic implementation. */ union ieee754_double u, v, w; int adjust = 0; u.d = x; @@ -292,6 +297,7 @@ __fma (double x, double y, double z) v.ieee.mantissa1 |= j; return v.d * 0x1p-108; } +#endif /* ! USE_FMA_BUILTIN */ } #ifndef __fma libm_alias_double (__fma, fma) diff --git a/sysdeps/ieee754/dbl-64/s_fmaf.c b/sysdeps/ieee754/dbl-64/s_fmaf.c index 57329d0a87fe..93b8660d5242 100644 --- a/sysdeps/ieee754/dbl-64/s_fmaf.c +++ b/sysdeps/ieee754/dbl-64/s_fmaf.c @@ -23,6 +23,7 @@ #include #include #include +#include /* This implementation relies on double being more than twice as precise as float and uses rounding to odd in order to avoid problems @@ -33,6 +34,10 @@ float __fmaf (float x, float y, float z) { +#if USE_FMAF_BUILTIN + return __builtin_fmaf (x, y, z); +#else + /* Use generic implementation. */ fenv_t env; /* Multiplication is always exact. */ @@ -60,6 +65,7 @@ __fmaf (float x, float y, float z) /* And finally truncation with round to nearest. */ return (float) u.d; +#endif /* ! USE_FMAF_BUILTIN */ } #ifndef __fmaf libm_alias_float (__fma, fma) diff --git a/sysdeps/ieee754/float128/float128_private.h b/sysdeps/ieee754/float128/float128_private.h index f97463d9dc1b..ab6fc9f3c9cf 100644 --- a/sysdeps/ieee754/float128/float128_private.h +++ b/sysdeps/ieee754/float128/float128_private.h @@ -154,6 +154,8 @@ #define USE_ROUNDL_BUILTIN USE_ROUNDF128_BUILTIN #undef USE_COPYSIGNL_BUILTIN #define USE_COPYSIGNL_BUILTIN USE_COPYSIGNF128_BUILTIN +#undef USE_FMAL_BUILTIN +#define USE_FMAL_BUILTIN USE_FMAF128_BUILTIN /* IEEE function renames. */ #define __ieee754_acoshl __ieee754_acoshf128 diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c index 7475015bcec6..a610499e47c7 100644 --- a/sysdeps/ieee754/ldbl-128/s_fmal.c +++ b/sysdeps/ieee754/ldbl-128/s_fmal.c @@ -25,6 +25,7 @@ #include #include #include +#include /* This implementation uses rounding to odd to avoid problems with double rounding. See a paper by Boldo and Melquiond: @@ -33,6 +34,9 @@ _Float128 __fmal (_Float128 x, _Float128 y, _Float128 z) { +#if USE_FMAL_BUILTIN + return __builtin_fmal (x, y, z); +#else union ieee854_long_double u, v, w; int adjust = 0; u.d = x; @@ -296,5 +300,6 @@ __fmal (_Float128 x, _Float128 y, _Float128 z) v.ieee.mantissa3 |= j; return v.d * L(0x1p-228); } +#endif /* ! USE_FMAL_BUILTIN */ } libm_alias_ldouble (__fma, fma) From patchwork Tue Jun 2 00:35:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 39419 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 D5809383F87E; Tue, 2 Jun 2020 00:35:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D5809383F87E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1591058156; bh=PMGtTi0eo3c/JtStbWgGlQPVVk/NTe5Y5HL91t68Fr0=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=RzjWTyIB65lG4yzVAcxdqWlv0DufJmbKtCTNOy4Zv3SBbgOE/6FfMRt6vVCBqiMw/ 9zbMKSFHqOGcpsJvlDR/RnxlIac5Mq4IfErANgdTK3VJtqZfsh+Hcp4vh4pxfYhKdQ roepGI4D+0xHqlAuIQCjVcmbFOEYvcG/wmJk6LYY= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.87.133]) by sourceware.org (Postfix) with ESMTPS id BB6EE383F857 for ; Tue, 2 Jun 2020 00:35:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BB6EE383F857 Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id 8DE06C008F; Tue, 2 Jun 2020 00:35:49 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id 289D2A00A2; Tue, 2 Jun 2020 00:35:49 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH v2 3/4] aarch/fpu: use generic builtins based math functions Date: Mon, 1 Jun 2020 17:35:40 -0700 Message-Id: <20200602003541.21005-4-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200602003541.21005-1-vgupta@synopsys.com> References: <20200602003541.21005-1-vgupta@synopsys.com> MIME-Version: 1.0 X-Spam-Status: No, score=-15.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Vineet Gupta via Libc-alpha From: Vineet Gupta Reply-To: Vineet Gupta Cc: Vineet Gupta , linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" introduce sysdep header math-use-builtins.h to replace aarch64 impementations with corresponding generic ones - newly inroduced generic sqrt{,f}, fma{,f} - existing floor{,f}, nearbyint{,f}, rint{,f}, round{,f}, trunc{,f} - Note that generic copysign was already enabled (via generic math-use-builtins.h) now thru sysdep header This is supposed to be a non functional change Passes build-many for aarch64-linux-gnu Reviewed-by: Adhemerval Zanella --- sysdeps/aarch64/fpu/e_sqrt.c | 27 ---------- sysdeps/aarch64/fpu/e_sqrtf.c | 27 ---------- sysdeps/aarch64/fpu/math-use-builtins.h | 71 +++++++++++++++++++++++++ sysdeps/aarch64/fpu/s_floor.c | 29 ---------- sysdeps/aarch64/fpu/s_floorf.c | 29 ---------- sysdeps/aarch64/fpu/s_fma.c | 28 ---------- sysdeps/aarch64/fpu/s_fmaf.c | 28 ---------- sysdeps/aarch64/fpu/s_nearbyint.c | 28 ---------- sysdeps/aarch64/fpu/s_nearbyintf.c | 28 ---------- sysdeps/aarch64/fpu/s_rint.c | 29 ---------- sysdeps/aarch64/fpu/s_rintf.c | 29 ---------- sysdeps/aarch64/fpu/s_round.c | 29 ---------- sysdeps/aarch64/fpu/s_roundf.c | 29 ---------- sysdeps/aarch64/fpu/s_trunc.c | 29 ---------- sysdeps/aarch64/fpu/s_truncf.c | 29 ---------- 15 files changed, 71 insertions(+), 398 deletions(-) delete mode 100644 sysdeps/aarch64/fpu/e_sqrt.c delete mode 100644 sysdeps/aarch64/fpu/e_sqrtf.c create mode 100644 sysdeps/aarch64/fpu/math-use-builtins.h delete mode 100644 sysdeps/aarch64/fpu/s_floor.c delete mode 100644 sysdeps/aarch64/fpu/s_floorf.c delete mode 100644 sysdeps/aarch64/fpu/s_fma.c delete mode 100644 sysdeps/aarch64/fpu/s_fmaf.c delete mode 100644 sysdeps/aarch64/fpu/s_nearbyint.c delete mode 100644 sysdeps/aarch64/fpu/s_nearbyintf.c delete mode 100644 sysdeps/aarch64/fpu/s_rint.c delete mode 100644 sysdeps/aarch64/fpu/s_rintf.c delete mode 100644 sysdeps/aarch64/fpu/s_round.c delete mode 100644 sysdeps/aarch64/fpu/s_roundf.c delete mode 100644 sysdeps/aarch64/fpu/s_trunc.c delete mode 100644 sysdeps/aarch64/fpu/s_truncf.c diff --git a/sysdeps/aarch64/fpu/e_sqrt.c b/sysdeps/aarch64/fpu/e_sqrt.c deleted file mode 100644 index abb67ef7b061..000000000000 --- a/sysdeps/aarch64/fpu/e_sqrt.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Square root of floating point number. - Copyright (C) 2015-2020 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 -#include - -double -__ieee754_sqrt (double d) -{ - return __builtin_sqrt (d); -} -libm_alias_finite (__ieee754_sqrt, __sqrt) diff --git a/sysdeps/aarch64/fpu/e_sqrtf.c b/sysdeps/aarch64/fpu/e_sqrtf.c deleted file mode 100644 index 13008a4f45d6..000000000000 --- a/sysdeps/aarch64/fpu/e_sqrtf.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Single-precision floating point square root. - Copyright (C) 2015-2020 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 -#include - -float -__ieee754_sqrtf (float s) -{ - return __builtin_sqrtf (s); -} -libm_alias_finite (__ieee754_sqrtf, __sqrtf) diff --git a/sysdeps/aarch64/fpu/math-use-builtins.h b/sysdeps/aarch64/fpu/math-use-builtins.h new file mode 100644 index 000000000000..50a1ba0db5ea --- /dev/null +++ b/sysdeps/aarch64/fpu/math-use-builtins.h @@ -0,0 +1,71 @@ +/* Using math gcc builtins instead of generic implementation. aarch64 version. + Copyright (C) 2020 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 + . */ + +#ifndef MATH_USE_BUILTINS_H +#define MATH_USE_BUILTINS_H 1 + +#include /* For __GNUC_PREREQ. */ + +/* Define these macros to 1 to use __builtin_xyz instead of the + generic implementation. */ +#define USE_NEARBYINT_BUILTIN 1 +#define USE_NEARBYINTF_BUILTIN 1 +#define USE_NEARBYINTL_BUILTIN 0 +#define USE_NEARBYINTF128_BUILTIN 0 + +#define USE_RINT_BUILTIN 1 +#define USE_RINTF_BUILTIN 1 +#define USE_RINTL_BUILTIN 0 +#define USE_RINTF128_BUILTIN 0 + +#define USE_FLOOR_BUILTIN 1 +#define USE_FLOORF_BUILTIN 1 +#define USE_FLOORL_BUILTIN 0 +#define USE_FLOORF128_BUILTIN 0 + +#define USE_CEIL_BUILTIN 1 +#define USE_CEILF_BUILTIN 1 +#define USE_CEILL_BUILTIN 0 +#define USE_CEILF128_BUILTIN 0 + +#define USE_TRUNC_BUILTIN 1 +#define USE_TRUNCF_BUILTIN 1 +#define USE_TRUNCL_BUILTIN 0 +#define USE_TRUNCF128_BUILTIN 0 + +#define USE_ROUND_BUILTIN 1 +#define USE_ROUNDF_BUILTIN 1 +#define USE_ROUNDL_BUILTIN 0 +#define USE_ROUNDF128_BUILTIN 0 + +#define USE_COPYSIGNL_BUILTIN 1 +#if __GNUC_PREREQ (7, 0) +# define USE_COPYSIGNF128_BUILTIN 1 +#else +# define USE_COPYSIGNF128_BUILTIN 0 +#endif + +#define USE_SQRT_BUILTIN 1 +#define USE_SQRTF_BUILTIN 1 + +#define USE_FMA_BUILTIN 1 +#define USE_FMAF_BUILTIN 1 +#define USE_FMAL_BUILTIN 0 +#define USE_FMAF128_BUILTIN 0 + +#endif diff --git a/sysdeps/aarch64/fpu/s_floor.c b/sysdeps/aarch64/fpu/s_floor.c deleted file mode 100644 index d7d3e9336a6e..000000000000 --- a/sysdeps/aarch64/fpu/s_floor.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -double -__floor (double x) -{ - return __builtin_floor (x); -} - -libm_alias_double (__floor, floor) diff --git a/sysdeps/aarch64/fpu/s_floorf.c b/sysdeps/aarch64/fpu/s_floorf.c deleted file mode 100644 index 625ff4375702..000000000000 --- a/sysdeps/aarch64/fpu/s_floorf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -float -__floorf (float x) -{ - return __builtin_floorf (x); -} - -libm_alias_float (__floor, floor) diff --git a/sysdeps/aarch64/fpu/s_fma.c b/sysdeps/aarch64/fpu/s_fma.c deleted file mode 100644 index 48bb40482dc9..000000000000 --- a/sysdeps/aarch64/fpu/s_fma.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 1996-2020 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 -#include - -double -__fma (double x, double y, double z) -{ - return __builtin_fma (x, y, z); -} - -libm_alias_double (__fma, fma) diff --git a/sysdeps/aarch64/fpu/s_fmaf.c b/sysdeps/aarch64/fpu/s_fmaf.c deleted file mode 100644 index 544f32e27aec..000000000000 --- a/sysdeps/aarch64/fpu/s_fmaf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 -#include - -float -__fmaf (float x, float y, float z) -{ - return __builtin_fmaf (x, y, z); -} - -libm_alias_float (__fma, fma) diff --git a/sysdeps/aarch64/fpu/s_nearbyint.c b/sysdeps/aarch64/fpu/s_nearbyint.c deleted file mode 100644 index 59a57dd39ba1..000000000000 --- a/sysdeps/aarch64/fpu/s_nearbyint.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 -#include - -double -__nearbyint (double x) -{ - return __builtin_nearbyint (x); -} - -libm_alias_double (__nearbyint, nearbyint) diff --git a/sysdeps/aarch64/fpu/s_nearbyintf.c b/sysdeps/aarch64/fpu/s_nearbyintf.c deleted file mode 100644 index f52968ae2bbd..000000000000 --- a/sysdeps/aarch64/fpu/s_nearbyintf.c +++ /dev/null @@ -1,28 +0,0 @@ -/* Copyright (C) 2011-2020 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 -#include - -float -__nearbyintf (float x) -{ - return __builtin_nearbyintf (x); -} - -libm_alias_float (__nearbyint, nearbyint) diff --git a/sysdeps/aarch64/fpu/s_rint.c b/sysdeps/aarch64/fpu/s_rint.c deleted file mode 100644 index bdd757167e0c..000000000000 --- a/sysdeps/aarch64/fpu/s_rint.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -double -__rint (double x) -{ - return __builtin_rint (x); -} - -libm_alias_double (__rint, rint) diff --git a/sysdeps/aarch64/fpu/s_rintf.c b/sysdeps/aarch64/fpu/s_rintf.c deleted file mode 100644 index 8cf7c63d6dda..000000000000 --- a/sysdeps/aarch64/fpu/s_rintf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -float -__rintf (float x) -{ - return __builtin_rintf (x); -} - -libm_alias_float (__rint, rint) diff --git a/sysdeps/aarch64/fpu/s_round.c b/sysdeps/aarch64/fpu/s_round.c deleted file mode 100644 index d2fd5f34117a..000000000000 --- a/sysdeps/aarch64/fpu/s_round.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -double -__round (double x) -{ - return __builtin_round (x); -} - -libm_alias_double (__round, round) diff --git a/sysdeps/aarch64/fpu/s_roundf.c b/sysdeps/aarch64/fpu/s_roundf.c deleted file mode 100644 index e51214e86cd2..000000000000 --- a/sysdeps/aarch64/fpu/s_roundf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -float -__roundf (float x) -{ - return __builtin_roundf (x); -} - -libm_alias_float (__round, round) diff --git a/sysdeps/aarch64/fpu/s_trunc.c b/sysdeps/aarch64/fpu/s_trunc.c deleted file mode 100644 index bac23a5e269d..000000000000 --- a/sysdeps/aarch64/fpu/s_trunc.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -double -__trunc (double x) -{ - return __builtin_trunc (x); -} - -libm_alias_double (__trunc, trunc) diff --git a/sysdeps/aarch64/fpu/s_truncf.c b/sysdeps/aarch64/fpu/s_truncf.c deleted file mode 100644 index 6a025c084a5a..000000000000 --- a/sysdeps/aarch64/fpu/s_truncf.c +++ /dev/null @@ -1,29 +0,0 @@ -/* Copyright (C) 2011-2020 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 - . */ - -#define NO_MATH_REDIRECT -#include -#include - -float -__truncf (float x) -{ - return __builtin_truncf (x); -} - -libm_alias_float (__trunc, trunc) From patchwork Tue Jun 2 00:35:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vineet Gupta X-Patchwork-Id: 39418 X-Patchwork-Delegate: azanella@linux.vnet.ibm.com 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 508DC383F876; Tue, 2 Jun 2020 00:35:56 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 508DC383F876 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1591058156; bh=uDS3tiP8fT34ts8IKtLMJfztTZnrxaOUQ6MqqZxA54w=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=LpW1oX5Ji6QXwQ0pizygerUQpPBcz5nZ610flG0nK2ag/a4QuwFJqAdx+FkJUpQW4 wSlfsFXMteYpLhKvedDHf7Ddgy1YB/fohOrjy4YY+5/rLKQeL5bOCfOIF4Yh2VNJhG xQHtI3T1jLQYFGtrqussPnbvhCGtv1uKgj40vHN0= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from smtprelay-out1.synopsys.com (smtprelay-out1.synopsys.com [149.117.87.133]) by sourceware.org (Postfix) with ESMTPS id BDC72383F85B for ; Tue, 2 Jun 2020 00:35:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org BDC72383F85B Received: from mailhost.synopsys.com (sv2-mailhost2.synopsys.com [10.205.2.134]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by smtprelay-out1.synopsys.com (Postfix) with ESMTPS id CF340C00BC; Tue, 2 Jun 2020 00:35:49 +0000 (UTC) Received: from vineetg-Latitude-7400.internal.synopsys.com (unknown [10.13.183.89]) by mailhost.synopsys.com (Postfix) with ESMTP id 736BEA00A4; Tue, 2 Jun 2020 00:35:49 +0000 (UTC) X-SNPS-Relay: synopsys.com To: libc-alpha@sourceware.org Subject: [PATCH v2 4/4] powerpc/fpu: use generic fma functions Date: Mon, 1 Jun 2020 17:35:41 -0700 Message-Id: <20200602003541.21005-5-vgupta@synopsys.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200602003541.21005-1-vgupta@synopsys.com> References: <20200602003541.21005-1-vgupta@synopsys.com> MIME-Version: 1.0 X-Spam-Status: No, score=-15.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Vineet Gupta via Libc-alpha From: Vineet Gupta Reply-To: Vineet Gupta Cc: Vineet Gupta , linux-snps-arc@lists.infradead.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This is supposed to be a non functional change Passes build-many for powerpc-linux-gnu Reviewed-by: Adhemerval Zanella --- sysdeps/powerpc/fpu/math-use-builtins.h | 69 +++++++++++++++++++++++++ sysdeps/powerpc/fpu/s_fma.c | 27 ---------- sysdeps/powerpc/fpu/s_fmaf.c | 27 ---------- 3 files changed, 69 insertions(+), 54 deletions(-) create mode 100644 sysdeps/powerpc/fpu/math-use-builtins.h delete mode 100644 sysdeps/powerpc/fpu/s_fma.c delete mode 100644 sysdeps/powerpc/fpu/s_fmaf.c diff --git a/sysdeps/powerpc/fpu/math-use-builtins.h b/sysdeps/powerpc/fpu/math-use-builtins.h new file mode 100644 index 000000000000..4780934379ba --- /dev/null +++ b/sysdeps/powerpc/fpu/math-use-builtins.h @@ -0,0 +1,69 @@ +/* Using math gcc builtins instead of generic implementation. PowerPC version. + Copyright (C) 2019-2020 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 + . */ + +#ifndef MATH_USE_BUILTINS_H +#define MATH_USE_BUILTINS_H 1 + +#include /* For __GNUC_PREREQ. */ + +/* Define these macros to 1 to use __builtin_xyz instead of the + generic implementation. */ +#define USE_NEARBYINT_BUILTIN 0 +#define USE_NEARBYINTF_BUILTIN 0 +#define USE_NEARBYINTL_BUILTIN 0 +#define USE_NEARBYINTF128_BUILTIN 0 + +#define USE_RINT_BUILTIN 0 +#define USE_RINTF_BUILTIN 0 +#define USE_RINTL_BUILTIN 0 +#define USE_RINTF128_BUILTIN 0 + +#define USE_FLOOR_BUILTIN 0 +#define USE_FLOORF_BUILTIN 0 +#define USE_FLOORL_BUILTIN 0 +#define USE_FLOORF128_BUILTIN 0 + +#define USE_CEIL_BUILTIN 0 +#define USE_CEILF_BUILTIN 0 +#define USE_CEILL_BUILTIN 0 +#define USE_CEILF128_BUILTIN 0 + +#define USE_TRUNC_BUILTIN 0 +#define USE_TRUNCF_BUILTIN 0 +#define USE_TRUNCL_BUILTIN 0 +#define USE_TRUNCF128_BUILTIN 0 + +#define USE_ROUND_BUILTIN 0 +#define USE_ROUNDF_BUILTIN 0 +#define USE_ROUNDL_BUILTIN 0 +#define USE_ROUNDF128_BUILTIN 0 + +#define USE_COPYSIGNL_BUILTIN 1 +#if __GNUC_PREREQ (7, 0) +# define USE_COPYSIGNF128_BUILTIN 1 +#else +# define USE_COPYSIGNF128_BUILTIN 0 +#endif + +#define USE_SQRT_BUILTIN 0 +#define USE_SQRTF_BUILTIN 0 + +#define USE_FMA_BUILTIN 1 +#define USE_FMAF_BUILTIN 1 + +#endif diff --git a/sysdeps/powerpc/fpu/s_fma.c b/sysdeps/powerpc/fpu/s_fma.c deleted file mode 100644 index 9ddd13253485..000000000000 --- a/sysdeps/powerpc/fpu/s_fma.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Compute x * y + z as ternary operation. PowerPC version. - Copyright (C) 2019-2020 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 -#include - -double -__fma (double x, double y, double z) -{ - return __builtin_fma (x, y, z); -} -libm_alias_double (__fma, fma) diff --git a/sysdeps/powerpc/fpu/s_fmaf.c b/sysdeps/powerpc/fpu/s_fmaf.c deleted file mode 100644 index d132c20125bb..000000000000 --- a/sysdeps/powerpc/fpu/s_fmaf.c +++ /dev/null @@ -1,27 +0,0 @@ -/* Compute x * y + z as ternary operation. PowerPC version. - Copyright (C) 2019-2020 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 -#include - -float -__fmaf (float x, float y, float z) -{ - return __builtin_fmaf (x, y, z); -} -libm_alias_float (__fma, fma)