github.com/aergoio/aergo@v1.3.1/libtool/src/gmp-6.1.2/mpn/x86_64/k8/gmp-mparam.h (about) 1 /* AMD K8 gmp-mparam.h -- Compiler/machine parameter header file. 2 3 Copyright 1991, 1993, 1994, 2000-2012, 2014 Free Software Foundation, Inc. 4 5 This file is part of the GNU MP Library. 6 7 The GNU MP Library is free software; you can redistribute it and/or modify 8 it under the terms of either: 9 10 * the GNU Lesser General Public License as published by the Free 11 Software Foundation; either version 3 of the License, or (at your 12 option) any later version. 13 14 or 15 16 * the GNU General Public License as published by the Free Software 17 Foundation; either version 2 of the License, or (at your option) any 18 later version. 19 20 or both in parallel, as here. 21 22 The GNU MP Library is distributed in the hope that it will be useful, but 23 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 24 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 25 for more details. 26 27 You should have received copies of the GNU General Public License and the 28 GNU Lesser General Public License along with the GNU MP Library. If not, 29 see https://www.gnu.org/licenses/. */ 30 31 #define GMP_LIMB_BITS 64 32 #define GMP_LIMB_BYTES 8 33 34 // #undef mpn_sublsh_n 35 // #define mpn_sublsh_n(rp,up,vp,n,c) \ 36 // (((rp) == (up)) ? mpn_submul_1 (rp, vp, n, CNST_LIMB(1) << (c)) \ 37 // : MPN(mpn_sublsh_n)(rp,up,vp,n,c)) 38 39 /* 2500 MHz K8 Brisbane */ 40 /* FFT tuning limit = 25000000 */ 41 /* Generated by tuneup.c, 2014-03-12, gcc 4.5 */ 42 43 #define MOD_1_NORM_THRESHOLD 0 /* always */ 44 #define MOD_1_UNNORM_THRESHOLD 0 /* always */ 45 #define MOD_1N_TO_MOD_1_1_THRESHOLD 4 46 #define MOD_1U_TO_MOD_1_1_THRESHOLD 3 47 #define MOD_1_1_TO_MOD_1_2_THRESHOLD 13 48 #define MOD_1_2_TO_MOD_1_4_THRESHOLD 35 49 #define PREINV_MOD_1_TO_MOD_1_THRESHOLD 9 50 #define USE_PREINV_DIVREM_1 1 /* native */ 51 #define DIV_QR_1_NORM_THRESHOLD 1 52 #define DIV_QR_1_UNNORM_THRESHOLD MP_SIZE_T_MAX /* never */ 53 #define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */ 54 #define DIVEXACT_1_THRESHOLD 0 /* always (native) */ 55 #define BMOD_1_TO_MOD_1_THRESHOLD 16 56 57 #define MUL_TOOM22_THRESHOLD 28 58 #define MUL_TOOM33_THRESHOLD 81 59 #define MUL_TOOM44_THRESHOLD 242 60 #define MUL_TOOM6H_THRESHOLD 345 61 #define MUL_TOOM8H_THRESHOLD 482 62 63 #define MUL_TOOM32_TO_TOOM43_THRESHOLD 97 64 #define MUL_TOOM32_TO_TOOM53_THRESHOLD 153 65 #define MUL_TOOM42_TO_TOOM53_THRESHOLD 161 66 #define MUL_TOOM42_TO_TOOM63_THRESHOLD 175 67 #define MUL_TOOM43_TO_TOOM54_THRESHOLD 166 68 69 #define SQR_BASECASE_THRESHOLD 0 /* always (native) */ 70 #define SQR_TOOM2_THRESHOLD 34 71 #define SQR_TOOM3_THRESHOLD 129 72 #define SQR_TOOM4_THRESHOLD 527 73 #define SQR_TOOM6_THRESHOLD 562 74 #define SQR_TOOM8_THRESHOLD 0 /* always */ 75 76 #define MULMID_TOOM42_THRESHOLD 36 77 78 #define MULMOD_BNM1_THRESHOLD 18 79 #define SQRMOD_BNM1_THRESHOLD 22 80 81 #define MUL_FFT_MODF_THRESHOLD 654 /* k = 5 */ 82 #define MUL_FFT_TABLE3 \ 83 { { 654, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \ 84 { 12, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \ 85 { 15, 5}, { 31, 6}, { 27, 7}, { 15, 6}, \ 86 { 31, 7}, { 19, 6}, { 39, 7}, { 29, 8}, \ 87 { 15, 7}, { 33, 8}, { 17, 7}, { 37, 8}, \ 88 { 19, 7}, { 39, 8}, { 23, 7}, { 47, 8}, \ 89 { 25, 7}, { 51, 8}, { 43, 9}, { 23, 8}, \ 90 { 51, 9}, { 27, 8}, { 57, 9}, { 31, 8}, \ 91 { 65, 9}, { 35, 8}, { 71, 9}, { 39, 8}, \ 92 { 79, 9}, { 43,10}, { 23, 9}, { 59, 8}, \ 93 { 119,10}, { 31, 8}, { 125, 9}, { 71,10}, \ 94 { 39, 9}, { 87,10}, { 47, 9}, { 99,10}, \ 95 { 55, 9}, { 123,11}, { 31,10}, { 63, 9}, \ 96 { 131,10}, { 71, 9}, { 143,10}, { 79, 9}, \ 97 { 159,10}, { 87,11}, { 47,10}, { 119,11}, \ 98 { 63,10}, { 143,11}, { 79,10}, { 175,11}, \ 99 { 95,10}, { 199,11}, { 111,10}, { 223,12}, \ 100 { 63,11}, { 143,10}, { 287, 9}, { 575,10}, \ 101 { 295,11}, { 159,10}, { 319,11}, { 175,12}, \ 102 { 95,11}, { 191,10}, { 383,11}, { 207,10}, \ 103 { 415, 9}, { 831,11}, { 223,10}, { 447,13}, \ 104 { 63,12}, { 127,11}, { 255,10}, { 511,11}, \ 105 { 271,10}, { 543, 9}, { 1087,11}, { 287,10}, \ 106 { 575, 9}, { 1151,12}, { 159,11}, { 319,10}, \ 107 { 639,11}, { 335,10}, { 671,11}, { 351,10}, \ 108 { 703,11}, { 367,12}, { 191,11}, { 383,10}, \ 109 { 767,11}, { 399,10}, { 799,11}, { 415,10}, \ 110 { 831,12}, { 223,11}, { 447,10}, { 895,11}, \ 111 { 479,13}, { 127,12}, { 255,11}, { 511,10}, \ 112 { 1023,11}, { 543,10}, { 1087,12}, { 287,11}, \ 113 { 575,10}, { 1151,11}, { 607,12}, { 319,11}, \ 114 { 639,10}, { 1279,11}, { 671,12}, { 351,11}, \ 115 { 703,10}, { 1407,13}, { 191,12}, { 383,11}, \ 116 { 767,12}, { 415,11}, { 831,12}, { 447,11}, \ 117 { 895,12}, { 479,11}, { 959,14}, { 127,13}, \ 118 { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \ 119 { 1087,12}, { 575,11}, { 1151,12}, { 607,11}, \ 120 { 1215,13}, { 319,12}, { 671,11}, { 1343,12}, \ 121 { 735,13}, { 383,12}, { 799,11}, { 1599,12}, \ 122 { 863,13}, { 447,12}, { 895,11}, { 1791,12}, \ 123 { 991,13}, { 511,12}, { 1087,13}, { 575,12}, \ 124 { 1215,13}, { 639,12}, { 1343,13}, { 703,12}, \ 125 { 1471,14}, { 383,13}, { 767,12}, { 1599,13}, \ 126 { 831,12}, { 1663,13}, { 895,12}, { 1791,13}, \ 127 { 959,12}, { 1919,14}, { 511,13}, { 1087,12}, \ 128 { 2175,13}, { 1215,14}, { 639,13}, { 1471,14}, \ 129 { 767,13}, { 1663,14}, { 895,13}, { 1919,15}, \ 130 { 511,14}, { 1023,13}, { 2175,14}, { 1151,13}, \ 131 { 2367,14}, { 1279,13}, { 2559,14}, { 1407,15}, \ 132 { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \ 133 { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \ 134 {8388608,24} } 135 #define MUL_FFT_TABLE3_SIZE 205 136 #define MUL_FFT_THRESHOLD 11520 137 138 #define SQR_FFT_MODF_THRESHOLD 570 /* k = 5 */ 139 #define SQR_FFT_TABLE3 \ 140 { { 570, 5}, { 21, 6}, { 11, 5}, { 23, 6}, \ 141 { 12, 5}, { 25, 6}, { 13, 5}, { 27, 6}, \ 142 { 14, 5}, { 29, 6}, { 16, 5}, { 33, 6}, \ 143 { 29, 7}, { 15, 6}, { 31, 7}, { 16, 6}, \ 144 { 33, 7}, { 17, 6}, { 35, 7}, { 33, 8}, \ 145 { 17, 7}, { 37, 8}, { 19, 7}, { 40, 8}, \ 146 { 21, 7}, { 43, 8}, { 23, 7}, { 47, 8}, \ 147 { 25, 7}, { 51, 8}, { 29, 9}, { 15, 8}, \ 148 { 37, 9}, { 19, 8}, { 43, 9}, { 23, 8}, \ 149 { 51, 9}, { 27, 8}, { 55, 9}, { 31, 8}, \ 150 { 63, 9}, { 35, 8}, { 71, 9}, { 39, 8}, \ 151 { 79, 9}, { 43,10}, { 23, 9}, { 55,10}, \ 152 { 31, 9}, { 71,10}, { 39, 9}, { 83,10}, \ 153 { 47, 9}, { 99,10}, { 55, 9}, { 123,11}, \ 154 { 31,10}, { 63, 9}, { 127,10}, { 71, 9}, \ 155 { 143,10}, { 87,11}, { 47,10}, { 111,12}, \ 156 { 31,11}, { 63,10}, { 143,11}, { 79,10}, \ 157 { 167,11}, { 95,10}, { 199,11}, { 111,12}, \ 158 { 63,11}, { 127, 9}, { 511,11}, { 143,10}, \ 159 { 287, 9}, { 575, 8}, { 1151,11}, { 159,10}, \ 160 { 319, 9}, { 639,11}, { 175,12}, { 95,11}, \ 161 { 191,10}, { 383, 9}, { 767,11}, { 207,10}, \ 162 { 415, 9}, { 831,10}, { 431,11}, { 223,10}, \ 163 { 447,13}, { 63,12}, { 127,10}, { 511, 9}, \ 164 { 1023,10}, { 543, 9}, { 1087,11}, { 287,10}, \ 165 { 575, 9}, { 1151,12}, { 159,11}, { 319,10}, \ 166 { 639, 9}, { 1279,11}, { 335,10}, { 671,11}, \ 167 { 351,10}, { 703,11}, { 367,12}, { 191,11}, \ 168 { 383,10}, { 767,11}, { 399,10}, { 799,11}, \ 169 { 415,10}, { 831,11}, { 431,12}, { 223,11}, \ 170 { 447,10}, { 895,11}, { 463,13}, { 127,11}, \ 171 { 511,10}, { 1023,11}, { 543,10}, { 1087,12}, \ 172 { 287,11}, { 575,10}, { 1151,11}, { 607,10}, \ 173 { 1215,12}, { 319,11}, { 639,10}, { 1279,11}, \ 174 { 671,12}, { 351,11}, { 703,10}, { 1407,13}, \ 175 { 191,12}, { 383,11}, { 767,10}, { 1535,11}, \ 176 { 799,12}, { 415,11}, { 831,12}, { 447,11}, \ 177 { 895,12}, { 479,14}, { 127,12}, { 511,11}, \ 178 { 1023,12}, { 543,11}, { 1087,12}, { 575,11}, \ 179 { 1151,12}, { 607,11}, { 1215,13}, { 319,12}, \ 180 { 639,11}, { 1279,12}, { 671,11}, { 1343,12}, \ 181 { 703,11}, { 1407,12}, { 735,13}, { 383,12}, \ 182 { 799,11}, { 1599,12}, { 863,13}, { 447,12}, \ 183 { 959,13}, { 511,12}, { 1087,13}, { 575,12}, \ 184 { 1215,13}, { 639,12}, { 1343,13}, { 703,12}, \ 185 { 1471,14}, { 383,13}, { 767,12}, { 1599,13}, \ 186 { 831,12}, { 1663,13}, { 895,12}, { 1791,13}, \ 187 { 959,14}, { 511,13}, { 1023,12}, { 2047,13}, \ 188 { 1215,14}, { 639,13}, { 1471,14}, { 767,13}, \ 189 { 1663,14}, { 895,13}, { 1855,15}, { 511,14}, \ 190 { 1023,13}, { 2111,14}, { 1151,13}, { 2303,14}, \ 191 { 1407,15}, { 32768,16}, { 65536,17}, { 131072,18}, \ 192 { 262144,19}, { 524288,20}, {1048576,21}, {2097152,22}, \ 193 {4194304,23}, {8388608,24} } 194 #define SQR_FFT_TABLE3_SIZE 214 195 #define SQR_FFT_THRESHOLD 5760 196 197 #define MULLO_BASECASE_THRESHOLD 0 /* always */ 198 #define MULLO_DC_THRESHOLD 61 199 #define MULLO_MUL_N_THRESHOLD 22906 200 201 #define DC_DIV_QR_THRESHOLD 51 202 #define DC_DIVAPPR_Q_THRESHOLD 264 203 #define DC_BDIV_QR_THRESHOLD 38 204 #define DC_BDIV_Q_THRESHOLD 170 205 206 #define INV_MULMOD_BNM1_THRESHOLD 67 207 #define INV_NEWTON_THRESHOLD 246 208 #define INV_APPR_THRESHOLD 244 209 210 #define BINV_NEWTON_THRESHOLD 252 211 #define REDC_1_TO_REDC_2_THRESHOLD 35 212 #define REDC_2_TO_REDC_N_THRESHOLD 84 213 214 #define MU_DIV_QR_THRESHOLD 2089 215 #define MU_DIVAPPR_Q_THRESHOLD 1752 216 #define MUPI_DIV_QR_THRESHOLD 93 217 #define MU_BDIV_QR_THRESHOLD 1718 218 #define MU_BDIV_Q_THRESHOLD 1895 219 220 #define POWM_SEC_TABLE 2,16,194,904,2177 221 222 #define MATRIX22_STRASSEN_THRESHOLD 21 223 #define HGCD_THRESHOLD 148 224 #define HGCD_APPR_THRESHOLD 185 225 #define HGCD_REDUCE_THRESHOLD 4120 226 #define GCD_DC_THRESHOLD 562 227 #define GCDEXT_DC_THRESHOLD 501 228 #define JACOBI_BASE_METHOD 4 229 230 #define GET_STR_DC_THRESHOLD 17 231 #define GET_STR_PRECOMPUTE_THRESHOLD 29 232 #define SET_STR_DC_THRESHOLD 268 233 #define SET_STR_PRECOMPUTE_THRESHOLD 1787 234 235 #define FAC_DSC_THRESHOLD 1240 236 #define FAC_ODD_THRESHOLD 0 /* always */