diff mbox

Eliminate redundant sign extensions in pow()

Message ID 20151116214413.26babb5f@kryten
State New
Headers show

Commit Message

Anton Blanchard Nov. 16, 2015, 10:44 a.m. UTC
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.

--

Comments

Joseph Myers Nov. 16, 2015, 10:57 a.m. UTC | #1
On Mon, 16 Nov 2015, Anton Blanchard wrote:

> 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.

OK with a ChangeLog entry if you've done the usual testing with the 
testsuite without any new ulps for pow appearing (you didn't say).
diff mbox

Patch

diff --git a/sysdeps/ieee754/dbl-64/e_pow.c b/sysdeps/ieee754/dbl-64/e_pow.c
index 3b0bbe3..adbd5b8 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;