From 2707282e8c42064d27f22a5ff45166b4d03110ef Mon Sep 17 00:00:00 2001 From: wangweijie Date: Thu, 9 Jul 2026 20:53:05 +0800 Subject: [PATCH] LoongArch64: avoid SGEMM LA464 ncopy fallthrough from N2 to N1 --- kernel/loongarch64/sgemm_ncopy_16_lasx.S | 6 +++++- kernel/loongarch64/sgemm_ncopy_8_lasx.S | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/kernel/loongarch64/sgemm_ncopy_16_lasx.S b/kernel/loongarch64/sgemm_ncopy_16_lasx.S index 1a81ce601d..0da22897b6 100644 --- a/kernel/loongarch64/sgemm_ncopy_16_lasx.S +++ b/kernel/loongarch64/sgemm_ncopy_16_lasx.S @@ -130,6 +130,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. //.L_N2: //| .L_N2_M2: //| .L_N2_M1: +//| .L_N2_END: //.L_N1: //| .L_N1_M1: //.L_N0 @@ -436,7 +437,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. blt ZERO, I, .L_N2_M2 .L_N2_M1: andi I, M, 0x01 - beq I, ZERO, .L_N1 + beq I, ZERO, .L_N2_END fld.s F0, S1, 0x00 fld.s F1, S2, 0x00 @@ -446,6 +447,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. fst.s F1, TD, 0x04 PTR_ADDI S2, S2, 0x04 PTR_ADDI TD, TD, 0x08 +.L_N2_END: + andi J, N, 0x01 + beq ZERO, J, .L_N0 .align 5 .L_N1: move S1, TS diff --git a/kernel/loongarch64/sgemm_ncopy_8_lasx.S b/kernel/loongarch64/sgemm_ncopy_8_lasx.S index db36827d5e..d8e7350fd4 100644 --- a/kernel/loongarch64/sgemm_ncopy_8_lasx.S +++ b/kernel/loongarch64/sgemm_ncopy_8_lasx.S @@ -105,6 +105,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. //.L_N2: //| .L_N2_M2: //| .L_N2_M1: +//| .L_N2_END: //.L_N1: //| .L_N1_M1: //.L_N0 @@ -271,7 +272,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. blt ZERO, I, .L_N2_M2 .L_N2_M1: andi I, M, 0x01 - beq I, ZERO, .L_N1 + beq I, ZERO, .L_N2_END fld.s F0, S1, 0x00 fld.s F1, S2, 0x00 @@ -281,6 +282,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. fst.s F1, TD, 0x04 PTR_ADDI S2, S2, 0x04 PTR_ADDI TD, TD, 0x08 +.L_N2_END: + andi J, N, 0x01 + beq ZERO, J, .L_N0 .align 5 .L_N1: move S1, TS