diff --git a/driver/level3/level3_syrk_threaded.c b/driver/level3/level3_syrk_threaded.c index 88edc7e2a6..b3deaa6ddb 100644 --- a/driver/level3/level3_syrk_threaded.c +++ b/driver/level3/level3_syrk_threaded.c @@ -37,6 +37,11 @@ /* or implied, of The University of Texas at Austin. */ /*********************************************************************/ +#if defined(__loongarch__) && defined(LA464) && defined(DOUBLE) +#undef GEMM_P +#define GEMM_P 96 +#endif + #ifndef CACHE_LINE_SIZE #define CACHE_LINE_SIZE 8 #endif diff --git a/kernel/loongarch64/dgemm_ncopy_4_lsx.S b/kernel/loongarch64/dgemm_ncopy_4_lsx.S index 048a49af61..6e39a470bc 100644 --- a/kernel/loongarch64/dgemm_ncopy_4_lsx.S +++ b/kernel/loongarch64/dgemm_ncopy_4_lsx.S @@ -172,6 +172,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. blt ZERO, I, .L_2II1 .L_N1: move S1, TS + andi J, N, 0x01 + beq ZERO, J, .L_N0 beq ZERO, M, .L_N0 .L_M1: fld.d F0, S1, 0x00 diff --git a/kernel/loongarch64/sgemm_ncopy_16_lasx.S b/kernel/loongarch64/sgemm_ncopy_16_lasx.S index 0da22897b6..bd2f98cf65 100644 --- a/kernel/loongarch64/sgemm_ncopy_16_lasx.S +++ b/kernel/loongarch64/sgemm_ncopy_16_lasx.S @@ -453,6 +453,8 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .align 5 .L_N1: move S1, TS + andi J, N, 0x01 + beq ZERO, J, .L_N0 beq ZERO, M, .L_N0 .L_N1_M1: fld.s F0, S1, 0x00 diff --git a/kernel/loongarch64/sgemm_ncopy_8_lasx.S b/kernel/loongarch64/sgemm_ncopy_8_lasx.S index d8e7350fd4..c71723bb7a 100644 --- a/kernel/loongarch64/sgemm_ncopy_8_lasx.S +++ b/kernel/loongarch64/sgemm_ncopy_8_lasx.S @@ -288,7 +288,10 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .align 5 .L_N1: move S1, TS + andi J, N, 0x01 + beq ZERO, J, .L_N0 beq ZERO, M, .L_N0 + .L_N1_M1: fld.s F0, S1, 0x00 PTR_ADDI S1, S1, 0x04