Skip to content

Commit f6d6c14

Browse files
committed
mips: Fixed numpy CI failure
1 parent 9b3e80e commit f6d6c14

File tree

3 files changed

+36
-34
lines changed

3 files changed

+36
-34
lines changed

kernel/mips/dscal_msa.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
4242

4343
if (1 == inc_x)
4444
{
45-
if (0) //if (0.0 == da )
45+
if (0.0 == da && !dummy2)
4646
{
4747
v2f64 zero_v = {0.0, 0.0};
4848

@@ -240,14 +240,12 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
240240
}
241241
else
242242
{
243-
if (da == 0.0)
243+
if (da == 0.0 && !dummy2)
244244
{
245245
for (i = n; i--;)
246-
{
247-
if (isfinite(*x))
248-
*x = 0.0;
249-
else
250-
*x = NAN;
246+
{
247+
*x = 0.0;
248+
251249
x += inc_x;
252250
}
253251
}

kernel/mips/scal.c

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -29,27 +29,34 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
2929

3030
int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLASLONG inc_x, FLOAT *y, BLASLONG inc_y, FLOAT *dummy, BLASLONG dummy2)
3131
{
32-
BLASLONG i=0,j=0;
33-
34-
while(j < n)
35-
{
36-
37-
if ( da == 0.0 )
38-
if (isnan(x[i])||isinf(x[i]))
39-
x[i]=NAN;
40-
else
41-
x[i]=0.0;
42-
else if (isnan(da))
43-
x[i]=NAN;
44-
else
45-
x[i] = da * x[i] ;
46-
47-
i += inc_x ;
48-
j++;
49-
50-
}
51-
return 0;
52-
32+
BLASLONG i = 0, j = 0;
33+
34+
// Resolved issue 4728 when the caller is {s/d}scal
35+
if (da == 0.0 && dummy2 == 1)
36+
{
37+
while(j < n)
38+
{
39+
x[i] = da * x[i] ;
40+
41+
i += inc_x ;
42+
j++;
43+
}
44+
}
45+
else
46+
{
47+
while(j < n)
48+
{
49+
50+
if ( da == 0.0 )
51+
x[i] = 0.0;
52+
else
53+
x[i] = da * x[i] ;
54+
55+
i += inc_x ;
56+
j++;
57+
}
58+
}
59+
return 0;
5360
}
5461

5562

kernel/mips/sscal_msa.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
4242

4343
if (1 == inc_x)
4444
{
45-
if (0) // if (0.0 == da)
45+
if (0.0 == da && !dummy2)
4646
{
4747
v4f32 zero_v = {0.0, 0.0, 0.0, 0.0};
4848

@@ -255,14 +255,11 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x,
255255
}
256256
else
257257
{
258-
if (0.0 == da)
258+
if (0.0 == da && !dummy2)
259259
{
260260
for (i = n; i--;)
261261
{
262-
if (isfinite(*x))
263-
*x = 0;
264-
else
265-
*x = NAN;
262+
*x = 0;
266263
x += inc_x;
267264
}
268265
}

0 commit comments

Comments
 (0)