From d4453c1389c9b4114f175c80b0369871be2225e6 Mon Sep 17 00:00:00 2001 From: Alexander Kruppa Date: Tue, 31 Jan 2017 12:40:37 +0100 Subject: [PATCH] New parameters for AVX Haswell --- mpn/x86_64/haswell/avx/gmp-mparam.h | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 mpn/x86_64/haswell/avx/gmp-mparam.h diff --git a/mpn/x86_64/haswell/avx/gmp-mparam.h b/mpn/x86_64/haswell/avx/gmp-mparam.h new file mode 100644 index 00000000..3ad2609a --- /dev/null +++ b/mpn/x86_64/haswell/avx/gmp-mparam.h @@ -0,0 +1,86 @@ +/* Generated by tuneup.c, 2017-01-30, gcc 4.9 */ + +#define MUL_KARATSUBA_THRESHOLD 21 +#define MUL_TOOM3_THRESHOLD 132 +#define MUL_TOOM4_THRESHOLD 196 +#define MUL_TOOM8H_THRESHOLD 342 + +#define SQR_BASECASE_THRESHOLD 0 /* always (native) */ +#define SQR_KARATSUBA_THRESHOLD 32 +#define SQR_TOOM3_THRESHOLD 204 +#define SQR_TOOM4_THRESHOLD 336 +#define SQR_TOOM8_THRESHOLD 438 + +#define POWM_THRESHOLD 22 + +#define DIVREM_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */ +#define DIVREM_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */ +#define MOD_1_NORM_THRESHOLD 0 /* always */ +#define MOD_1_UNNORM_THRESHOLD 0 /* always */ +#define USE_PREINV_DIVREM_1 1 /* native */ +#define USE_PREINV_MOD_1 1 +#define DIVEXACT_1_THRESHOLD 0 /* always */ +#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ +#define MOD_1_1_THRESHOLD 6 +#define MOD_1_2_THRESHOLD 8 +#define MOD_1_3_THRESHOLD 19 +#define DIVREM_HENSEL_QR_1_THRESHOLD 9 +#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 3 +#define DIVREM_EUCLID_HENSEL_THRESHOLD 28 + +#define MUL_FFT_FULL_THRESHOLD 6976 + +#define SQR_FFT_FULL_THRESHOLD 3520 + +#define MULLOW_BASECASE_THRESHOLD 5 +#define MULLOW_DC_THRESHOLD 53 +#define MULLOW_MUL_THRESHOLD 3436 + +#define MULHIGH_BASECASE_THRESHOLD 10 +#define MULHIGH_DC_THRESHOLD 45 +#define MULHIGH_MUL_THRESHOLD 3336 + +#define MULMOD_2EXPM1_THRESHOLD 18 + +#define DC_DIV_QR_THRESHOLD 47 +#define INV_DIV_QR_THRESHOLD 2350 +#define INV_DIVAPPR_Q_N_THRESHOLD 47 +#define DC_DIV_Q_THRESHOLD 120 +#define INV_DIV_Q_THRESHOLD 998 +#define DC_DIVAPPR_Q_THRESHOLD 288 +#define INV_DIVAPPR_Q_THRESHOLD 7956 +#define DC_BDIV_QR_THRESHOLD 60 +#define DC_BDIV_Q_THRESHOLD 288 + +#define ROOTREM_THRESHOLD 6 + +#define MATRIX22_STRASSEN_THRESHOLD 15 +#define HGCD_THRESHOLD 81 +#define HGCD_APPR_THRESHOLD 69 +#define HGCD_REDUCE_THRESHOLD 6852 +#define GCD_DC_THRESHOLD 807 +#define GCDEXT_DC_THRESHOLD 501 +#define JACOBI_BASE_METHOD 1 + +#define GET_STR_DC_THRESHOLD 13 +#define GET_STR_PRECOMPUTE_THRESHOLD 21 +#define SET_STR_DC_THRESHOLD 1418 +#define SET_STR_PRECOMPUTE_THRESHOLD 3106 + +#define FAC_DSC_THRESHOLD 739 +#define FAC_ODD_THRESHOLD 0 /* always */ + +/* fft_tuning -- autogenerated by tune-fft */ + +#define FFT_TAB \ + { { 4, 3 }, { 4, 3 }, { 3, 2 }, { 2, 1 }, { 1, 0 } } + +#define MULMOD_TAB \ + { 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 1, 1 } + +#define FFT_N_NUM 19 + +#define FFT_MULMOD_2EXPP1_CUTOFF 256 + + +/* Tuneup completed successfully, took 74 seconds */