diff --git a/kernel/riscv64/scal.c b/kernel/riscv64/scal.c index 6c713aa18..bebbed67e 100644 --- a/kernel/riscv64/scal.c +++ b/kernel/riscv64/scal.c @@ -43,9 +43,9 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS if ( (n <= 0) || (inc_x <= 0)) return(0); - - while(j < n) - { + if (dummy2 == 0) { + while(j < n) + { if ( da == 0.0 ) if (isfinite(x[i])) @@ -57,7 +57,19 @@ int CNAME(BLASLONG n, BLASLONG dummy0, BLASLONG dummy1, FLOAT da, FLOAT *x, BLAS 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;