Browse Source

loongarch: Fixed {s/d/c/z}axpby LASX opt

tags/v0.3.27
gxw 1 year ago
parent
commit
7d755912b9
2 changed files with 17 additions and 3 deletions
  1. +9
    -1
      kernel/loongarch64/axpby_lasx.S
  2. +8
    -2
      kernel/loongarch64/caxpby_lasx.S

+ 9
- 1
kernel/loongarch64/axpby_lasx.S View File

@@ -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



+ 8
- 2
kernel/loongarch64/caxpby_lasx.S View File

@@ -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



Loading…
Cancel
Save