Browse Source

mips: Fixed numpy CI failure

tags/v0.3.28^2
gxw 1 year ago
parent
commit
f6d6c14a96
3 changed files with 36 additions and 34 deletions
  1. +5
    -7
      kernel/mips/dscal_msa.c
  2. +28
    -21
      kernel/mips/scal.c
  3. +3
    -6
      kernel/mips/sscal_msa.c

+ 5
- 7
kernel/mips/dscal_msa.c View File

@@ -42,7 +42,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,

if (1 == inc_x)
{
if (0) //if (0.0 == da )
if (0.0 == da && !dummy2)
{
v2f64 zero_v = {0.0, 0.0};

@@ -240,14 +240,12 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
}
else
{
if (da == 0.0)
if (da == 0.0 && !dummy2)
{
for (i = n; i--;)
{
if (isfinite(*x))
*x = 0.0;
else
*x = NAN;
{
*x = 0.0;

x += inc_x;
}
}


+ 28
- 21
kernel/mips/scal.c View File

@@ -29,27 +29,34 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2)
{
BLASLONG i=0,j=0;

while(j < n)
{

if ( da == 0.0 )
if (isnan(x[i])||isinf(x[i]))
x[i]=NAN;
else
x[i]=0.0;
else if (isnan(da))
x[i]=NAN;
else
x[i] = da * x[i] ;

i += inc_x ;
j++;

}
return 0;

BLASLONG i = 0, j = 0;

// Resolved issue 4728 when the caller is {s/d}scal
if (da == 0.0 && dummy2 == 1)
{
while(j < n)
{
x[i] = da * x[i] ;

i += inc_x ;
j++;
}
}
else
{
while(j < n)
{

if ( da == 0.0 )
x[i] = 0.0;
else
x[i] = da * x[i] ;

i += inc_x ;
j++;
}
}
return 0;
}



+ 3
- 6
kernel/mips/sscal_msa.c View File

@@ -42,7 +42,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,

if (1 == inc_x)
{
if (0) // if (0.0 == da)
if (0.0 == da && !dummy2)
{
v4f32 zero_v = {0.0, 0.0, 0.0, 0.0};

@@ -255,14 +255,11 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
}
else
{
if (0.0 == da)
if (0.0 == da && !dummy2)
{
for (i = n; i--;)
{
if (isfinite(*x))
*x = 0;
else
*x = NAN;
*x = 0;
x += inc_x;
}
}


Loading…
Cancel
Save