From patchwork Mon Jan 27 10:45:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anssi Hannula X-Patchwork-Id: 37576 Received: (qmail 91600 invoked by alias); 27 Jan 2020 10:45:48 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 91583 invoked by uid 89); 27 Jan 2020 10:45:47 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-22.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.1 spammy=bd, $arg1 X-HELO: mail.bitwise.fi From: Anssi Hannula To: libc-alpha@sourceware.org Subject: [PATCH 2/2] ieee754: Remove unused __sin32 and __cos32 Date: Mon, 27 Jan 2020 12:45:11 +0200 Message-Id: <20200127104511.16618-2-anssi.hannula@bitwise.fi> In-Reply-To: <20200127104511.16618-1-anssi.hannula@bitwise.fi> References: <20200127104511.16618-1-anssi.hannula@bitwise.fi> MIME-Version: 1.0 The __sin32 and __cos32 functions were only used in the now removed slow path of asin and acos. --- manual/probes.texi | 14 ----- sysdeps/generic/math_private.h | 2 - sysdeps/ieee754/dbl-64/sincos32.c | 62 -------------------- sysdeps/x86_64/fpu/multiarch/e_asin-fma.c | 2 - sysdeps/x86_64/fpu/multiarch/e_asin-fma4.c | 2 - sysdeps/x86_64/fpu/multiarch/sincos32-fma.c | 2 - sysdeps/x86_64/fpu/multiarch/sincos32-fma4.c | 2 - 7 files changed, 86 deletions(-) diff --git a/manual/probes.texi b/manual/probes.texi index 0ea560ed78..61254bc430 100644 --- a/manual/probes.texi +++ b/manual/probes.texi @@ -311,20 +311,6 @@ input that results in multiple precision computation with precision is the computed result. @end deftp -@deftp Probe slowasin (double @var{$arg1}, double @var{$arg2}) -This probe is triggered when the @code{asin} function is called with -an input that results in multiple precision computation with precision -32. Argument @var{$arg1} is the input to the function and @var{$arg2} -is the computed result. -@end deftp - -@deftp Probe slowacos (double @var{$arg1}, double @var{$arg2}) -This probe is triggered when the @code{acos} function is called with -an input that results in multiple precision computation with precision -32. Argument @var{$arg1} is the input to the function and @var{$arg2} -is the computed result. -@end deftp - @deftp Probe slowsin (double @var{$arg1}, double @var{$arg2}) This probe is triggered when the @code{sin} function is called with an input that results in multiple precision computation with precision diff --git a/sysdeps/generic/math_private.h b/sysdeps/generic/math_private.h index 9296324d24..10a6fde28d 100644 --- a/sysdeps/generic/math_private.h +++ b/sysdeps/generic/math_private.h @@ -202,8 +202,6 @@ extern int __branred (double __x, double *__a, double *__aa); extern void __doasin (double __x, double __dx, double __v[]); extern void __dubsin (double __x, double __dx, double __v[]); extern void __dubcos (double __x, double __dx, double __v[]); -extern double __sin32 (double __x, double __res, double __res1); -extern double __cos32 (double __x, double __res, double __res1); extern double __mpsin (double __x, double __dx, bool __range_reduce); extern double __mpcos (double __x, double __dx, bool __range_reduce); extern void __docos (double __x, double __dx, double __v[]); diff --git a/sysdeps/ieee754/dbl-64/sincos32.c b/sysdeps/ieee754/dbl-64/sincos32.c index c00e5d1a0f..a28932dffe 100644 --- a/sysdeps/ieee754/dbl-64/sincos32.c +++ b/sysdeps/ieee754/dbl-64/sincos32.c @@ -127,68 +127,6 @@ __c32 (mp_no *x, mp_no *y, mp_no *z, int p) __cpy (&s, z, p); } -/* Receive double x and two double results of sin(x) and return result which is - more accurate, computing sin(x) with multi precision routine c32. */ -double -SECTION -__sin32 (double x, double res, double res1) -{ - int p; - mp_no a, b, c; - p = 32; - __dbl_mp (res, &a, p); - __dbl_mp (0.5 * (res1 - res), &b, p); - __add (&a, &b, &c, p); - if (x > 0.8) - { - __sub (&hp, &c, &a, p); - __c32 (&a, &b, &c, p); - } - else - __c32 (&c, &a, &b, p); /* b=sin(0.5*(res+res1)) */ - __dbl_mp (x, &c, p); /* c = x */ - __sub (&b, &c, &a, p); - /* if a > 0 return min (res, res1), otherwise return max (res, res1). */ - if ((a.d[0] > 0 && res >= res1) || (a.d[0] <= 0 && res <= res1)) - res = res1; - LIBC_PROBE (slowasin, 2, &res, &x); - return res; -} - -/* Receive double x and two double results of cos(x) and return result which is - more accurate, computing cos(x) with multi precision routine c32. */ -double -SECTION -__cos32 (double x, double res, double res1) -{ - int p; - mp_no a, b, c; - p = 32; - __dbl_mp (res, &a, p); - __dbl_mp (0.5 * (res1 - res), &b, p); - __add (&a, &b, &c, p); - if (x > 2.4) - { - __sub (&pi, &c, &a, p); - __c32 (&a, &b, &c, p); - b.d[0] = -b.d[0]; - } - else if (x > 0.8) - { - __sub (&hp, &c, &a, p); - __c32 (&a, &c, &b, p); - } - else - __c32 (&c, &b, &a, p); /* b=cos(0.5*(res+res1)) */ - __dbl_mp (x, &c, p); /* c = x */ - __sub (&b, &c, &a, p); - /* if a > 0 return max (res, res1), otherwise return min (res, res1). */ - if ((a.d[0] > 0 && res <= res1) || (a.d[0] <= 0 && res >= res1)) - res = res1; - LIBC_PROBE (slowacos, 2, &res, &x); - return res; -} - /* Compute sin() of double-length number (X + DX) as Multi Precision number and return result as double. If REDUCE_RANGE is true, X is assumed to be the original input and DX is ignored. */ diff --git a/sysdeps/x86_64/fpu/multiarch/e_asin-fma.c b/sysdeps/x86_64/fpu/multiarch/e_asin-fma.c index 50e9c64247..1e3767bf2d 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_asin-fma.c +++ b/sysdeps/x86_64/fpu/multiarch/e_asin-fma.c @@ -1,11 +1,9 @@ #define __ieee754_acos __ieee754_acos_fma #define __ieee754_asin __ieee754_asin_fma -#define __cos32 __cos32_fma #define __doasin __doasin_fma #define __docos __docos_fma #define __dubcos __dubcos_fma #define __dubsin __dubsin_fma -#define __sin32 __sin32_fma #define SECTION __attribute__ ((section (".text.fma"))) #include diff --git a/sysdeps/x86_64/fpu/multiarch/e_asin-fma4.c b/sysdeps/x86_64/fpu/multiarch/e_asin-fma4.c index 2657c31f49..0965556a01 100644 --- a/sysdeps/x86_64/fpu/multiarch/e_asin-fma4.c +++ b/sysdeps/x86_64/fpu/multiarch/e_asin-fma4.c @@ -1,11 +1,9 @@ #define __ieee754_acos __ieee754_acos_fma4 #define __ieee754_asin __ieee754_asin_fma4 -#define __cos32 __cos32_fma4 #define __doasin __doasin_fma4 #define __docos __docos_fma4 #define __dubcos __dubcos_fma4 #define __dubsin __dubsin_fma4 -#define __sin32 __sin32_fma4 #define SECTION __attribute__ ((section (".text.fma4"))) #include diff --git a/sysdeps/x86_64/fpu/multiarch/sincos32-fma.c b/sysdeps/x86_64/fpu/multiarch/sincos32-fma.c index dcd44bc5e8..4152b84835 100644 --- a/sysdeps/x86_64/fpu/multiarch/sincos32-fma.c +++ b/sysdeps/x86_64/fpu/multiarch/sincos32-fma.c @@ -1,5 +1,3 @@ -#define __cos32 __cos32_fma -#define __sin32 __sin32_fma #define __c32 __c32_fma #define __mpsin __mpsin_fma #define __mpsin1 __mpsin1_fma diff --git a/sysdeps/x86_64/fpu/multiarch/sincos32-fma4.c b/sysdeps/x86_64/fpu/multiarch/sincos32-fma4.c index ebbfa18cca..643eedf138 100644 --- a/sysdeps/x86_64/fpu/multiarch/sincos32-fma4.c +++ b/sysdeps/x86_64/fpu/multiarch/sincos32-fma4.c @@ -1,5 +1,3 @@ -#define __cos32 __cos32_fma4 -#define __sin32 __sin32_fma4 #define __c32 __c32_fma4 #define __mpsin __mpsin_fma4 #define __mpsin1 __mpsin1_fma4