From: Anton Blanchard Date: Mon, 4 Jan 2016 15:28:52 +0000 (-0200) Subject: Eliminate redundant sign extensions in pow() X-Git-Tag: glibc-2.23~85 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0a1f1e78fbdfaf2c01e9c2368023b2533e7136cf;p=thirdparty%2Fglibc.git Eliminate redundant sign extensions in pow() When looking at the code generated for pow() on ppc64 I noticed quite a few sign extensions. Making the array indices unsigned reduces the number of sign extensions from 24 to 7. Tested for powerpc64le and x86_64. --- diff --git a/ChangeLog b/ChangeLog index bea73e35824..de8a1bcb656 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2016-01-04 Anton Blanchard + + * sysdeps/ieee754/dbl-64/e_pow.c (log1): Use unsigned int + for array indices. + * sysdeps/ieee754/dbl-64/e_pow.c (my_log2): Likewise. + 2016-01-04 Joseph Myers * NEWS: Update copyright dates. diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c index 2ff2bb6e569..663fa392c29 100644 --- a/sysdeps/ieee754/dbl-64/e_pow.c +++ b/sysdeps/ieee754/dbl-64/e_pow.c @@ -245,7 +245,8 @@ static double SECTION log1 (double x, double *delta, double *error) { - int i, j, m; + unsigned int i, j; + int m; double uu, vv, eps, nx, e, e1, e2, t, t1, t2, res, add = 0; mynumber u, v; #ifdef BIG_ENDI @@ -344,7 +345,8 @@ static double SECTION my_log2 (double x, double *delta, double *error) { - int i, j, m; + unsigned int i, j; + int m; double uu, vv, eps, nx, e, e1, e2, t, t1, t2, res, add = 0; double ou1, ou2, lu1, lu2, ov, lv1, lv2, a, a1, a2; double y, yy, z, zz, j1, j2, j7, j8;