Browse Source

Fixed #28. Convert the result to double precision in MIPS64 dsdot_k kernel.

tags/v0.1alpha2^2
Xianyi Zhang 14 years ago
parent
commit
fcb5ce011b
3 changed files with 16 additions and 8 deletions
  1. +3
    -2
      Changelog.txt
  2. +7
    -4
      interface/dsdot.c
  3. +6
    -2
      kernel/mips64/dot.S

+ 3
- 2
Changelog.txt View File

@@ -1,7 +1,7 @@
OpenBLAS ChangeLog
====================================================================
Version 0.1 alpha2(in development)
0;136;0c
common:
* Fixed blasint undefined bug in <cblas.h> file. Other software
could include this header successfully(Refs issue #13 on github)
@@ -22,7 +22,8 @@ x86/x86_64:
* Fixed #28 a wrong result of dsdot on x86_64.

MIPS64:
*
* Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64.

====================================================================
Version 0.1 alpha1
20-Mar-2011


+ 7
- 4
interface/dsdot.c View File

@@ -49,6 +49,7 @@ double NAME(blasint *N, float *x, blasint *INCX, float *y, blasint *INCY){
BLASLONG n = *N;
BLASLONG incx = *INCX;
BLASLONG incy = *INCY;
double ret = 0.0;

PRINT_DEBUG_NAME;

@@ -61,19 +62,21 @@ double NAME(blasint *N, float *x, blasint *INCX, float *y, blasint *INCY){
if (incx < 0) x -= (n - 1) * incx;
if (incy < 0) y -= (n - 1) * incy;

return DSDOT_K(n, x, incx, y, incy);
ret=DSDOT_K(n, x, incx, y, incy);

FUNCTION_PROFILE_END(1, n, n);

IDEBUG_END;

return 0;
return ret;
}

#else

double CNAME(blasint n, float *x, blasint incx, float *y, blasint incy){

double ret = 0.0;
PRINT_DEBUG_CNAME;

@@ -86,13 +89,13 @@ double CNAME(blasint n, float *x, blasint incx, float *y, blasint incy){
if (incx < 0) x -= (n - 1) * incx;
if (incy < 0) y -= (n - 1) * incy;

return DSDOT_K(n, x, incx, y, incy);
ret=DSDOT_K(n, x, incx, y, incy);

FUNCTION_PROFILE_END(1, n, n);

IDEBUG_END;

return 0;
return ret;
}



+ 6
- 2
kernel/mips64/dot.S View File

@@ -300,7 +300,11 @@
.align 3

.L999:
j $31
ADD s1, s1, s2

#ifdef DSDOT
cvt.d.s s1, s1
#endif
j $31
NOP
EPILOGUE

Loading…
Cancel
Save