From 6323fbfb28cebc4ae41c31e98f1cf4998f2081d1 Mon Sep 17 00:00:00 2001 From: gladman Date: Wed, 23 Nov 2011 22:15:43 +0000 Subject: [PATCH] copy Jasons tuning to Windows --- mpn/x86_64w/core2/gmp-mparam.h | 78 ++++++++-------- mpn/x86_64w/netburst/gmp-mparam.h | 89 +++++++++--------- mpn/x86w/p4/gmp-mparam.h | 149 ++++++++++++++++-------------- 3 files changed, 163 insertions(+), 153 deletions(-) diff --git a/mpn/x86_64w/core2/gmp-mparam.h b/mpn/x86_64w/core2/gmp-mparam.h index dba6c907..56b241b9 100644 --- a/mpn/x86_64w/core2/gmp-mparam.h +++ b/mpn/x86_64w/core2/gmp-mparam.h @@ -1,21 +1,21 @@ -/* Generated by tuneup.c, 2010-03-24, gcc 4.4 */ +/* Generated by tuneup.c, 2011-11-23, gcc 4.6 */ -#define MUL_KARATSUBA_THRESHOLD 19 -#define MUL_TOOM3_THRESHOLD 56 -#define MUL_TOOM4_THRESHOLD 154 -#define MUL_TOOM8H_THRESHOLD 224 +#define MUL_KARATSUBA_THRESHOLD 18 +#define MUL_TOOM3_THRESHOLD 65 +#define MUL_TOOM4_THRESHOLD 166 +#define MUL_TOOM8H_THRESHOLD 222 #define SQR_BASECASE_THRESHOLD 0 /* always (native) */ -#define SQR_KARATSUBA_THRESHOLD 24 -#define SQR_TOOM3_THRESHOLD 84 -#define SQR_TOOM4_THRESHOLD 238 -#define SQR_TOOM8_THRESHOLD 274 +#define SQR_KARATSUBA_THRESHOLD 35 +#define SQR_TOOM3_THRESHOLD 98 +#define SQR_TOOM4_THRESHOLD 160 +#define SQR_TOOM8_THRESHOLD 238 -#define POWM_THRESHOLD 62 +#define POWM_THRESHOLD 65 -#define GCD_ACCEL_THRESHOLD 50 -#define GCD_THRESHOLD 635 -#define GCDEXT_THRESHOLD 871 +#define HGCD_THRESHOLD 116 +#define GCD_DC_THRESHOLD 1474 +#define GCDEXT_DC_THRESHOLD 996 #define JACOBI_BASE_METHOD 1 #define DIVREM_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */ @@ -28,48 +28,49 @@ #define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ #define MOD_1_1_THRESHOLD 6 #define MOD_1_2_THRESHOLD 6 -#define MOD_1_3_THRESHOLD 13 +#define MOD_1_3_THRESHOLD 17 #define DIVREM_HENSEL_QR_1_THRESHOLD 13 -#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 16 -#define DIVREM_EUCLID_HENSEL_THRESHOLD 193 +#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 10 +#define DIVREM_EUCLID_HENSEL_THRESHOLD 9 #define ROOTREM_THRESHOLD 6 #define GET_STR_DC_THRESHOLD 11 #define GET_STR_PRECOMPUTE_THRESHOLD 17 -#define SET_STR_DC_THRESHOLD 21385 -#define SET_STR_PRECOMPUTE_THRESHOLD 50076 +#define SET_STR_DC_THRESHOLD 6847 +#define SET_STR_PRECOMPUTE_THRESHOLD 18029 -#define MUL_FFT_TABLE { 336, 800, 1856, 2816, 7168, 20480, 81920, 327680, 1310720, 5242880, 20971520, 83886080, 0 } +#define MUL_FFT_TABLE { 368, 800, 2112, 2816, 7168, 20480, 81920, 458752, 1310720, 5242880, 0 } #define MUL_FFT_MODF_THRESHOLD 400 -#define MUL_FFT_FULL_THRESHOLD 1984 +#define MUL_FFT_FULL_THRESHOLD 2240 -#define SQR_FFT_TABLE { 368, 736, 1856, 2816, 7168, 20480, 81920, 327680, 1310720, 5242880, 20971520, 0 } -#define SQR_FFT_MODF_THRESHOLD 368 +#define SQR_FFT_TABLE { 336, 736, 1856, 2816, 7168, 28672, 81920, 327680, 1310720, 5242880, 12582912, 0 } +#define SQR_FFT_MODF_THRESHOLD 264 #define SQR_FFT_FULL_THRESHOLD 1984 -#define MULLOW_BASECASE_THRESHOLD 16 -#define MULLOW_DC_THRESHOLD 16 -#define MULLOW_MUL_THRESHOLD 2937 +#define MULLOW_BASECASE_THRESHOLD 17 +#define MULLOW_DC_THRESHOLD 17 +#define MULLOW_MUL_THRESHOLD 3303 #define MULHIGH_BASECASE_THRESHOLD 18 #define MULHIGH_DC_THRESHOLD 18 -#define MULHIGH_MUL_THRESHOLD 2937 +#define MULHIGH_MUL_THRESHOLD 3303 -#define MULMOD_2EXPM1_THRESHOLD 16 +#define MULMOD_2EXPM1_THRESHOLD 12 -#define FAC_UI_THRESHOLD 16676 -#define DC_DIV_QR_THRESHOLD 40 -#define DC_DIVAPPR_Q_N_THRESHOLD 146 +#define FAC_UI_THRESHOLD 16842 +#define DC_DIV_QR_THRESHOLD 52 +#define DC_DIVAPPR_Q_N_THRESHOLD 118 #define INV_DIV_QR_THRESHOLD 2747 -#define INV_DIVAPPR_Q_N_THRESHOLD 146 -#define DC_DIV_Q_THRESHOLD 162 +#define INV_DIVAPPR_Q_N_THRESHOLD 118 +#define DC_DIV_Q_THRESHOLD 156 #define INV_DIV_Q_THRESHOLD 3762 -#define DC_DIVAPPR_Q_THRESHOLD 150 -#define INV_DIVAPPR_Q_THRESHOLD 8751 -#define DC_BDIV_QR_THRESHOLD 44 -#define DC_BDIV_Q_THRESHOLD 42 -/* Tuneup completed successfully, took 3375 seconds */ +#define DC_DIVAPPR_Q_THRESHOLD 122 +#define INV_DIVAPPR_Q_THRESHOLD 8610 +#define DC_BDIV_QR_THRESHOLD 48 +#define DC_BDIV_Q_THRESHOLD 35 +/* Tuneup completed successfully, took 390 seconds */ + #define MUL_FFT_TABLE2 {{1, 4}, {344, 5}, {360, 4}, {377, 5}, {386, 4}, {404, 5}, {423, 4}, {453, 5}, {743, 6}, {777, 5}, {813, 6}, {850, 5}, {869, 6}, {1880, 7}, {1922, 6}, {2009, 7}, {2053, 6}, {2144, 7}, {2191, 6}, {2289, 7}, {2340, 6}, {2392, 7}, {2727, 8}, {2849, 7}, {3248, 8}, {3393, 7}, {3622, 8}, {3867, 7}, {4039, 8}, {6957, 9}, {7756, 8}, {8460, 9}, {8836, 8}, {9030, 9}, {9850, 8}, {10066, 9}, {11976, 8}, {12239, 9}, {13939, 10}, {15202, 9}, {15876, 8}, {16224, 9}, {18480, 10}, {19722, 9}, {20596, 10}, {23970, 9}, {24495, 10}, {27898, 11}, {31091, 10}, {31772, 9}, {32468, 10}, {40326, 11}, {47962, 10}, {57042, 11}, {62207, 12}, {63570, 10}, {73983, 11}, {80681, 10}, {84254, 11}, {114110, 12}, {127165, 11}, {164920, 12}, {196129, 11}, {228243, 12}, {233241, 13}, {254354, 12}, {259924, 11}, {277377, 12}, {392279, 11}, {427785, 12}, {456509, 13}, {519871, 12}, {531255, 11}, {566925, 12}, {592026, 11}, {631776, 12}, {659749, 11}, {719463, 10}, {735218, 11}, {767770, 12}, {995682, 13}, {MP_SIZE_T_MAX,0}} @@ -82,6 +83,3 @@ #define MUL_FFT_FULL_TABLE2 {{16, 2}, {1022, 1}, {1045, 2}, {1068, 4}, {1092, 2}, {1116, 4}, {1141, 1}, {1219, 2}, {1274, 1}, {1734, 4}, {1772, 1}, {1811, 2}, {2021, 1}, {2066, 4}, {2112, 6}, {2256, 5}, {2357, 4}, {2409, 1}, {2462, 2}, {2516, 3}, {2572, 2}, {2629, 1}, {2746, 2}, {2932, 4}, {3063, 6}, {3200, 2}, {3271, 4}, {3417, 1}, {3492, 3}, {3648, 4}, {3728, 5}, {3810, 1}, {3894, 2}, {4068, 3}, {4158, 4}, {4250, 2}, {4440, 5}, {4740, 4}, {4844, 1}, {4951, 3}, {5171, 2}, {5285, 1}, {5401, 4}, {5520, 2}, {5765, 1}, {5892, 2}, {6022, 4}, {6154, 6}, {6289, 5}, {6427, 2}, {6568, 4}, {6859, 1}, {7010, 4}, {7482, 1}, {7986, 4}, {8161, 2}, {8340, 4}, {8710, 2}, {8901, 5}, {9296, 1}, {9922, 3}, {10140, 2}, {10590, 1}, {11059, 2}, {11302, 1}, {11803, 2}, {12062, 4}, {12327, 1}, {14040, 4}, {14985, 1}, {15993, 2}, {17824, 5}, {19022, 4}, {19439, 1}, {20300, 3}, {20745, 1}, {23628, 2}, {24146, 4}, {24675, 1}, {28104, 4}, {29992, 1}, {32007, 2}, {35670, 1}, {36452, 4}, {38067, 1}, {40624, 3}, {41514, 1}, {47280, 4}, {50456, 3}, {53845, 1}, {56230, 2}, {57462, 1}, {58721, 4}, {61321, 3}, {62664, 6}, {65440, 2}, {71365, 1}, {72928, 4}, {74525, 1}, {81272, 3}, {83052, 1}, {84871, 3}, {86730, 1}, {94582, 4}, {96654, 2}, {98771, 4}, {100934, 1}, {105404, 2}, {107713, 1}, {130905, 2}, {142755, 1}, {162570, 3}, {166130, 1}, {169768, 3}, {173486, 1}, {177285, 2}, {197567, 4}, {206315, 3}, {215450, 1}, {229917, 2}, {234952, 1}, {261830, 2}, {267564, 5}, {273423, 2}, {291783, 5}, {298173, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {395159, 4}, {412655, 1}, {430925, 2}, {440362, 1}, {523686, 2}, {535154, 3}, {571086, 5}, {583592, 4}, {596372, 1}, {650350, 2}, {664591, 3}, {694016, 2}, {724743, 5}, {740613, 6}, {756831, 2}, {790340, 4}, {825333, 1}, {861875, 3}, {880748, 6}, {919743, 5}, {939883, 1}, {MP_SIZE_T_MAX,0}} #define SQR_FFT_FULL_TABLE2 {{16, 2}, {1022, 1}, {1092, 2}, {1116, 1}, {1422, 2}, {1454, 1}, {1519, 2}, {1553, 1}, {1623, 2}, {1659, 1}, {1734, 4}, {1772, 3}, {1811, 2}, {2021, 1}, {2066, 4}, {2112, 6}, {2306, 5}, {2357, 4}, {2409, 3}, {2572, 4}, {2746, 2}, {2932, 4}, {3063, 6}, {3200, 2}, {3271, 4}, {3417, 2}, {3492, 3}, {3648, 4}, {3728, 5}, {3810, 1}, {3894, 4}, {4068, 1}, {4158, 2}, {4250, 4}, {4344, 6}, {4538, 5}, {4638, 4}, {4844, 1}, {4951, 3}, {5171, 2}, {5401, 4}, {5520, 2}, {5765, 1}, {5892, 2}, {6022, 4}, {6154, 6}, {6289, 2}, {6568, 4}, {6859, 1}, {7010, 4}, {7482, 1}, {7986, 4}, {8161, 2}, {8523, 4}, {8710, 6}, {9096, 5}, {9296, 4}, {9709, 1}, {9922, 3}, {10363, 2}, {10590, 1}, {10822, 2}, {11550, 1}, {11803, 2}, {12062, 4}, {12327, 1}, {12873, 2}, {13155, 3}, {13444, 1}, {14040, 4}, {14985, 1}, {15993, 2}, {16702, 1}, {17068, 2}, {17824, 1}, {18215, 4}, {18614, 5}, {19022, 4}, {19439, 1}, {19865, 3}, {20745, 1}, {21665, 2}, {23121, 1}, {23628, 2}, {24146, 4}, {24675, 1}, {28104, 4}, {29992, 1}, {32007, 2}, {35670, 1}, {36452, 4}, {38901, 1}, {40624, 3}, {41514, 2}, {46266, 1}, {47280, 4}, {50456, 3}, {53845, 1}, {58721, 4}, {61321, 3}, {62664, 2}, {64037, 1}, {65440, 2}, {71365, 5}, {74525, 4}, {79530, 1}, {81272, 3}, {83052, 2}, {88630, 1}, {94582, 4}, {96654, 2}, {98771, 1}, {112483, 4}, {114947, 1}, {130905, 2}, {142755, 5}, {149076, 6}, {152341, 3}, {155677, 1}, {162570, 3}, {166130, 2}, {169768, 3}, {173486, 2}, {197567, 4}, {201894, 3}, {206315, 1}, {261830, 2}, {267564, 5}, {273423, 7}, {279411, 9}, {291783, 7}, {298173, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {395159, 4}, {412655, 7}, {421691, 10}, {430925, 6}, {450005, 5}, {469929, 1}, {523686, 2}, {583592, 4}, {596372, 6}, {609431, 5}, {622776, 1}, {650350, 3}, {694016, 2}, {724743, 1}, {790340, 4}, {825333, 1}, {861875, 3}, {880748, 6}, {919743, 5}, {939883, 1}, {MP_SIZE_T_MAX,0}} - -/* Tuneup completed successfully, took 54 seconds */ - diff --git a/mpn/x86_64w/netburst/gmp-mparam.h b/mpn/x86_64w/netburst/gmp-mparam.h index e3bd6d8f..d54ad309 100644 --- a/mpn/x86_64w/netburst/gmp-mparam.h +++ b/mpn/x86_64w/netburst/gmp-mparam.h @@ -1,21 +1,21 @@ -/* Generated by tuneup.c, 2010-04-02, gcc 4.1 */ +/* Generated by tuneup.c, 2011-11-23, gcc 4.6 */ -#define MUL_KARATSUBA_THRESHOLD 18 -#define MUL_TOOM3_THRESHOLD 106 -#define MUL_TOOM4_THRESHOLD 153 -#define MUL_TOOM8H_THRESHOLD 256 +#define MUL_KARATSUBA_THRESHOLD 19 +#define MUL_TOOM3_THRESHOLD 113 +#define MUL_TOOM4_THRESHOLD 175 +#define MUL_TOOM8H_THRESHOLD 270 #define SQR_BASECASE_THRESHOLD 0 /* always (native) */ -#define SQR_KARATSUBA_THRESHOLD 28 -#define SQR_TOOM3_THRESHOLD 113 -#define SQR_TOOM4_THRESHOLD 284 -#define SQR_TOOM8_THRESHOLD 286 +#define SQR_KARATSUBA_THRESHOLD 37 +#define SQR_TOOM3_THRESHOLD 117 +#define SQR_TOOM4_THRESHOLD 300 +#define SQR_TOOM8_THRESHOLD 303 -#define POWM_THRESHOLD 50 +#define POWM_THRESHOLD 65 -#define GCD_ACCEL_THRESHOLD 58 -#define GCD_THRESHOLD 898 -#define GCDEXT_THRESHOLD 602 +#define HGCD_THRESHOLD 116 +#define GCD_DC_THRESHOLD 951 +#define GCDEXT_DC_THRESHOLD 674 #define JACOBI_BASE_METHOD 1 #define DIVREM_1_NORM_THRESHOLD MP_SIZE_T_MAX /* never */ @@ -28,48 +28,48 @@ #define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ #define MOD_1_1_THRESHOLD 7 #define MOD_1_2_THRESHOLD 8 -#define MOD_1_3_THRESHOLD 996 -#define DIVREM_HENSEL_QR_1_THRESHOLD 6 -#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 6 -#define DIVREM_EUCLID_HENSEL_THRESHOLD 74 +#define MOD_1_3_THRESHOLD 17 +#define DIVREM_HENSEL_QR_1_THRESHOLD 7 +#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 4 +#define DIVREM_EUCLID_HENSEL_THRESHOLD 24 #define ROOTREM_THRESHOLD 6 -#define GET_STR_DC_THRESHOLD 18 -#define GET_STR_PRECOMPUTE_THRESHOLD 28 -#define SET_STR_DC_THRESHOLD 16523 -#define SET_STR_PRECOMPUTE_THRESHOLD 37923 +#define GET_STR_DC_THRESHOLD 13 +#define GET_STR_PRECOMPUTE_THRESHOLD 20 +#define SET_STR_DC_THRESHOLD 4849 +#define SET_STR_PRECOMPUTE_THRESHOLD 15850 -#define MUL_FFT_TABLE { 304, 672, 1600, 2304, 7168, 20480, 81920, 327680, 1310720, 5242880, 0 } -#define MUL_FFT_MODF_THRESHOLD 304 +#define MUL_FFT_TABLE { 272, 608, 1600, 2304, 7168, 20480, 81920, 327680, 1310720, 5242880, 0 } +#define MUL_FFT_MODF_THRESHOLD 240 #define MUL_FFT_FULL_THRESHOLD 1728 -#define SQR_FFT_TABLE { 240, 608, 1344, 2304, 7168, 20480, 81920, 458752, 786432, 5242880, 12582912, 0 } -#define SQR_FFT_MODF_THRESHOLD 184 -#define SQR_FFT_FULL_THRESHOLD 1472 +#define SQR_FFT_TABLE { 272, 544, 1600, 2304, 7168, 20480, 81920, 327680, 1310720, 5242880, 0 } +#define SQR_FFT_MODF_THRESHOLD 216 +#define SQR_FFT_FULL_THRESHOLD 1728 #define MULLOW_BASECASE_THRESHOLD 4 -#define MULLOW_DC_THRESHOLD 13 -#define MULLOW_MUL_THRESHOLD 85 +#define MULLOW_DC_THRESHOLD 12 +#define MULLOW_MUL_THRESHOLD 3402 -#define MULHIGH_BASECASE_THRESHOLD 8 -#define MULHIGH_DC_THRESHOLD 23 -#define MULHIGH_MUL_THRESHOLD 44 +#define MULHIGH_BASECASE_THRESHOLD 14 +#define MULHIGH_DC_THRESHOLD 14 +#define MULHIGH_MUL_THRESHOLD 1446 #define MULMOD_2EXPM1_THRESHOLD 14 -#define FAC_UI_THRESHOLD 1472 -#define DC_DIV_QR_THRESHOLD 40 -#define DC_DIVAPPR_Q_N_THRESHOLD 142 -#define INV_DIV_QR_THRESHOLD 762 -#define INV_DIVAPPR_Q_N_THRESHOLD 142 -#define DC_DIV_Q_THRESHOLD 171 -#define INV_DIV_Q_THRESHOLD 5365 -#define DC_DIVAPPR_Q_THRESHOLD 146 -#define INV_DIVAPPR_Q_THRESHOLD 9394 -#define DC_BDIV_QR_THRESHOLD 44 -#define DC_BDIV_Q_THRESHOLD 54 -/* Tuneup completed successfully, took 2565 seconds */ +#define FAC_UI_THRESHOLD 5037 +#define DC_DIV_QR_THRESHOLD 37 +#define DC_DIVAPPR_Q_N_THRESHOLD 71 +#define INV_DIV_QR_THRESHOLD 2541 +#define INV_DIVAPPR_Q_N_THRESHOLD 71 +#define DC_DIV_Q_THRESHOLD 120 +#define INV_DIV_Q_THRESHOLD 4765 +#define DC_DIVAPPR_Q_THRESHOLD 81 +#define INV_DIVAPPR_Q_THRESHOLD 15758 +#define DC_BDIV_QR_THRESHOLD 32 +#define DC_BDIV_Q_THRESHOLD 42 +/* Tuneup completed successfully, took 768 seconds */ #define MUL_FFT_TABLE2 {{1, 4}, {210, 5}, {225, 4}, {242, 5}, {266, 4}, {272, 5}, {299, 4}, {306, 5}, {423, 6}, {433, 5}, {496, 6}, {507, 5}, {555, 6}, {971, 7}, {993, 6}, {1134, 7}, {1159, 6}, {1238, 7}, {1266, 6}, {1382, 7}, {1444, 6}, {1476, 7}, {1543, 6}, {1612, 7}, {1685, 8}, {1722, 7}, {1760, 8}, {1799, 7}, {2191, 8}, {2340, 7}, {2499, 8}, {2554, 7}, {2610, 8}, {2668, 7}, {2727, 8}, {3042, 7}, {3178, 8}, {3248, 7}, {3320, 8}, {3468, 9}, {3622, 8}, {3702, 7}, {3784, 8}, {3867, 7}, {4128, 8}, {4407, 9}, {4504, 8}, {5245, 9}, {5360, 8}, {6518, 9}, {6661, 8}, {6807, 6}, {6957, 7}, {7110, 8}, {7266, 9}, {7756, 8}, {7926, 9}, {8460, 10}, {8646, 8}, {8836, 9}, {9638, 8}, {10287, 9}, {10513, 10}, {10744, 9}, {10980, 8}, {11719, 9}, {11976, 7}, {12239, 5}, {12507, 3}, {13347, 4}, {13640, 5}, {13939, 6}, {15535, 7}, {15876, 5}, {16580, 6}, {16944, 7}, {17316, 8}, {17696, 9}, {18084, 7}, {18480, 8}, {18885, 6}, {19299, 4}, {20154, 3}, {20596, 4}, {21508, 5}, {21979, 4}, {22461, 5}, {22953, 4}, {23970, 5}, {24495, 6}, {25032, 4}, {25581, 5}, {26142, 6}, {27898, 7}, {28509, 8}, {29134, 9}, {30424, 10}, {34649, 9}, {35408, 10}, {36184, 8}, {36977, 9}, {37787, 10}, {38615, 9}, {39461, 10}, {41210, 11}, {42113, 10}, {43036, 8}, {45928, 9}, {46934, 10}, {50087, 11}, {51184, 12}, {52305, 10}, {53451, 11}, {54622, 9}, {55819, 10}, {57042, 11}, {58292, 12}, {59569, 10}, {60874, 11}, {62207, 12}, {63570, 10}, {67840, 11}, {80681, 10}, {82448, 11}, {84254, 10}, {86099, 11}, {98051, 12}, {111664, 11}, {114110, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {164920, 12}, {168532, 10}, {175995, 11}, {179849, 12}, {191926, 11}, {196129, 10}, {204813, 11}, {209298, 10}, {213882, 11}, {228243, 10}, {233241, 11}, {238349, 12}, {243569, 13}, {254354, 12}, {271433, 10}, {289658, 11}, {309107, 12}, {322793, 11}, {329862, 10}, {337086, 8}, {344468, 9}, {352011, 10}, {359720, 9}, {375647, 10}, {383873, 11}, {392279, 10}, {400869, 11}, {418618, 9}, {427785, 10}, {446726, 9}, {476722, 8}, {487161, 9}, {508731, 10}, {519871, 11}, {531255, 9}, {554776, 10}, {566925, 9}, {579340, 7}, {618238, 8}, {645611, 9}, {659749, 10}, {674196, 9}, {688959, 10}, {704046, 11}, {719463, 9}, {735218, 8}, {767770, 9}, {801763, 10}, {819320, 11}, {837261, 12}, {893477, 10}, {913042, 9}, {933036, 10}, {953467, 11}, {974346, 10}, {995682, 11}, {MP_SIZE_T_MAX,0}} @@ -82,6 +82,3 @@ #define MUL_FFT_FULL_TABLE2 {{16, 1}, {1045, 2}, {1068, 1}, {1092, 4}, {1116, 1}, {1166, 4}, {1219, 2}, {1274, 1}, {1302, 2}, {1361, 1}, {1422, 4}, {1454, 1}, {1553, 2}, {1588, 4}, {1623, 1}, {1696, 2}, {1734, 5}, {1772, 1}, {1977, 2}, {2021, 1}, {2066, 2}, {2112, 1}, {2306, 4}, {2357, 1}, {2409, 2}, {2462, 3}, {2516, 1}, {2572, 2}, {2629, 1}, {2687, 4}, {2746, 3}, {2807, 2}, {2932, 3}, {2997, 1}, {3063, 2}, {3131, 5}, {3200, 3}, {3271, 2}, {3343, 1}, {3492, 2}, {3648, 5}, {3728, 1}, {3894, 3}, {3980, 2}, {4068, 3}, {4158, 2}, {4250, 3}, {4344, 1}, {4538, 4}, {4638, 5}, {4740, 4}, {4844, 1}, {4951, 3}, {5171, 1}, {5401, 2}, {5520, 1}, {5765, 4}, {5892, 1}, {6022, 3}, {6154, 2}, {6289, 1}, {6712, 2}, {7010, 4}, {7164, 2}, {7321, 1}, {7482, 4}, {7814, 2}, {8340, 5}, {8523, 1}, {9709, 4}, {9922, 1}, {10140, 4}, {10363, 1}, {12327, 3}, {12597, 1}, {12873, 2}, {13739, 1}, {14040, 2}, {14663, 1}, {16344, 3}, {16702, 6}, {17068, 9}, {17442, 12}, {18215, 15}, {18614, 11}, {19439, 8}, {19865, 9}, {20300, 5}, {21200, 1}, {22140, 3}, {23121, 6}, {23628, 4}, {24146, 6}, {25216, 2}, {25769, 4}, {26334, 1}, {26911, 2}, {27501, 3}, {28104, 2}, {28720, 5}, {29349, 4}, {29992, 2}, {31321, 1}, {32007, 2}, {32708, 3}, {33425, 6}, {34157, 3}, {34905, 1}, {35670, 4}, {37251, 2}, {38067, 1}, {38901, 3}, {39753, 5}, {43353, 2}, {44303, 4}, {47280, 1}, {49374, 3}, {52691, 6}, {53845, 7}, {56230, 4}, {57462, 2}, {58721, 1}, {60007, 3}, {61321, 1}, {62664, 2}, {64037, 1}, {65440, 2}, {66873, 1}, {68338, 4}, {69835, 7}, {71365, 6}, {72928, 5}, {74525, 1}, {76157, 3}, {77825, 4}, {79530, 3}, {81272, 5}, {84871, 3}, {86730, 2}, {88630, 5}, {90571, 2}, {92555, 1}, {94582, 3}, {96654, 4}, {98771, 1}, {103145, 4}, {105404, 6}, {107713, 2}, {110072, 5}, {112483, 4}, {114947, 7}, {117465, 8}, {120038, 4}, {122667, 3}, {125354, 5}, {128099, 6}, {130905, 2}, {133772, 5}, {136702, 2}, {142755, 4}, {145881, 5}, {149076, 4}, {155677, 2}, {159086, 4}, {162570, 3}, {166130, 4}, {173486, 6}, {177285, 4}, {181168, 1}, {185136, 4}, {189190, 2}, {193333, 3}, {197567, 5}, {201894, 4}, {206315, 3}, {210833, 5}, {215450, 1}, {224990, 2}, {234952, 1}, {245355, 4}, {250728, 2}, {256219, 4}, {261830, 5}, {273423, 2}, {285530, 1}, {298173, 2}, {304703, 1}, {311376, 3}, {318195, 2}, {339561, 4}, {346997, 2}, {354596, 1}, {370296, 3}, {378405, 2}, {386691, 1}, {403812, 2}, {412655, 1}, {421691, 4}, {430925, 1}, {440362, 4}, {450005, 1}, {469929, 3}, {480220, 5}, {501482, 1}, {535154, 2}, {546873, 3}, {558848, 4}, {571086, 7}, {583592, 10}, {596372, 6}, {609431, 9}, {622776, 10}, {636414, 11}, {650350, 7}, {664591, 10}, {679144, 13}, {709213, 14}, {724743, 15}, {740613, 18}, {756831, 20}, {773404, 19}, {790340, 22}, {807647, 21}, {825333, 17}, {843406, 13}, {861875, 9}, {900034, 11}, {919743, 10}, {939883, 7}, {960464, 6}, {981496, 3}, {MP_SIZE_T_MAX,0}} #define SQR_FFT_FULL_TABLE2 {{16, 3}, {1022, 1}, {1045, 2}, {1068, 1}, {1092, 4}, {1141, 1}, {1219, 2}, {1246, 1}, {1302, 2}, {1391, 4}, {1454, 2}, {1486, 1}, {1588, 4}, {1623, 2}, {1659, 4}, {1696, 5}, {1734, 1}, {1811, 4}, {1851, 1}, {2066, 4}, {2112, 6}, {2306, 4}, {2409, 2}, {2516, 3}, {2572, 2}, {2746, 1}, {2869, 2}, {2932, 1}, {2997, 4}, {3063, 2}, {3271, 1}, {3569, 2}, {3728, 5}, {3810, 6}, {3894, 4}, {3980, 6}, {4068, 4}, {4250, 1}, {4344, 2}, {4440, 1}, {4638, 3}, {4740, 1}, {5060, 3}, {5171, 6}, {5401, 4}, {5641, 2}, {5765, 1}, {5892, 2}, {6154, 1}, {6289, 2}, {6427, 5}, {6568, 1}, {6712, 2}, {7010, 4}, {7321, 1}, {7482, 3}, {7646, 1}, {7814, 4}, {7986, 6}, {8161, 5}, {8523, 1}, {8710, 4}, {9096, 2}, {9296, 3}, {9500, 1}, {9922, 2}, {10590, 1}, {10822, 2}, {11550, 1}, {12873, 3}, {13155, 4}, {13739, 1}, {14040, 4}, {14348, 7}, {14663, 4}, {14985, 6}, {15314, 9}, {15650, 12}, {15993, 15}, {16344, 12}, {16702, 15}, {17068, 17}, {17442, 19}, {17824, 16}, {18215, 14}, {18614, 11}, {19022, 14}, {19439, 15}, {19865, 12}, {20300, 8}, {20745, 5}, {21665, 2}, {23121, 1}, {24146, 3}, {24675, 4}, {25216, 5}, {25769, 3}, {26334, 4}, {26911, 1}, {27501, 4}, {28720, 6}, {29349, 9}, {30649, 10}, {31321, 8}, {32708, 6}, {33425, 8}, {34905, 4}, {35670, 5}, {36452, 4}, {38067, 3}, {41514, 2}, {43353, 4}, {44303, 2}, {45274, 4}, {46266, 6}, {47280, 3}, {48316, 5}, {49374, 8}, {51561, 6}, {52691, 9}, {53845, 10}, {55025, 13}, {56230, 12}, {57462, 15}, {58721, 12}, {60007, 14}, {61321, 12}, {62664, 10}, {64037, 12}, {65440, 8}, {66873, 11}, {68338, 8}, {69835, 4}, {71365, 5}, {74525, 1}, {77825, 4}, {79530, 2}, {81272, 3}, {83052, 2}, {84871, 1}, {88630, 2}, {98771, 3}, {100934, 6}, {103145, 5}, {105404, 1}, {112483, 3}, {114947, 1}, {117465, 4}, {120038, 1}, {122667, 3}, {125354, 6}, {133772, 8}, {136702, 10}, {139696, 6}, {142755, 8}, {145881, 5}, {149076, 4}, {159086, 3}, {166130, 1}, {169768, 4}, {173486, 1}, {181168, 2}, {185136, 1}, {193333, 2}, {197567, 1}, {206315, 3}, {210833, 1}, {267564, 3}, {273423, 2}, {291783, 1}, {298173, 2}, {304703, 1}, {311376, 4}, {318195, 5}, {325163, 6}, {332284, 5}, {339561, 1}, {346997, 4}, {354596, 7}, {362361, 5}, {386691, 2}, {395159, 4}, {403812, 3}, {430925, 2}, {469929, 3}, {480220, 4}, {490736, 7}, {501482, 5}, {512464, 3}, {523686, 4}, {535154, 7}, {546873, 8}, {583592, 5}, {596372, 4}, {609431, 5}, {622776, 4}, {636414, 3}, {679144, 5}, {694016, 4}, {709213, 7}, {724743, 6}, {740613, 5}, {756831, 4}, {773404, 6}, {790340, 4}, {825333, 6}, {843406, 7}, {861875, 8}, {880748, 4}, {900034, 6}, {919743, 5}, {939883, 1}, {981496, 3}, {MP_SIZE_T_MAX,0}} - -/* Tuneup completed successfully, took 130 seconds */ - diff --git a/mpn/x86w/p4/gmp-mparam.h b/mpn/x86w/p4/gmp-mparam.h index 9911a8f2..c4b70450 100644 --- a/mpn/x86w/p4/gmp-mparam.h +++ b/mpn/x86w/p4/gmp-mparam.h @@ -1,67 +1,82 @@ -/* Intel P54 gmp-mparam.h -- Compiler/machine parameter header file. - -Copyright 1991, 1993, 1994, 1999, 2000, 2001, 2002, 2004 Free Software -Foundation, Inc. - -This file is part of the GNU MP Library. - -The GNU MP Library is free software; you can redistribute it and/or modify -it under the terms of the GNU Lesser General Public License as published by -the Free Software Foundation; either version 2.1 of the License, or (at your -option) any later version. - -The GNU MP Library is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -License for more details. - -You should have received a copy of the GNU Lesser General Public License -along with the GNU MP Library; see the file COPYING.LIB. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -MA 02110-1301, USA. */ - - -#define BITS_PER_MP_LIMB 32 -#define BYTES_PER_MP_LIMB 4 - - -/* For mpn/x86/pentium/mod_1.asm */ -#define COUNT_LEADING_ZEROS_NEED_CLZ_TAB - - -/* 166MHz P54 */ - -/* Generated by tuneup.c, 2004-02-10, gcc 2.95 */ - -#define MUL_KARATSUBA_THRESHOLD 16 -#define MUL_TOOM3_THRESHOLD 90 - -#define SQR_BASECASE_THRESHOLD 0 /* always */ -#define SQR_KARATSUBA_THRESHOLD 22 -#define SQR_TOOM3_THRESHOLD 122 - -#define DIV_SB_PREINV_THRESHOLD MP_SIZE_T_MAX /* never */ -#define DIV_DC_THRESHOLD 52 -#define POWM_THRESHOLD 77 - -#define GCD_ACCEL_THRESHOLD 3 -#define GCDEXT_THRESHOLD 13 -#define JACOBI_BASE_METHOD 2 - -#define USE_PREINV_DIVREM_1 0 -#define USE_PREINV_MOD_1 1 /* native */ -#define DIVREM_2_THRESHOLD MP_SIZE_T_MAX /* never */ -#define DIVEXACT_1_THRESHOLD 0 /* always (native) */ -#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ - -#define GET_STR_DC_THRESHOLD 23 -#define GET_STR_PRECOMPUTE_THRESHOLD 33 -#define SET_STR_THRESHOLD 2788 - -#define MUL_FFT_TABLE { 432, 928, 1664, 3584, 10240, 40960, 0 } -#define MUL_FFT_MODF_THRESHOLD 448 -#define MUL_FFT_THRESHOLD 3328 - -#define SQR_FFT_TABLE { 496, 928, 1920, 4608, 10240, 40960, 0 } -#define SQR_FFT_MODF_THRESHOLD 512 -#define SQR_FFT_THRESHOLD 3328 +/* Generated by tuneup.c, 2011-11-23, gcc 4.6 */ + +#define MUL_KARATSUBA_THRESHOLD 27 +#define MUL_TOOM3_THRESHOLD 133 +#define MUL_TOOM4_THRESHOLD 202 +#define MUL_TOOM8H_THRESHOLD 309 + +#define SQR_BASECASE_THRESHOLD 0 /* always (native) */ +#define SQR_KARATSUBA_THRESHOLD 64 +#define SQR_TOOM3_THRESHOLD 159 +#define SQR_TOOM4_THRESHOLD 336 +#define SQR_TOOM8_THRESHOLD 342 + +#define POWM_THRESHOLD 984 + +#define HGCD_THRESHOLD 73 +#define GCD_DC_THRESHOLD 1460 +#define GCDEXT_DC_THRESHOLD 1138 +#define JACOBI_BASE_METHOD 1 + +#define USE_PREINV_DIVREM_1 1 /* native */ +#define USE_PREINV_MOD_1 1 /* native */ +#define DIVREM_2_THRESHOLD 21 +#define DIVEXACT_1_THRESHOLD 0 /* always (native) */ +#define MODEXACT_1_ODD_THRESHOLD 0 /* always (native) */ +#define MOD_1_1_THRESHOLD 978 +#define MOD_1_2_THRESHOLD 978 +#define MOD_1_3_THRESHOLD 978 +#define DIVREM_HENSEL_QR_1_THRESHOLD 2 +#define RSH_DIVREM_HENSEL_QR_1_THRESHOLD 3 +#define DIVREM_EUCLID_HENSEL_THRESHOLD 21 + +#define ROOTREM_THRESHOLD 11 + +#define GET_STR_DC_THRESHOLD 17 +#define GET_STR_PRECOMPUTE_THRESHOLD 26 +#define SET_STR_DC_THRESHOLD 9397 +#define SET_STR_PRECOMPUTE_THRESHOLD 22420 + +#define MUL_FFT_TABLE { 400, 1056, 1408, 3584, 10240, 57344, 98304, 655360, 2621440, 10485760, 0 } +#define MUL_FFT_MODF_THRESHOLD 368 +#define MUL_FFT_FULL_THRESHOLD 1664 + +#define SQR_FFT_TABLE { 432, 1056, 1664, 3584, 14336, 40960, 163840, 917504, 2621440, 10485760, 0 } +#define SQR_FFT_MODF_THRESHOLD 312 +#define SQR_FFT_FULL_THRESHOLD 1920 + +#define MULLOW_BASECASE_THRESHOLD 7 +#define MULLOW_DC_THRESHOLD 63 +#define MULLOW_MUL_THRESHOLD 3539 + +#define MULHIGH_BASECASE_THRESHOLD 9 +#define MULHIGH_DC_THRESHOLD 56 +#define MULHIGH_MUL_THRESHOLD 3539 + +#define MULMOD_2EXPM1_THRESHOLD 18 + +#define FAC_UI_THRESHOLD 3500 +#define DC_DIV_QR_THRESHOLD 40 +#define DC_DIVAPPR_Q_N_THRESHOLD 59 +#define INV_DIV_QR_THRESHOLD 2801 +#define INV_DIVAPPR_Q_N_THRESHOLD 59 +#define DC_DIV_Q_THRESHOLD 118 +#define INV_DIV_Q_THRESHOLD 2350 +#define DC_DIVAPPR_Q_THRESHOLD 110 +#define INV_DIVAPPR_Q_THRESHOLD 2478 +#define DC_BDIV_QR_THRESHOLD 60 +#define DC_BDIV_Q_THRESHOLD 50 +/* Tuneup completed successfully, took 800 seconds */ + +#define MUL_FFT_TABLE2 {{1, 4}, {210, 3}, {220, 4}, {236, 3}, {242, 4}, {344, 5}, {360, 4}, {377, 5}, {423, 4}, {433, 5}, {485, 4}, {507, 5}, {909, 6}, {971, 5}, {1061, 6}, {1109, 5}, {1134, 6}, {1294, 7}, {1323, 6}, {1352, 7}, {1413, 6}, {1509, 7}, {1685, 6}, {1760, 7}, {1922, 6}, {2009, 7}, {2727, 8}, {2849, 7}, {3248, 8}, {3393, 7}, {3468, 8}, {3867, 7}, {4312, 8}, {4407, 7}, {4504, 8}, {4914, 7}, {5022, 8}, {5976, 7}, {6107, 8}, {6957, 9}, {7756, 8}, {9030, 9}, {9850, 8}, {10066, 9}, {10513, 8}, {10744, 9}, {11976, 8}, {12239, 9}, {13939, 8}, {14245, 9}, {14876, 10}, {15535, 9}, {15876, 8}, {16224, 9}, {20154, 10}, {23970, 9}, {28509, 10}, {31772, 9}, {36977, 10}, {40326, 9}, {41210, 10}, {49013, 11}, {50087, 10}, {57042, 11}, {62207, 12}, {63570, 10}, {82448, 11}, {98051, 12}, {127165, 11}, {129950, 10}, {132796, 11}, {196129, 12}, {259924, 11}, {265616, 10}, {283451, 11}, {296001, 10}, {315876, 11}, {329862, 12}, {392279, 13}, {519871, 12}, {531255, 11}, {592026, 10}, {631776, 11}, {645611, 12}, {659749, 11}, {719463, 10}, {735218, 11}, {767770, 12}, {784582, 10}, {801763, 9}, {819320, 10}, {855595, 11}, {893477, 12}, {933036, 11}, {995682, 12}, {MP_SIZE_T_MAX,0}} + +#define MUL_FFTM_TABLE2 {{1, 4}, {210, 3}, {215, 4}, {242, 5}, {248, 4}, {306, 5}, {328, 4}, {344, 5}, {360, 4}, {377, 5}, {423, 4}, {433, 5}, {680, 6}, {711, 5}, {743, 6}, {850, 5}, {869, 6}, {971, 5}, {993, 6}, {1799, 7}, {1922, 6}, {2144, 7}, {2340, 6}, {2392, 7}, {2727, 8}, {2849, 7}, {3109, 8}, {3393, 7}, {3468, 8}, {3867, 7}, {4039, 8}, {4603, 7}, {4704, 8}, {5478, 9}, {5721, 8}, {6957, 9}, {7756, 8}, {8460, 9}, {8836, 8}, {9030, 9}, {9850, 8}, {10066, 9}, {13939, 10}, {14557, 9}, {14876, 10}, {15535, 9}, {18084, 10}, {19722, 9}, {20154, 10}, {23970, 9}, {24495, 10}, {27898, 9}, {28509, 10}, {29772, 11}, {30424, 10}, {31772, 9}, {33179, 10}, {33906, 9}, {34649, 10}, {44943, 11}, {47962, 10}, {57042, 11}, {62207, 12}, {63570, 10}, {73983, 11}, {80681, 10}, {82448, 11}, {114110, 12}, {127165, 11}, {164920, 12}, {196129, 13}, {254354, 12}, {259924, 11}, {265616, 12}, {271433, 11}, {277377, 12}, {392279, 13}, {519871, 12}, {531255, 11}, {566925, 12}, {592026, 11}, {631776, 12}, {659749, 13}, {784582, 12}, {855595, 11}, {893477, 12}, {933036, 11}, {995682, 12}, {MP_SIZE_T_MAX,0}} + +#define SQR_FFT_TABLE2 {{1, 4}, {404, 5}, {993, 6}, {1612, 7}, {1648, 6}, {1799, 7}, {1922, 6}, {2009, 7}, {3468, 8}, {3622, 7}, {3702, 8}, {3867, 7}, {4312, 8}, {4407, 7}, {4504, 8}, {4914, 7}, {5022, 8}, {5976, 7}, {6107, 8}, {6957, 9}, {7756, 8}, {9030, 9}, {9850, 8}, {10066, 9}, {11976, 8}, {12507, 9}, {13939, 10}, {15535, 9}, {15876, 8}, {16224, 9}, {20154, 10}, {20596, 9}, {22461, 10}, {23970, 9}, {26142, 10}, {26715, 9}, {28509, 10}, {31772, 9}, {34649, 10}, {40326, 9}, {41210, 10}, {49013, 11}, {52305, 10}, {53451, 11}, {55819, 10}, {57042, 11}, {62207, 12}, {63570, 10}, {82448, 11}, {98051, 12}, {127165, 11}, {129950, 10}, {138676, 11}, {196129, 12}, {259924, 11}, {265616, 10}, {315876, 11}, {329862, 10}, {344468, 11}, {352011, 12}, {392279, 13}, {519871, 12}, {531255, 11}, {631776, 12}, {659749, 11}, {719463, 10}, {767770, 11}, {784582, 10}, {801763, 11}, {855595, 12}, {933036, 13}, {MP_SIZE_T_MAX,0}} + +#define SQR_FFTM_TABLE2 {{1, 4}, {352, 5}, {360, 4}, {377, 5}, {531, 6}, {543, 5}, {650, 6}, {665, 5}, {695, 6}, {711, 5}, {743, 6}, {777, 5}, {813, 6}, {831, 5}, {850, 6}, {889, 5}, {909, 6}, {1185, 5}, {1211, 6}, {1413, 7}, {1444, 6}, {2009, 7}, {2053, 6}, {2098, 7}, {3248, 8}, {3393, 7}, {3622, 8}, {3867, 7}, {4039, 8}, {4914, 7}, {5022, 8}, {6518, 9}, {6661, 8}, {6957, 9}, {7266, 8}, {7426, 9}, {7756, 8}, {8100, 9}, {8836, 8}, {9030, 9}, {9850, 8}, {10513, 9}, {11976, 8}, {12239, 9}, {13939, 10}, {15535, 9}, {18084, 10}, {19722, 9}, {20154, 10}, {21979, 9}, {22461, 10}, {23970, 9}, {26142, 10}, {27898, 9}, {28509, 10}, {29134, 11}, {31091, 10}, {31772, 9}, {32468, 10}, {44943, 11}, {47962, 10}, {57042, 11}, {62207, 12}, {63570, 10}, {69326, 11}, {80681, 10}, {82448, 11}, {100199, 12}, {102394, 11}, {114110, 12}, {127165, 11}, {164920, 12}, {196129, 13}, {254354, 12}, {259924, 11}, {277377, 12}, {392279, 13}, {519871, 12}, {531255, 11}, {631776, 12}, {659749, 11}, {719463, 10}, {735218, 11}, {767770, 12}, {784582, 10}, {801763, 11}, {819320, 12}, {933036, 13}, {953467, 14}, {MP_SIZE_T_MAX,0}} + +#define MUL_FFT_FULL_TABLE2 {{16, 4}, {1022, 1}, {1045, 2}, {1068, 5}, {1092, 6}, {1141, 5}, {1166, 4}, {1219, 3}, {1246, 2}, {1274, 3}, {1302, 4}, {1331, 1}, {1361, 2}, {1454, 1}, {1486, 4}, {1519, 2}, {1623, 1}, {1734, 3}, {1811, 4}, {1851, 1}, {1934, 2}, {2021, 1}, {2066, 2}, {2112, 5}, {2159, 4}, {2207, 2}, {2256, 5}, {2306, 4}, {2409, 3}, {2462, 4}, {2516, 3}, {2572, 2}, {2629, 1}, {2746, 2}, {2997, 4}, {3063, 3}, {3131, 6}, {3200, 5}, {3271, 4}, {3417, 1}, {3492, 4}, {3648, 1}, {3980, 4}, {4344, 2}, {4440, 3}, {4638, 5}, {4740, 4}, {4844, 1}, {4951, 4}, {5060, 3}, {5171, 2}, {5285, 1}, {5401, 2}, {5765, 1}, {5892, 2}, {6022, 4}, {6154, 1}, {7010, 4}, {7321, 1}, {7986, 4}, {8340, 1}, {8523, 4}, {8710, 2}, {8901, 3}, {9096, 5}, {9500, 4}, {9922, 3}, {10140, 2}, {10590, 1}, {10822, 2}, {11059, 1}, {11803, 2}, {12062, 4}, {12327, 1}, {14040, 4}, {14348, 1}, {15993, 2}, {17824, 1}, {18215, 4}, {19865, 1}, {20300, 3}, {20745, 1}, {23628, 2}, {24146, 4}, {24675, 1}, {32708, 2}, {35670, 5}, {36452, 6}, {37251, 4}, {38901, 3}, {41514, 1}, {42424, 3}, {43353, 2}, {47280, 4}, {48316, 2}, {49374, 4}, {50456, 6}, {51561, 9}, {53845, 5}, {55025, 1}, {62664, 2}, {64037, 1}, {65440, 2}, {71365, 5}, {74525, 4}, {81272, 3}, {83052, 1}, {84871, 3}, {86730, 2}, {94582, 1}, {96654, 2}, {98771, 4}, {100934, 1}, {128099, 4}, {130905, 7}, {133772, 10}, {136702, 12}, {139696, 8}, {145881, 7}, {149076, 6}, {152341, 4}, {155677, 3}, {159086, 4}, {162570, 3}, {173486, 2}, {197567, 4}, {201894, 1}, {261830, 2}, {267564, 5}, {273423, 8}, {279411, 9}, {291783, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {378405, 1}, {386691, 2}, {395159, 4}, {412655, 1}, {523686, 2}, {571086, 5}, {583592, 2}, {596372, 3}, {609431, 5}, {622776, 4}, {636414, 3}, {650350, 1}, {664591, 3}, {709213, 2}, {740613, 1}, {756831, 2}, {790340, 4}, {825333, 6}, {843406, 3}, {880748, 1}, {919743, 2}, {939883, 1}, {981496, 3}, {MP_SIZE_T_MAX,0}} + +#define SQR_FFT_FULL_TABLE2 {{16, 2}, {1022, 3}, {1045, 1}, {1141, 4}, {1219, 2}, {1246, 3}, {1302, 4}, {1331, 1}, {1391, 2}, {1454, 1}, {1486, 4}, {1553, 6}, {1588, 2}, {1659, 1}, {1696, 2}, {1811, 4}, {1851, 1}, {1934, 2}, {2021, 3}, {2066, 2}, {2159, 1}, {2207, 2}, {2256, 5}, {2306, 2}, {2357, 4}, {2409, 1}, {2462, 2}, {2516, 3}, {2572, 2}, {2629, 1}, {2746, 3}, {2807, 2}, {2932, 1}, {2997, 4}, {3063, 1}, {3131, 2}, {3200, 1}, {3343, 4}, {3417, 2}, {3648, 4}, {3728, 1}, {3980, 2}, {4344, 1}, {4440, 3}, {4538, 5}, {4638, 1}, {4951, 4}, {5060, 3}, {5171, 2}, {5285, 1}, {5401, 4}, {5520, 2}, {5765, 1}, {5892, 2}, {6022, 4}, {6154, 1}, {6427, 2}, {6568, 3}, {6712, 1}, {7010, 4}, {7482, 1}, {7986, 2}, {8901, 1}, {9096, 4}, {9296, 5}, {9500, 4}, {9709, 1}, {10140, 3}, {10363, 2}, {10590, 1}, {11803, 2}, {12062, 4}, {12327, 5}, {12597, 1}, {14348, 2}, {14663, 1}, {15993, 2}, {16344, 1}, {17068, 2}, {17824, 1}, {18215, 4}, {19865, 1}, {20300, 3}, {20745, 1}, {21665, 2}, {23121, 1}, {23628, 2}, {24146, 4}, {25216, 3}, {26911, 1}, {32708, 2}, {35670, 5}, {37251, 4}, {38067, 5}, {38901, 1}, {40624, 3}, {41514, 2}, {42424, 3}, {43353, 2}, {46266, 1}, {47280, 4}, {48316, 2}, {49374, 1}, {51561, 4}, {52691, 6}, {53845, 5}, {55025, 1}, {62664, 2}, {64037, 1}, {65440, 2}, {71365, 5}, {74525, 4}, {79530, 3}, {83052, 2}, {84871, 3}, {86730, 2}, {94582, 1}, {96654, 2}, {98771, 4}, {100934, 1}, {130905, 2}, {133772, 5}, {136702, 8}, {139696, 9}, {142755, 8}, {145881, 7}, {149076, 6}, {152341, 4}, {155677, 3}, {159086, 4}, {162570, 3}, {173486, 2}, {197567, 4}, {206315, 1}, {261830, 2}, {267564, 5}, {273423, 8}, {285530, 9}, {291783, 7}, {298173, 6}, {304703, 4}, {325163, 3}, {346997, 2}, {395159, 4}, {412655, 6}, {421691, 3}, {430925, 1}, {523686, 2}, {535154, 5}, {546873, 4}, {558848, 2}, {571086, 1}, {583592, 2}, {596372, 3}, {609431, 4}, {650350, 1}, {664591, 2}, {679144, 3}, {694016, 1}, {709213, 2}, {790340, 1}, {919743, 4}, {960464, 1}, {MP_SIZE_T_MAX,0}} +