commit 247dffb6c9a24894f094392ce62f2aa2e81a8acc
parent fdc75a358e4c20116640c08f4e8ce7a09dc3cebd
Author: Mattias Andrée <maandree@kth.se>
Date: Sat, 7 May 2016 03:17:44 +0200
Fix zsave translation for tomsfastmath and libtommath
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat:
3 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/STATUS b/STATUS
@@ -1,11 +1,13 @@
Optimisation progress for libzahl. Benchmarks are done in the
-range 1 to 4097 bits. So far all benchmarks are done with the
-following combinations of cc and libc:
+range 1 to 4097 bits. So far all benchmarks on libzahl are
+done with the following combinations of cc and libc:
gcc + glibc
gcc + musl
clang + glibc
+Benchmarks on the other libraries are done with gcc and glibc.
+
All benchmarks are done on an x86-64 (specifically an Intel
Core 2 Quad CPU Q9300), without any extensions turned on
during compilation, and without any use of extensions in
@@ -63,7 +65,7 @@ zand .................... fastest until ~900, alternating with gmp
zor ..................... fastest until ~1750, alternating with gmp (gcc) and tomsfastmath (clang)
zxor .................... fastest until ~700, alternating with gmp (gcc+glibc)
znot .................... always fastest
-zsave ................... fastest until ~300, then tomsfastmath; libtommath is suspicious
+zsave ................... always fastest
zload ................... always fastest
diff --git a/bench/libtfm.h b/bench/libtfm.h
@@ -325,7 +325,7 @@ zxor(z_t r, z_t a, z_t b)
static inline size_t
zsave(z_t a, char *s)
{
- _tmp = s ? fp_signed_bin_size(a) : (fp_to_signed_bin(a, (unsigned char *)s), 0);
+ _tmp = !s ? fp_signed_bin_size(a) : (fp_to_signed_bin(a, (unsigned char *)s), 0);
return _tmp;
}
diff --git a/bench/libtommath.h b/bench/libtommath.h
@@ -377,7 +377,7 @@ zptest(z_t w, z_t a, int t)
static inline size_t
zsave(z_t a, char *b)
{
- _tmp = b ? mp_signed_bin_size(a) : mp_to_signed_bin(a, (unsigned char *)b);
+ _tmp = !b ? mp_signed_bin_size(a) : mp_to_signed_bin(a, (unsigned char *)b);
return _tmp;
}