summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjorn Granlund <tege@gmplib.org>2011-11-09 22:31:09 +0100
committerTorbjorn Granlund <tege@gmplib.org>2011-11-09 22:31:09 +0100
commit76dbb3ab764f748395af063c5b58f188ccbdb163 (patch)
tree77fa4883f0f912ee56d48be1497f95c081ab41e0
parent0247111bce9444a966b57323f42fdd3e5a754b22 (diff)
downloadgmp-76dbb3ab764f748395af063c5b58f188ccbdb163.tar.gz
Add measuring of mpn_addcnd_n, mpn_subcnd_n.
-rw-r--r--tune/common.c11
-rw-r--r--tune/speed.c3
-rw-r--r--tune/speed.h2
3 files changed, 16 insertions, 0 deletions
diff --git a/tune/common.c b/tune/common.c
index dbcc5ce90..eb2d4ba1a 100644
--- a/tune/common.c
+++ b/tune/common.c
@@ -1107,6 +1107,17 @@ speed_mpn_rsh1sub_n (struct speed_params *s)
}
#endif
+double
+speed_mpn_addcnd_n (struct speed_params *s)
+{
+ SPEED_ROUTINE_MPN_BINARY_N_CALL (mpn_addcnd_n (wp, xp, yp, s->size, 1));
+}
+double
+speed_mpn_subcnd_n (struct speed_params *s)
+{
+ SPEED_ROUTINE_MPN_BINARY_N_CALL (mpn_subcnd_n (wp, xp, yp, s->size, 1));
+}
+
/* mpn_and_n etc can be macros and so have to be handled with
SPEED_ROUTINE_MPN_BINARY_N_CALL forms */
double
diff --git a/tune/speed.c b/tune/speed.c
index 0604edded..061517e28 100644
--- a/tune/speed.c
+++ b/tune/speed.c
@@ -468,6 +468,9 @@ const struct routine_t {
{ "mpn_rsh1sub_n", speed_mpn_rsh1sub_n, FLAG_R_OPTIONAL },
#endif
+ { "mpn_addcnd_n", speed_mpn_addcnd_n, FLAG_R_OPTIONAL },
+ { "mpn_subcnd_n", speed_mpn_subcnd_n, FLAG_R_OPTIONAL },
+
{ "MPN_ZERO", speed_MPN_ZERO },
{ "binvert_limb", speed_binvert_limb, FLAG_NODATA },
diff --git a/tune/speed.h b/tune/speed.h
index 08c01a5dc..70484d391 100644
--- a/tune/speed.h
+++ b/tune/speed.h
@@ -148,6 +148,7 @@ double speed_mpn_add_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_add_err1_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_add_err2_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_add_err3_n __GMP_PROTO ((struct speed_params *s));
+double speed_mpn_addcnd_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_addlsh_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_addlsh1_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_addlsh2_n __GMP_PROTO ((struct speed_params *s));
@@ -305,6 +306,7 @@ double speed_mpn_sub_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sub_err1_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sub_err2_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sub_err3_n __GMP_PROTO ((struct speed_params *s));
+double speed_mpn_subcnd_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sublsh_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sublsh1_n __GMP_PROTO ((struct speed_params *s));
double speed_mpn_sublsh2_n __GMP_PROTO ((struct speed_params *s));