Browse Source

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

tags/v0.1alpha2^2
Xianyi Zhang 14 years ago
parent
commit
b206fc7075
3 changed files with 7 additions and 2 deletions
  1. +2
    -1
      Changelog.txt
  2. +1
    -1
      kernel/Makefile.L1
  3. +4
    -0
      kernel/x86_64/dot_sse.S

+ 2
- 1
Changelog.txt 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:
*
====================================================================


+ 1
- 1
kernel/Makefile.L1 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 $@


+ 4
- 0
kernel/x86_64/dot_sse.S View File

@@ -1286,6 +1286,10 @@
haddps %xmm0, %xmm0
#endif

#ifdef DSDOT
cvtss2sd %xmm0, %xmm0
#endif

RESTOREREGISTERS

ret


Loading…
Cancel
Save