Avoiding more left shifts of negative values
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Sun, 25 Sep 2011 04:11:46 +0000 (00:11 -0400)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Sun, 25 Sep 2011 04:11:46 +0000 (00:11 -0400)
celt/mathops.c
celt/vq.c

index 9163eed..e9cdd0d 100644 (file)
@@ -119,7 +119,7 @@ opus_val32 celt_sqrt(opus_val32 x)
    if (x==0)
       return 0;
    k = (celt_ilog2(x)>>1)-7;
-   x = VSHR32(x, (k<<1));
+   x = VSHR32(x, 2*k);
    n = x-32768;
    rt = ADD16(C[0], MULT16_16_Q15(n, ADD16(C[1], MULT16_16_Q15(n, ADD16(C[2],
               MULT16_16_Q15(n, ADD16(C[3], MULT16_16_Q15(n, (C[4])))))))));
index bf85f8d..737916e 100644 (file)
--- a/celt/vq.c
+++ b/celt/vq.c
@@ -137,7 +137,7 @@ static void normalise_residual(int * restrict iy, celt_norm * restrict X,
 #ifdef FIXED_POINT
    k = celt_ilog2(Ryy)>>1;
 #endif
-   t = VSHR32(Ryy, (k-7)<<1);
+   t = VSHR32(Ryy, 2*(k-7));
    g = MULT16_16_P15(celt_rsqrt_norm(t),gain);
 
    i=0;
@@ -378,7 +378,7 @@ void renormalise_vector(celt_norm *X, int N, opus_val16 gain)
 #ifdef FIXED_POINT
    k = celt_ilog2(E)>>1;
 #endif
-   t = VSHR32(E, (k-7)<<1);
+   t = VSHR32(E, 2*(k-7));
    g = MULT16_16_P15(celt_rsqrt_norm(t),gain);
 
    xptr = X;