Add NaN tests
This commit is contained in:
parent
95ce0b0c48
commit
43f5e4251b
|
@ -93,6 +93,10 @@
|
||||||
addq INCX, X
|
addq INCX, X
|
||||||
decq M
|
decq M
|
||||||
shufps $0, %xmm0, %xmm0
|
shufps $0, %xmm0, %xmm0
|
||||||
|
incq RET
|
||||||
|
comiss %xmm0, %xmm0
|
||||||
|
jp .L999
|
||||||
|
decq RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm0
|
andps %xmm15, %xmm0
|
||||||
#endif
|
#endif
|
||||||
|
@ -254,6 +258,10 @@
|
||||||
decq M
|
decq M
|
||||||
addq $SIZE, X
|
addq $SIZE, X
|
||||||
|
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
decq RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
#endif
|
#endif
|
||||||
|
@ -268,6 +276,14 @@
|
||||||
|
|
||||||
movss 0 * SIZE(X), %xmm1
|
movss 0 * SIZE(X), %xmm1
|
||||||
movss 1 * SIZE(X), %xmm2
|
movss 1 * SIZE(X), %xmm2
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
decq RET
|
||||||
|
decq RET
|
||||||
|
|
||||||
subq $2, M
|
subq $2, M
|
||||||
addq $2 * SIZE, X
|
addq $2 * SIZE, X
|
||||||
|
@ -332,6 +348,31 @@
|
||||||
movss 5 * SIZE(X), %xmm6
|
movss 5 * SIZE(X), %xmm6
|
||||||
movss 6 * SIZE(X), %xmm7
|
movss 6 * SIZE(X), %xmm7
|
||||||
movss 7 * SIZE(X), %xmm8
|
movss 7 * SIZE(X), %xmm8
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm5, %xmm5
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm6, %xmm6
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm7, %xmm7
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm8, %xmm8
|
||||||
|
jp .L998
|
||||||
|
subq $8, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -378,6 +419,19 @@
|
||||||
movss 1 * SIZE(X), %xmm2
|
movss 1 * SIZE(X), %xmm2
|
||||||
movss 2 * SIZE(X), %xmm3
|
movss 2 * SIZE(X), %xmm3
|
||||||
movss 3 * SIZE(X), %xmm4
|
movss 3 * SIZE(X), %xmm4
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
subq $4, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -405,6 +459,13 @@
|
||||||
|
|
||||||
movss 0 * SIZE(X), %xmm1
|
movss 0 * SIZE(X), %xmm1
|
||||||
movss 1 * SIZE(X), %xmm2
|
movss 1 * SIZE(X), %xmm2
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
subq $2, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -593,6 +654,31 @@
|
||||||
movss 5 * SIZE(X), %xmm6
|
movss 5 * SIZE(X), %xmm6
|
||||||
movss 6 * SIZE(X), %xmm7
|
movss 6 * SIZE(X), %xmm7
|
||||||
movss 7 * SIZE(X), %xmm8
|
movss 7 * SIZE(X), %xmm8
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm5, %xmm5
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm6, %xmm6
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm7, %xmm7
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm8, %xmm8
|
||||||
|
jp .L998
|
||||||
|
subq $8, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -639,6 +725,19 @@
|
||||||
movss 1 * SIZE(X), %xmm2
|
movss 1 * SIZE(X), %xmm2
|
||||||
movss 2 * SIZE(X), %xmm3
|
movss 2 * SIZE(X), %xmm3
|
||||||
movss 3 * SIZE(X), %xmm4
|
movss 3 * SIZE(X), %xmm4
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
subq $4, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -666,6 +765,13 @@
|
||||||
|
|
||||||
movss 0 * SIZE(X), %xmm1
|
movss 0 * SIZE(X), %xmm1
|
||||||
movss 1 * SIZE(X), %xmm2
|
movss 1 * SIZE(X), %xmm2
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
subq $2, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -885,6 +991,31 @@
|
||||||
movss 0 * SIZE(X), %xmm2
|
movss 0 * SIZE(X), %xmm2
|
||||||
subq INCX, X
|
subq INCX, X
|
||||||
movss 0 * SIZE(X), %xmm1
|
movss 0 * SIZE(X), %xmm1
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm5, %xmm5
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm6, %xmm6
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm7, %xmm7
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm8, %xmm8
|
||||||
|
jp .L998
|
||||||
|
subq $8, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -932,7 +1063,19 @@
|
||||||
addq INCX, X
|
addq INCX, X
|
||||||
movss 0 * SIZE(X), %xmm4
|
movss 0 * SIZE(X), %xmm4
|
||||||
addq INCX, X
|
addq INCX, X
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm3, %xmm3
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm4, %xmm4
|
||||||
|
jp .L998
|
||||||
|
subq $4, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -961,6 +1104,13 @@
|
||||||
addq INCX, X
|
addq INCX, X
|
||||||
movss 0 * SIZE(X), %xmm2
|
movss 0 * SIZE(X), %xmm2
|
||||||
addq INCX, X
|
addq INCX, X
|
||||||
|
incq RET
|
||||||
|
comiss %xmm1, %xmm1
|
||||||
|
jp .L998
|
||||||
|
incq RET
|
||||||
|
comiss %xmm2, %xmm2
|
||||||
|
jp .L998
|
||||||
|
subq $2, RET
|
||||||
#ifdef USE_ABS
|
#ifdef USE_ABS
|
||||||
andps %xmm15, %xmm1
|
andps %xmm15, %xmm1
|
||||||
andps %xmm15, %xmm2
|
andps %xmm15, %xmm2
|
||||||
|
@ -982,5 +1132,9 @@
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
.L998:
|
||||||
|
// incq RET
|
||||||
|
jmp .L999
|
||||||
|
|
||||||
EPILOGUE
|
EPILOGUE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue