summaryrefslogtreecommitdiff
path: root/tune/speed.h
diff options
context:
space:
mode:
authorMarco Bodrato <bodrato@mail.dm.unipi.it>2015-08-06 04:23:43 +0200
committerMarco Bodrato <bodrato@mail.dm.unipi.it>2015-08-06 04:23:43 +0200
commit1e2d3478a34da0aed55bd4d57903c38c377d0d37 (patch)
tree1efb255c196e889d80ed1e6f3b000c380c1e586e /tune/speed.h
parent24d699066b311dc5e900db85cdd95084831c5672 (diff)
downloadgmp-1e2d3478a34da0aed55bd4d57903c38c377d0d37.tar.gz
tune: Support mpn_sqrlo and mpn_sqrlo_basecase in tune/speed.
Diffstat (limited to 'tune/speed.h')
-rw-r--r--tune/speed.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/tune/speed.h b/tune/speed.h
index 0c28780bd..9fdb06bfd 100644
--- a/tune/speed.h
+++ b/tune/speed.h
@@ -277,6 +277,8 @@ double speed_mpn_nussbaumer_mul_sqr (struct speed_params *);
double speed_mpn_mul_n (struct speed_params *);
double speed_mpn_mul_n_sqr (struct speed_params *);
double speed_mpn_mulmid_n (struct speed_params *);
+double speed_mpn_sqrlo (struct speed_params *);
+double speed_mpn_sqrlo_basecase (struct speed_params *);
double speed_mpn_mullo_n (struct speed_params *);
double speed_mpn_mullo_basecase (struct speed_params *);
double speed_mpn_nand_n (struct speed_params *);
@@ -1143,8 +1145,10 @@ int speed_routine_count_zeros_setup (struct speed_params *, mp_ptr, int, int);
#define SPEED_ROUTINE_MPN_MULLO_N(function) \
SPEED_ROUTINE_MPN_MULLO_N_CALL (function (wp, s->xp, s->yp, s->size));
-/* For mpn_mul_basecase, xsize=r, ysize=s->size. */
#define SPEED_ROUTINE_MPN_MULLO_BASECASE(function) \
+ SPEED_ROUTINE_MPN_MULLO_N_CALL (function (wp, s->xp, s->yp, s->size));
+
+#define SPEED_ROUTINE_MPN_SQRLO(function) \
{ \
mp_ptr wp; \
unsigned i; \
@@ -1157,14 +1161,13 @@ int speed_routine_count_zeros_setup (struct speed_params *, mp_ptr, int, int);
SPEED_TMP_ALLOC_LIMBS (wp, s->size, s->align_wp); \
\
speed_operand_src (s, s->xp, s->size); \
- speed_operand_src (s, s->yp, s->size); \
speed_operand_dst (s, wp, s->size); \
speed_cache_fill (s); \
\
speed_starttime (); \
i = s->reps; \
do \
- function (wp, s->xp, s->yp, s->size); \
+ function (wp, s->xp, s->size); \
while (--i != 0); \
t = speed_endtime (); \
\