[Gmp-commit] /home/hgfiles/gmp: Retune x86/atom.
mercurial at gmplib.org
mercurial at gmplib.org
Wed Dec 30 11:44:59 CET 2009
details: /home/hgfiles/gmp/rev/5b44d89ea1f2
changeset: 13267:5b44d89ea1f2
user: Marco Bodrato <bodrato at mail.dm.unipi.it>
date: Wed Dec 30 11:44:54 2009 +0100
description:
Retune x86/atom.
diffstat:
NEWS | 2 -
mpn/x86/atom/gmp-mparam.h | 108 ++++++++++++++++++++++++++-------------------
2 files changed, 63 insertions(+), 47 deletions(-)
diffs (138 lines):
diff -r ba82afae2121 -r 5b44d89ea1f2 NEWS
--- a/NEWS Wed Dec 30 03:34:30 2009 +0100
+++ b/NEWS Wed Dec 30 11:44:54 2009 +0100
@@ -18,9 +18,7 @@
mpn_mulmod_bnm1 (computing U * V mod (B^n-1), B being the word base.
This latter function is used for the largest products, waiting for a
better Schoenhage-Strassen U * V mod (B^n+1) implementation.
-
(2) Likewise for squaring.
-
(3) Multiplication of different size operands has been improved with the
addition of many new Toom function, and by selecting underlying
functions better from the main multiply functions.
diff -r ba82afae2121 -r 5b44d89ea1f2 mpn/x86/atom/gmp-mparam.h
--- a/mpn/x86/atom/gmp-mparam.h Wed Dec 30 03:34:30 2009 +0100
+++ b/mpn/x86/atom/gmp-mparam.h Wed Dec 30 11:44:54 2009 +0100
@@ -21,58 +21,76 @@
#define GMP_LIMB_BITS 32
#define BYTES_PER_MP_LIMB 4
-/* Generated by tuneup.c, 2009-12-15, gcc 4.4 */
+/* Generated by tuneup.c, 2009-12-28, gcc 4.4 */
-#define MUL_TOOM22_THRESHOLD 16
-#define MUL_TOOM33_THRESHOLD 69
-#define MUL_TOOM44_THRESHOLD 169
+#define MOD_1_NORM_THRESHOLD 3
+#define MOD_1_UNNORM_THRESHOLD 7
+#define MOD_1N_TO_MOD_1_1_THRESHOLD 19
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 7
+#define MOD_1_1_TO_MOD_1_2_THRESHOLD 11
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 18
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 38
+#define USE_PREINV_DIVREM_1 1
+#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
+#define BMOD_1_TO_MOD_1_THRESHOLD 144
-#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
-#define SQR_TOOM2_THRESHOLD 16
-#define SQR_TOOM3_THRESHOLD 113
-#define SQR_TOOM4_THRESHOLD 192
+#define MUL_TOOM22_THRESHOLD 16
+#define MUL_TOOM33_THRESHOLD 66
+#define MUL_TOOM44_THRESHOLD 171
+#define MUL_TOOM6H_THRESHOLD 258
+#define MUL_TOOM8H_THRESHOLD 357
-#define MUL_FFT_TABLE { 304, 672, 896, 2560, 10240, 24576, 98304, 393216, 0 }
-#define MUL_FFT_MODF_THRESHOLD 320
-#define MUL_FFT_THRESHOLD 2816
+#define MUL_TOOM32_TO_TOOM43_THRESHOLD 113
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 124
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 113
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 129
-#define SQR_FFT_TABLE { 304, 672, 896, 2560, 6144, 24576, 98304, 393216, 0 }
-#define SQR_FFT_MODF_THRESHOLD 264
-#define SQR_FFT_THRESHOLD 1792
+#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
+#define SQR_TOOM2_THRESHOLD 16
+#define SQR_TOOM3_THRESHOLD 113
+#define SQR_TOOM4_THRESHOLD 193
+#define SQR_TOOM6_THRESHOLD 254
+#define SQR_TOOM8_THRESHOLD 381
-#define MULLO_BASECASE_THRESHOLD 0 /* always */
-#define MULLO_DC_THRESHOLD 55
-#define MULLO_MUL_N_THRESHOLD 3913
+#define MULMOD_BNM1_THRESHOLD 13
+#define SQRMOD_BNM1_THRESHOLD 11
-#define MULMOD_BNM1_THRESHOLD 13
+#define MUL_FFT_TABLE { 336, 672, 896, 2560, 10240, 24576, 98304, 393216, 0 }
+#define MUL_FFT_MODF_THRESHOLD 352
+#define MUL_FFT_THRESHOLD 7168
-#define DC_DIV_QR_THRESHOLD 59
-#define DC_DIVAPPR_Q_THRESHOLD 222
-#define DC_BDIV_QR_THRESHOLD 56
-#define DC_BDIV_Q_THRESHOLD 136
-#define INV_MULMOD_BNM1_THRESHOLD 40
-#define INV_NEWTON_THRESHOLD 260
-#define INV_APPR_THRESHOLD 41
-#define BINV_NEWTON_THRESHOLD 264
-#define REDC_1_TO_REDC_N_THRESHOLD 62
+#define SQR_FFT_TABLE { 336, 672, 896, 2560, 6144, 24576, 98304, 393216, 0 }
+#define SQR_FFT_MODF_THRESHOLD 296
+#define SQR_FFT_THRESHOLD 3840
-#define MATRIX22_STRASSEN_THRESHOLD 16
-#define HGCD_THRESHOLD 110
-#define GCD_DC_THRESHOLD 375
-#define GCDEXT_DC_THRESHOLD 278
-#define JACOBI_BASE_METHOD 2
+#define MULLO_BASECASE_THRESHOLD 0 /* always */
+#define MULLO_DC_THRESHOLD 56
+#define MULLO_MUL_N_THRESHOLD 8648
-#define MOD_1_NORM_THRESHOLD 3
-#define MOD_1_UNNORM_THRESHOLD 7
-#define MOD_1_1_THRESHOLD 8
-#define MOD_1_2_THRESHOLD 11
-#define MOD_1_4_THRESHOLD 18
-#define USE_PREINV_DIVREM_1 1
-#define USE_PREINV_MOD_1 0
-#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
-#define MODEXACT_1_ODD_THRESHOLD MP_SIZE_T_MAX /* never */
+#define DC_DIV_QR_THRESHOLD 58
+#define DC_DIVAPPR_Q_THRESHOLD 220
+#define DC_BDIV_QR_THRESHOLD 56
+#define DC_BDIV_Q_THRESHOLD 136
-#define GET_STR_DC_THRESHOLD 13
-#define GET_STR_PRECOMPUTE_THRESHOLD 26
-#define SET_STR_DC_THRESHOLD 140
-#define SET_STR_PRECOMPUTE_THRESHOLD 889
+#define INV_MULMOD_BNM1_THRESHOLD 30
+#define INV_NEWTON_THRESHOLD 260
+#define INV_APPR_THRESHOLD 244
+
+#define BINV_NEWTON_THRESHOLD 264
+#define REDC_1_TO_REDC_N_THRESHOLD 63
+
+#define MU_DIV_QR_THRESHOLD 1607
+#define MU_DIVAPPR_Q_THRESHOLD 1607
+#define MU_BDIV_QR_THRESHOLD 1547
+#define MU_BDIV_Q_THRESHOLD 1577
+
+#define MATRIX22_STRASSEN_THRESHOLD 17
+#define HGCD_THRESHOLD 109
+#define GCD_DC_THRESHOLD 372
+#define GCDEXT_DC_THRESHOLD 275
+#define JACOBI_BASE_METHOD 2
+
+#define GET_STR_DC_THRESHOLD 14
+#define GET_STR_PRECOMPUTE_THRESHOLD 27
+#define SET_STR_DC_THRESHOLD 270
+#define SET_STR_PRECOMPUTE_THRESHOLD 860
More information about the gmp-commit
mailing list