Browse Source

Refs xianyi/OpenBLAS-CI#10 , Fix sdot for scipy test_iterative.test_convergence test failure on AMD bulldozer and piledriver.

tags/v0.2.18^2
Zhang Xianyi 9 years ago
parent
commit
d4380c1fe4
1 changed files with 7 additions and 5 deletions
  1. +7
    -5
      kernel/x86_64/sdot.c

+ 7
- 5
kernel/x86_64/sdot.c View File

@@ -72,18 +72,20 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
{ {
BLASLONG i=0; BLASLONG i=0;
BLASLONG ix=0,iy=0; BLASLONG ix=0,iy=0;
double dot = 0.0 ;


FLOAT dot = 0.0 ;
FLOAT mydot=0.0;
BLASLONG n1;


if ( n <= 0 ) return(dot); if ( n <= 0 ) return(dot);


if ( (inc_x == 1) && (inc_y == 1) ) if ( (inc_x == 1) && (inc_y == 1) )
{ {


BLASLONG n1 = n & -32;
n1 = n & (BLASLONG)(-32);


if ( n1 ) if ( n1 )
sdot_kernel_16(n1, x, y , &dot );
sdot_kernel_16(n1, x, y , &mydot );




i = n1; i = n1;
@@ -94,12 +96,13 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)
i++ ; i++ ;


} }
dot+=mydot;
return(dot); return(dot);




} }


BLASLONG n1 = n & -2;
n1 = n & (BLASLONG)(-2);


while(i < n1) while(i < n1)
{ {
@@ -124,4 +127,3 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y)


} }




Loading…
Cancel
Save