Add NaN tests
This commit is contained in:
parent
562ef5fdca
commit
95ce0b0c48
|
@ -79,6 +79,8 @@
|
|||
movsd (X), %xmm0
|
||||
addq INCX, X
|
||||
decq M
|
||||
comisd %xmm0, %xmm0
|
||||
jp .L987
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm0
|
||||
#endif
|
||||
|
@ -269,6 +271,11 @@
|
|||
je .L21
|
||||
|
||||
movsd 0 * SIZE(X), %xmm1
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
decq RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
#endif
|
||||
|
@ -342,6 +349,32 @@
|
|||
movsd 5 * SIZE(X), %xmm6
|
||||
movsd 6 * SIZE(X), %xmm7
|
||||
movsd 7 * SIZE(X), %xmm8
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm5, %xmm5
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm6, %xmm6
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm7, %xmm7
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm8, %xmm8
|
||||
jp .L987
|
||||
subq $8, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -388,6 +421,21 @@
|
|||
movsd 1 * SIZE(X), %xmm2
|
||||
movsd 2 * SIZE(X), %xmm3
|
||||
movsd 3 * SIZE(X), %xmm4
|
||||
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
subq $4, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -415,6 +463,14 @@
|
|||
|
||||
movsd 0 * SIZE(X), %xmm1
|
||||
movsd 1 * SIZE(X), %xmm2
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
subq $2, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -670,6 +726,32 @@
|
|||
movsd 5 * SIZE(X), %xmm6
|
||||
movsd 6 * SIZE(X), %xmm7
|
||||
movsd 7 * SIZE(X), %xmm8
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm5, %xmm5
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm6, %xmm6
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm7, %xmm7
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm8, %xmm8
|
||||
jp .L987
|
||||
subq $8, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -716,6 +798,20 @@
|
|||
movsd 1 * SIZE(X), %xmm2
|
||||
movsd 2 * SIZE(X), %xmm3
|
||||
movsd 3 * SIZE(X), %xmm4
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
subq $4, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -743,11 +839,21 @@
|
|||
|
||||
movsd 0 * SIZE(X), %xmm1
|
||||
movsd 1 * SIZE(X), %xmm2
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
subq $2, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
#endif
|
||||
addq $2 * SIZE, X
|
||||
comisd %xmm0, %xmm0
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm0, %xmm1
|
||||
je .L999
|
||||
|
@ -962,6 +1068,7 @@
|
|||
ALIGN_4
|
||||
|
||||
.L92:
|
||||
|
||||
movsd 0 * SIZE(X), %xmm1
|
||||
addq INCX, X
|
||||
movhpd 0 * SIZE(X), %xmm1
|
||||
|
@ -1033,6 +1140,32 @@
|
|||
movsd 0 * SIZE(X), %xmm2
|
||||
subq INCX, X
|
||||
movsd 0 * SIZE(X), %xmm1
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm5, %xmm5
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm6, %xmm6
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm7, %xmm7
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm8, %xmm8
|
||||
jp .L987
|
||||
subq $8, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -1083,6 +1216,20 @@
|
|||
addq INCX, X
|
||||
movsd 0 * SIZE(X), %xmm4
|
||||
addq INCX, X
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm3, %xmm3
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm4, %xmm4
|
||||
jp .L987
|
||||
subq $4, RET
|
||||
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -1111,6 +1258,14 @@
|
|||
addq INCX, X
|
||||
movsd 0 * SIZE(X), %xmm2
|
||||
addq INCX, X
|
||||
incq RET
|
||||
comisd %xmm1, %xmm1
|
||||
jp .L987
|
||||
incq RET
|
||||
comisd %xmm2, %xmm2
|
||||
jp .L987
|
||||
decq RET
|
||||
decq RET
|
||||
#ifdef USE_ABS
|
||||
andpd %xmm15, %xmm1
|
||||
andpd %xmm15, %xmm2
|
||||
|
@ -1122,7 +1277,6 @@
|
|||
comisd %xmm0, %xmm2
|
||||
je .L999
|
||||
ALIGN_3
|
||||
|
||||
.L98:
|
||||
incq RET
|
||||
ALIGN_3
|
||||
|
@ -1132,5 +1286,8 @@
|
|||
|
||||
ret
|
||||
|
||||
EPILOGUE
|
||||
.L987:
|
||||
incq RET //count from xmm0
|
||||
jmp .L999
|
||||
|
||||
EPILOGUE
|
||||
|
|
Loading…
Reference in New Issue