Merge pull request #4190 from martin-frbg/issue4186-2
Allow negative INCX in the ?NRM2 kernels
This commit is contained in:
commit
ebc157fcc9
|
@ -57,7 +57,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
FLOAT absxi = 0.0;
|
||||
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
if ( n == 1 ) return( ABS(x[0]) );
|
||||
|
||||
n *= inc_x;
|
||||
|
|
|
@ -57,7 +57,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
BLASLONG inc_x2;
|
||||
FLOAT temp;
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
|
||||
inc_x2 = 2 * inc_x;
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
fmov.d s2, s1
|
||||
bge $r0, N, .L999
|
||||
slli.d INCX, INCX, ZBASE_SHIFT
|
||||
bge $r0, INCX, .L999
|
||||
beq $r0, INCX, .L999
|
||||
srai.d I, N, 2
|
||||
bge $r0, I, .L25
|
||||
LD a1, X, 0 * SIZE
|
||||
|
|
|
@ -70,7 +70,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
MTC s1, $r0
|
||||
bge $r0, N, .L999
|
||||
slli.d INCX, INCX, BASE_SHIFT
|
||||
bge $r0, INCX, .L999
|
||||
beq $r0, INCX, .L999
|
||||
move XX, X
|
||||
NOP
|
||||
LD a1, X, 0 * SIZE
|
||||
|
|
|
@ -61,7 +61,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
fmov.d s2, s1
|
||||
bge $r0, N, .L999
|
||||
slli.d INCX, INCX, BASE_SHIFT
|
||||
bge $r0, INCX, .L999
|
||||
beq $r0, INCX, .L999
|
||||
srai.d I, N, 3
|
||||
bne INCX, TEMP, .L20
|
||||
bge $r0, I, .L15
|
||||
|
|
|
@ -64,7 +64,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
MTC s1, $r0
|
||||
bge $r0, N, .L999
|
||||
slli.d INCX, INCX, ZBASE_SHIFT
|
||||
bge $r0, INCX, .L999
|
||||
beq $r0, INCX, .L999
|
||||
move XX, X
|
||||
MOV s2, s1
|
||||
srai.d I, N, 2
|
||||
|
|
|
@ -57,7 +57,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
FLOAT absxi = 0.0;
|
||||
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
if ( n == 1 ) return( ABS(x[0]) );
|
||||
|
||||
n *= inc_x;
|
||||
|
|
|
@ -48,7 +48,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
BLASLONG inc_x2;
|
||||
FLOAT temp;
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
|
||||
inc_x2 = 2 * inc_x;
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
blez N, .L999
|
||||
mov.d s2, s1
|
||||
|
||||
blez INCX, .L999
|
||||
beqz INCX, .L999
|
||||
dsll INCX, INCX, ZBASE_SHIFT
|
||||
|
||||
dsra I, N, 2
|
||||
|
|
|
@ -81,7 +81,7 @@
|
|||
blez N, .L999
|
||||
MTC $0, s1
|
||||
|
||||
blez INCX, .L999
|
||||
beqz INCX, .L999
|
||||
dsll INCX, INCX, BASE_SHIFT
|
||||
|
||||
move XX, X
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
blez N, .L999
|
||||
mov.d s2, s1
|
||||
|
||||
blez INCX, .L999
|
||||
beqz INCX, .L999
|
||||
dsll INCX, INCX, BASE_SHIFT
|
||||
|
||||
bne INCX, TEMP, .L20
|
||||
|
|
|
@ -80,7 +80,7 @@
|
|||
blez N, .L999
|
||||
MTC $0, s1
|
||||
|
||||
blez INCX, .L999
|
||||
beqz INCX, .L999
|
||||
dsll INCX, INCX, ZBASE_SHIFT
|
||||
|
||||
move XX, X
|
||||
|
|
|
@ -99,7 +99,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(9999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(9999)
|
||||
beq- LL(9999)
|
||||
|
||||
fmr f0, f1
|
||||
fmr f2, f1
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble LL(99)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble LL(99)
|
||||
beq LL(99)
|
||||
|
||||
andi. r0, X, 2 * SIZE - 1
|
||||
bne LL(100)
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(999)
|
||||
beq- LL(999)
|
||||
|
||||
fmr f0, f1
|
||||
sub X, X, INCX
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble LL(99)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble LL(99)
|
||||
beq LL(99)
|
||||
|
||||
mr XX, X
|
||||
|
||||
|
|
|
@ -111,7 +111,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(999)
|
||||
beq- LL(999)
|
||||
|
||||
mr NN, N
|
||||
mr XX, X
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(9999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(9999)
|
||||
beq- LL(9999)
|
||||
|
||||
mr NN, N
|
||||
mr XX, X
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(9999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(9999)
|
||||
beq- LL(9999)
|
||||
|
||||
fmr f0, f1
|
||||
fmr f2, f1
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble LL(99)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble LL(99)
|
||||
beq LL(99)
|
||||
|
||||
cmpwi cr0, INCX, SIZE
|
||||
bne LL(100)
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(999)
|
||||
beq- LL(999)
|
||||
|
||||
fmr f0, f1
|
||||
fmr f2, f1
|
||||
|
|
|
@ -105,7 +105,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(9999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(9999)
|
||||
beq- LL(9999)
|
||||
|
||||
mr NN, N
|
||||
mr XX, X
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble LL(99)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble LL(99)
|
||||
beq LL(99)
|
||||
|
||||
mr XX, X
|
||||
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
cmpwi cr0, N, 0
|
||||
ble- LL(999)
|
||||
cmpwi cr0, INCX, 0
|
||||
ble- LL(999)
|
||||
beq- LL(999)
|
||||
|
||||
mr NN, N
|
||||
mr XX, X
|
||||
|
|
|
@ -57,7 +57,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
FLOAT absxi = 0.0;
|
||||
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
if ( n == 1 ) return( ABS(x[0]) );
|
||||
|
||||
n *= inc_x;
|
||||
|
|
|
@ -57,7 +57,7 @@ FLOAT CNAME(BLASLONG n, FLOAT *x, BLASLONG inc_x)
|
|||
BLASLONG inc_x2;
|
||||
FLOAT temp;
|
||||
|
||||
if (n <= 0 || inc_x <= 0) return(0.0);
|
||||
if (n <= 0 || inc_x == 0) return(0.0);
|
||||
|
||||
inc_x2 = 2 * inc_x;
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
FMOV c1, t4
|
||||
|
||||
cmp INCX, 0
|
||||
ble .LL20
|
||||
beq .LL20
|
||||
sll INCX, ZBASE_SHIFT, INCX
|
||||
|
||||
cmp N, 0
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
FMOV fzero, c1
|
||||
|
||||
cmp INCX, 0
|
||||
ble .LL99
|
||||
beq .LL99
|
||||
sll INCX, BASE_SHIFT, INCX
|
||||
|
||||
add %sp, -8, %sp
|
||||
|
|
|
@ -76,7 +76,7 @@
|
|||
FMOV c1, t4
|
||||
|
||||
cmp INCX, 0
|
||||
ble .LL20
|
||||
beq .LL20
|
||||
sll INCX, BASE_SHIFT, INCX
|
||||
|
||||
cmp N, 0
|
||||
|
|
|
@ -107,7 +107,7 @@
|
|||
FMOV fzero, c1
|
||||
|
||||
cmp INCX, 0
|
||||
ble .LL99
|
||||
beq .LL99
|
||||
sll INCX, ZBASE_SHIFT, INCX
|
||||
|
||||
add %sp, -8, %sp
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
testl M, M
|
||||
jle .L999
|
||||
testl INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
sall $BASE_SHIFT, INCX
|
||||
fldz
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
jle .L999
|
||||
pxor %xmm1, %xmm1
|
||||
testl INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
leal (, INCX, SIZE), INCX
|
||||
cmpl $SIZE, INCX
|
||||
|
|
|
@ -78,7 +78,7 @@
|
|||
testl M, M
|
||||
jle .L999
|
||||
testl INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
sall $ZBASE_SHIFT, INCX
|
||||
fldz
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
jle .L999
|
||||
pxor %xmm1, %xmm1
|
||||
testl INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
sall $ZBASE_SHIFT, INCX
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
testq M, M
|
||||
jle .L999
|
||||
testq INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
salq $BASE_SHIFT, INCX
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
jle .L999
|
||||
pxor %xmm1, %xmm1
|
||||
testq INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
pxor %xmm2, %xmm2
|
||||
leaq (, INCX, SIZE), INCX
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
testq M, M
|
||||
jle .L999
|
||||
testq INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
salq $ZBASE_SHIFT, INCX
|
||||
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
jle .L999
|
||||
pxor %xmm1, %xmm1
|
||||
testq INCX, INCX
|
||||
jle .L999
|
||||
je .L999
|
||||
|
||||
xorq FLAG, FLAG
|
||||
|
||||
|
|
Loading…
Reference in New Issue