Fixed #28. Convert the result to double precision in the end of dsdot kernel.

This commit is contained in:
Xianyi Zhang 2011-05-13 02:34:30 +08:00
parent 1d60510959
commit b206fc7075
3 changed files with 7 additions and 2 deletions

View File

@ -19,7 +19,8 @@ common:
* Fixed #25 a wrong result of rotmg.
x86/x86_64:
*
* Fixed #28 a wrong result of dsdot on x86_64.
MIPS64:
*
====================================================================

View File

@ -668,7 +668,7 @@ $(KDIR)qdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)qdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNEL
$(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
$(KDIR)dsdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)dsdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DDSDOT $< -o $@
$(KDIR)sdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
$(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@

View File

@ -1286,6 +1286,10 @@
haddps %xmm0, %xmm0
#endif
#ifdef DSDOT
cvtss2sd %xmm0, %xmm0
#endif
RESTOREREGISTERS
ret