mips: Fixed numpy CI failure

This commit is contained in:
gxw 2024-07-17 09:23:49 +08:00
parent 9b3e80efe2
commit f6d6c14a96
3 changed files with 32 additions and 30 deletions

View File

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

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) 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; BLASLONG i = 0, j = 0;
while(j < n) // Resolved issue 4728 when the caller is {s/d}scal
{ if (da == 0.0 && dummy2 == 1)
{
while(j < n)
{
x[i] = da * x[i] ;
if ( da == 0.0 ) i += inc_x ;
if (isnan(x[i])||isinf(x[i])) j++;
x[i]=NAN; }
else }
x[i]=0.0; else
else if (isnan(da)) {
x[i]=NAN; while(j < n)
else {
x[i] = da * x[i] ;
i += inc_x ; if ( da == 0.0 )
j++; x[i] = 0.0;
else
} x[i] = da * x[i] ;
return 0;
i += inc_x ;
j++;
}
}
return 0;
} }

View File

@ -42,7 +42,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
if (1 == inc_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}; 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 else
{ {
if (0.0 == da) if (0.0 == da && !dummy2)
{ {
for (i = n; i--;) for (i = n; i--;)
{ {
if (isfinite(*x)) *x = 0;
*x = 0;
else
*x = NAN;
x += inc_x; x += inc_x;
} }
} }