diff --git a/kernel/loongarch64/axpby_lasx.S b/kernel/loongarch64/axpby_lasx.S index 7a246ca5c..b5cf77dc4 100644 --- a/kernel/loongarch64/axpby_lasx.S +++ b/kernel/loongarch64/axpby_lasx.S @@ -139,9 +139,9 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. xvst VX1, Y, 4 * SIZE #else xvfmul.s VX0, VX0, VXA - addi.d I, I, -1 xvst VX0, Y, 0 * SIZE #endif + addi.d I, I, -1 addi.d X, X, 8 * SIZE addi.d Y, Y, 8 * SIZE blt $r0, I, .L112 @@ -288,6 +288,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. addi.d X, X, 8 * SIZE addi.d I, I, -1 blt $r0, I, .L121 + move Y, YY b .L997 .align 3 @@ -334,6 +335,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. add.d YY, YY, INCY addi.d X, X, 8 * SIZE blt $r0, I, .L122 + move Y, YY b .L997 .align 3 @@ -425,6 +427,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. add.d YY, YY, INCY addi.d I, I, -1 blt $r0, I, .L123 + move Y, YY b .L997 .align 3 @@ -465,6 +468,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. add.d YY, YY, INCY addi.d I, I, -1 blt $r0, I, .L124 + move Y, YY b .L997 .align 3 @@ -803,6 +807,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif add.d YY, YY, INCY blt $r0, I, .L221 + move Y, YY b .L997 .align 3 @@ -895,6 +900,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif add.d YY, YY, INCY blt $r0, I, .L222 + move Y, YY b .L997 .align 3 @@ -987,6 +993,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif add.d YY, YY, INCY blt $r0, I, .L223 + move Y, YY b .L997 .align 3 @@ -1027,6 +1034,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. add.d YY, YY, INCY addi.d I, I, -1 blt $r0, I, .L224 + move Y, YY b .L997 .align 3 diff --git a/kernel/loongarch64/caxpby_lasx.S b/kernel/loongarch64/caxpby_lasx.S index c5802092e..5f34f1380 100644 --- a/kernel/loongarch64/caxpby_lasx.S +++ b/kernel/loongarch64/caxpby_lasx.S @@ -176,13 +176,13 @@ xvilvh.d VX3, x4, x3 xvst VX2, Y, 0 * SIZE xvst VX3, Y, 4 * SIZE - addi.d X, Y, 8 * SIZE + addi.d Y, Y, 8 * SIZE #else xvilvl.w VX2, x4 ,x3 xvilvh.w VX3, x4, x3 xvst VX2, Y, 0 * SIZE xvst VX3, Y, 8 * SIZE - addi.d X, Y, 16 * SIZE + addi.d Y, Y, 16 * SIZE #endif addi.d I, I, -1 blt $r0, I, .L113 @@ -617,6 +617,7 @@ xvstelm.d x4, YY, 1 * SIZE, 3 add.d YY, YY, INCY blt $r0, I, .L222 + move Y, YY b .L997 .align 3 #else @@ -691,6 +692,7 @@ xvstelm.w x4, YY, 1 * SIZE, 7 add.d YY, YY, INCY blt $r0, I, .L222 + move Y, YY b .L997 .align 3 #endif @@ -1011,7 +1013,11 @@ #endif .L997: +#ifdef DOUBLE + andi I, N, 3 +#else andi I, N, 7 +#endif bge $r0, I, .L999 .align 3