summaryrefslogtreecommitdiff
path: root/tune
diff options
context:
space:
mode:
authorNiels M?ller <nisse@lysator.liu.se>2019-08-06 17:16:07 +0200
committerNiels M?ller <nisse@lysator.liu.se>2019-08-06 17:16:07 +0200
commitc552d2f299bd7e51219fd2e0efedac220494c7e7 (patch)
treefa644399afcdf374fbc1d6fb0074d8c6b23d7c8f /tune
parent2c76477c5f8125728c8423c6e6d43f2979b0e478 (diff)
downloadgmp-c552d2f299bd7e51219fd2e0efedac220494c7e7.tar.gz
tune/speed: Support mpn_gcd_11.
Diffstat (limited to 'tune')
-rw-r--r--tune/common.c5
-rw-r--r--tune/speed.c1
-rw-r--r--tune/speed.h5
3 files changed, 11 insertions, 0 deletions
diff --git a/tune/common.c b/tune/common.c
index 9fefb0d36..1291f5dc9 100644
--- a/tune/common.c
+++ b/tune/common.c
@@ -1717,6 +1717,11 @@ speed_mpn_gcd_1 (struct speed_params *s)
SPEED_ROUTINE_MPN_GCD_1 (mpn_gcd_1);
}
double
+speed_mpn_gcd_11 (struct speed_params *s)
+{
+ SPEED_ROUTINE_MPN_GCD_11 (mpn_gcd_11);
+}
+double
speed_mpn_gcd_1N (struct speed_params *s)
{
SPEED_ROUTINE_MPN_GCD_1N (mpn_gcd_1);
diff --git a/tune/speed.c b/tune/speed.c
index 82e9c1ac3..f9261227b 100644
--- a/tune/speed.c
+++ b/tune/speed.c
@@ -295,6 +295,7 @@ const struct routine_t {
{ "mpn_hgcd_reduce_2", speed_mpn_hgcd_reduce_2 },
{ "mpn_gcd_1", speed_mpn_gcd_1, FLAG_R_OPTIONAL },
+ { "mpn_gcd_11", speed_mpn_gcd_11, FLAG_R_OPTIONAL },
{ "mpn_gcd_1N", speed_mpn_gcd_1N, FLAG_R_OPTIONAL },
{ "mpn_gcd", speed_mpn_gcd },
diff --git a/tune/speed.h b/tune/speed.h
index 6ea000b4c..41df4c675 100644
--- a/tune/speed.h
+++ b/tune/speed.h
@@ -223,6 +223,7 @@ double speed_mpn_hgcd_reduce_1 (struct speed_params *);
double speed_mpn_hgcd_reduce_2 (struct speed_params *);
double speed_mpn_gcd (struct speed_params *);
double speed_mpn_gcd_1 (struct speed_params *);
+double speed_mpn_gcd_11 (struct speed_params *);
double speed_mpn_gcd_1N (struct speed_params *);
double speed_mpn_gcdext (struct speed_params *);
double speed_mpn_gcdext_double (struct speed_params *);
@@ -2820,6 +2821,10 @@ int speed_routine_count_zeros_setup (struct speed_params *, mp_ptr, int, int);
#define SPEED_ROUTINE_MPN_GCD_1(function) \
SPEED_ROUTINE_MPN_GCD_1_CALL( , function (&px[j-1], 1, py[j-1]))
+#define SPEED_ROUTINE_MPN_GCD_11(function) \
+ SPEED_ROUTINE_MPN_GCD_1_CALL((px[i] |= 1, py[i] |= 1), \
+ function (px[j-1], py[j-1]))
+
#define SPEED_ROUTINE_MPN_JACBASE(function) \
SPEED_ROUTINE_MPN_GCD_1_CALL \
({ \