Initial import of binutils 2.22 on the new vendor branch
[dragonfly.git] / contrib / mpfr / src / amd / k8 / mparam.h
1 /* Various Thresholds of MPFR, not exported.  -*- mode: C -*-
2
3 Copyright 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
4
5 This file is part of the GNU MPFR Library.
6
7 The GNU MPFR Library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as published by
9 the Free Software Foundation; either version 3 of the License, or (at your
10 option) any later version.
11
12 The GNU MPFR Library is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
15 License for more details.
16
17 You should have received a copy of the GNU Lesser General Public License
18 along with the GNU MPFR Library; see the file COPYING.LESSER.  If not, see
19 http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc.,
20 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */
21
22 /* Generated by MPFR's tuneup.c, 2011-07-31, gcc 4.3.2 */
23 /* gcc11.fsffrance.org (Dual-Core AMD Opteron(tm) Processor 2212)
24    with gmp 5.0.2.
25    Keith Briggs sent similar parameters obtained on a AMD Athlon
26    (__tune_k8__, __x86_64, __amd64, __k8) */
27
28
29 #define MPFR_MULHIGH_TAB  \
30  -1,0,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,9,11,11, \
31  12,12,11,15,14,14,15,16,18,18,19,20,18,19,19,20, \
32  22,22,23,24,26,30,28,28,32,30,30,32,32,30,32,32, \
33  32,30,30,32,32,38,32,32,36,40,40,40,36,38,40,38, \
34  40,44,40,44,44,44,44,48,48,46,48,48,56,56,56,56, \
35  56,56,56,60,64,60,60,64,64,64,64,64,64,64,64,64, \
36  72,72,72,72,72,72,72,72,72,72,72,72,80,80,80,80, \
37  80,80,80,80,80,80,80,80,80,80,80,80,93,80,93,93, \
38  93,76,80,93,80,93,93,90,93,93,93,93,93,93,93,93, \
39  93,93,111,105,93,117,105,105,117,117,111,117,117,105,117,117, \
40  117,105,117,117,117,117,117,117,117,117,117,117,117,117,117,117, \
41  117,117,117,117,116,117,116,117,117,117,117,117,117,117,117,117, \
42  117,117,140,117,140,140,140,140,140,148,148,147,140,156,156,156, \
43  148,148,156,148,156,156,156,156,156,155,156,155,156,155,156,156, \
44  156,156,156,156,156,156,156,156,172,172,172,156,172,172,172,172, \
45  172,172,172,172,180,180,180,180,180,180,180,188,188,188,188,188, \
46  180,188,188,188,188,187,188,188,188,188,188,188,188,188,188,188, \
47  188,188,188,188,188,188,188,188,188,188,188,188,188,220,220,204, \
48  220,220,220,219,220,220,220,220,220,219,220,219,220,219,220,220, \
49  220,236,236,220,236,219,233,236,233,252,236,252,236,252,252,236, \
50  235,236,236,252,252,236,236,252,252,236,252,252,236,251,250,251, \
51  252,252,251,252,252,252,252,252,252,252,252,252,252,252,252,252, \
52  252,252,284,252,284,284,284,284,284,252,284,284,284,284,284,284, \
53  283,284,284,284,284,284,284,284,284,284,284,283,284,284,284,284, \
54  284,284,283,284,284,284,284,284,284,284,284,284,284,300,284,300, \
55  300,316,300,300,300,316,300,300,316,316,316,316,316,316,316,316, \
56  316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \
57  316,315,316,316,315,316,316,316,315,316,316,316,316,316,316,316, \
58  316,316,316,368,316,316,367,368,368,368,368,368,368,368,368,368, \
59  368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368, \
60  368,368,368,368,368,368,367,368,368,368,368,367,368,367,367,368, \
61  368,367,367,368,367,368,368,367,368,368,368,367,368,368,368,368, \
62  367,368,416,415,416,416,416,416,416,416,415,416,416,416,416,416, \
63  416,416,416,416,416,416,415,416,415,416,415,416,416,416,416,416, \
64  416,415,416,416,415,416,416,415,416,416,440,416,416,416,440,416, \
65  415,416,415,416,464,464,464,464,464,464,463,464,464,464,463,464, \
66  464,464,464,464,464,463,464,464,474,474,464,464,473,474,474,504, \
67  474,474,504,504,504,504,504,504,504,504,504,504,504,504,504,504, \
68  504,504,504,504,504,504,504,504,504,503,504,504,504,504,504,504, \
69  503,504,504,504,504,504,503,504,504,504,504,504,503,504,504,503, \
70  504,504,504,504,504,504,504,504,503,504,504,504,504,504,503,504, \
71  504,504,504,504,568,568,568,504,568,568,568,568,568,568,568,568, \
72  568,567,568,568,568,567,568,568,568,568,568,568,568,568,568,568, \
73  568,568,568,568,568,568,568,568,567,567,568,566,568,568,568,567, \
74  568,568,568,568,568,568,568,568,568,568,567,568,568,567,568,568, \
75  568,568,568,568,567,568,568,566,567,568,568,568,568,568,568,568, \
76  568,567,568,568,567,568,567,568,567,568,567,568,567,568,632,568, \
77  600,632,632,600,631,632,632,632,632,631,600,600,632,632,600,631, \
78  632,632,632,632,632,632,631,632,632,632,631,632,631,632,632,632, \
79  632,632,631,632,632,631,632,632,632,631,632,632,632,632,631,632, \
80  632,632,632,632,630,632,632,632,632,632,631,632,631,632,631,632, \
81  632,632,632,632,632,632,632,632,631,632,632,632,632,632,632,631, \
82  632,632,632,631,632,632,632,736,632,631,632,736,632,632,632,632, \
83  736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
84  736,734,736,736,735,736,736,735,736,736,736,736,736,736,736,736, \
85  736,736,736,736,736,736,736,736,736,736,736,736,736,736,736,736, \
86  736,736,736,736,736,736,735,736,736,736,736,736,736,736,735,736, \
87  736,736,735,736,735,736,736,736,735,736,736,736,736,736,736,736, \
88  736,736,736,735,736,736,736,735,736,736,736,736,736,735,736,736, \
89  736,736,736,736,736,736,736,736,736,735,736,735,736,832,736,832, \
90  832,832,832,832,831,832,832,831,832,832,832,832,832,832,831,832, \
91  831,832,831,832,832,831,832,832,832,832,832,832,831,832,832,832, \
92  831,832,832,832,832,832,831,832,832,832,832,832,831,832,831,832, \
93  832,832,831,832,831,832,831,832,832,832,832,832,832,832,831,832 \
94   
95 #define MPFR_SQRHIGH_TAB  \
96  -1,0,0,0,0,-1,-1,-1,-1,-1,7,7,8,9,9,11, \
97  11,11,11,11,13,13,15,15,17,17,18,17,17,17,18,20, \
98  20,21,23,23,20,21,23,23,24,25,23,23,24,25,26,25, \
99  28,27,28,29,28,31,34,31,34,34,34,34,34,34,34,34, \
100  40,34,40,36,40,42,40,42,40,40,42,42,48,48,46,46, \
101  42,46,48,48,46,50,46,52,54,54,48,56,54,50,54,52, \
102  50,54,54,52,54,54,58,58,62,64,58,58,58,64,62,64, \
103  58,64,66,72,68,68,68,68,68,62,66,72,72,72,68,68, \
104  72,72,68,72,72,72,72,72,80,84,80,80,80,84,80,80, \
105  80,84,84,84,84,84,92,80,80,84,92,84,92,92,92,96, \
106  100,92,100,92,96,92,92,96,100,100,96,96,96,100,100,96, \
107  96,96,92,92,96,96,108,100,96,100,100,112,112,112,112,112, \
108  112,112,108,112,100,104,112,116,104,116,116,108,112,112,112,116, \
109  112,112,112,112,112,141,135,141,116,135,135,135,141,141,141,141, \
110  141,141,141,141,141,141,135,135,141,141,147,141,141,141,140,141, \
111  141,141,147,147,141,147,147,147,147,147,147,147,147,147,147,159, \
112  153,147,147,159,159,159,159,159,159,159,159,159,165,171,171,171, \
113  165,170,171,171,165,171,171,171,165,171,171,171,183,171,171,171, \
114  183,183,171,183,171,183,183,183,183,183,183,183,189,189,183,195, \
115  171,171,188,171,171,195,171,171,171,195,195,182,195,177,182,183, \
116  183,181,182,183,183,189,183,194,195,195,194,195,195,195,195,195, \
117  195,195,213,195,195,195,195,195,189,195,195,195,195,195,195,195, \
118  212,195,213,195,195,195,213,195,195,195,195,195,195,213,213,201, \
119  195,195,195,213,213,213,213,213,212,213,213,213,213,213,213,213, \
120  237,212,213,213,213,213,213,225,213,213,213,249,213,249,237,237, \
121  237,237,237,249,237,237,237,237,249,237,249,237,237,237,249,249, \
122  249,236,237,249,249,249,249,249,249,249,249,249,249,249,249,249, \
123  249,273,273,273,273,273,273,272,273,273,273,273,273,273,273,273, \
124  273,273,273,273,273,273,273,285,273,284,285,285,285,285,297,284, \
125  285,297,285,297,297,297,297,297,297,297,297,296,297,296,297,296, \
126  297,297,297,297,297,297,297,273,297,273,309,273,273,273,273,320, \
127  321,321,321,285,285,285,285,285,284,285,297,285,297,297,297,297, \
128  297,297,333,297,297,297,296,297,309,297,297,297,297,285,309,348, \
129  297,297,348,348,285,321,297,321,321,297,320,321,321,297,297,321, \
130  297,321,333,366,333,333,309,333,333,333,332,333,297,321,321,321, \
131  321,348,321,345,348,348,348,366,348,347,348,365,366,365,333,366, \
132  402,366,333,366,366,366,366,402,366,365,366,366,366,366,366,366, \
133  366,348,420,420,348,420,419,420,419,420,420,420,366,366,420,366, \
134  366,365,366,402,366,366,366,366,402,402,402,401,402,402,402,401, \
135  420,401,402,402,420,420,420,420,402,420,420,420,420,419,420,419, \
136  420,419,420,420,402,401,420,402,402,420,402,420,402,401,420,420, \
137  420,420,420,420,420,402,420,420,402,420,420,420,420,420,420,420, \
138  420,420,420,420,420,420,420,420,420,419,420,420,438,420,420,438, \
139  420,420,420,420,420,420,438,420,437,438,438,420,438,438,420,420, \
140  438,420,420,438,438,420,420,420,438,420,420,420,420,419,420,420, \
141  420,420,420,420,474,419,420,420,420,438,419,456,438,474,438,437, \
142  438,438,438,438,438,420,438,420,438,438,438,420,420,419,420,420, \
143  438,420,438,419,420,420,420,420,420,419,420,474,420,420,438,420, \
144  438,473,474,474,474,473,438,474,474,438,438,437,438,438,438,438, \
145  438,438,474,437,437,474,560,456,473,474,535,536,474,560,536,536, \
146  560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \
147  560,560,559,560,560,560,560,560,560,560,560,560,560,560,560,560, \
148  559,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \
149  560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560, \
150  559,560,560,560,560,560,560,560,559,560,559,560,560,560,560,559, \
151  559,560,559,560,560,560,560,560,560,559,560,560,559,560,559,560, \
152  560,560,559,560,560,560,560,559,560,560,560,560,560,560,560,560, \
153  560,560,560,560,560,560,560,560,560,560,559,584,560,560,560,560, \
154  559,560,560,559,560,560,560,560,560,560,559,559,560,560,560,560, \
155  560,560,559,560,560,560,560,560,560,583,560,560,584,560,584,584, \
156  584,560,583,583,584,584,582,584,584,584,583,584,584,584,584,584, \
157  727,584,728,632,728,560,727,728,728,560,584,560,560,727,728,728, \
158  727,728,728,728,608,728,728,724,728,728,760,727,728,727,728,728, \
159  728,759,728,696,728,728,728,728,728,727,759,760,727,760,760,727 \
160   
161 #define MPFR_DIVHIGH_TAB  \
162  0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, \
163  14,15,18,19,18,14,22,18,18,18,18,20,18,18,20,22, \
164  22,22,23,24,26,26,26,28,24,30,28,28,28,30,30,32, \
165  32,34,32,34,32,34,34,31,32,37,32,37,32,33,34,35, \
166  39,37,37,39,39,37,39,39,39,39,39,39,43,44,46,46, \
167  47,45,46,48,52,48,50,50,48,46,50,50,52,56,54,50, \
168  60,60,60,56,56,64,61,60,56,64,60,64,64,64,64,60, \
169  64,64,64,63,64,64,64,64,64,64,70,64,64,68,78,66, \
170  74,69,70,74,70,69,74,78,78,74,74,74,74,78,78,79, \
171  78,78,78,78,78,78,78,78,78,78,88,88,88,88,88,88, \
172  92,92,88,91,92,88,95,96,96,96,96,92,92,88,92,112, \
173  112,112,112,108,112,112,112,112,120,112,112,112,120,112,120,112, \
174  112,120,120,120,104,112,112,128,112,112,112,120,112,112,120,120, \
175  128,120,120,120,112,120,128,128,128,120,128,128,128,128,128,128, \
176  128,128,120,128,128,128,128,128,120,128,128,128,128,128,128,128, \
177  128,128,128,128,128,128,126,128,128,128,127,128,128,128,144,148, \
178  136,136,144,144,140,141,140,148,148,151,144,148,148,160,156,148, \
179  160,160,160,160,156,156,156,148,148,156,148,160,160,160,148,156, \
180  148,148,148,156,156,156,156,160,156,156,158,156,156,157,160,156, \
181  156,160,160,158,156,156,158,158,159,160,159,160,160,160,184,183, \
182  184,184,180,184,184,176,184,184,184,184,186,184,184,184,184,184, \
183  184,184,186,186,192,184,184,186,184,184,186,183,184,185,186,184, \
184  184,184,186,185,216,184,192,186,208,192,192,184,208,216,224,209, \
185  208,216,224,222,224,216,208,224,224,224,208,224,210,224,216,234, \
186  208,216,216,208,224,216,216,224,224,222,224,224,224,216,224,224, \
187  224,221,224,216,232,224,224,224,224,224,224,224,208,224,222,224, \
188  224,224,216,224,232,224,224,216,224,256,224,256,224,248,224,224, \
189  224,224,224,224,224,222,224,232,222,224,224,224,224,224,230,232, \
190  256,234,232,240,240,233,240,233,248,240,240,240,240,238,240,256, \
191  248,240,248,256,256,256,256,256,256,248,256,256,256,256,256,256, \
192  256,256,256,256,256,256,248,256,248,256,248,248,256,256,256,256, \
193  256,256,256,256,280,296,280,280,256,288,296,280,256,280,280,296, \
194  296,296,280,280,280,296,296,296,280,280,280,296,280,296,295,312, \
195  312,312,312,296,312,311,312,312,312,296,296,312,296,296,312,312, \
196  312,296,312,312,296,311,312,312,312,312,312,312,312,312,312,296, \
197  296,312,311,296,312,312,312,312,312,312,312,312,296,312,312,312, \
198  312,312,312,312,312,312,312,312,296,312,312,312,312,312,312,312, \
199  312,312,312,312,311,311,312,312,312,312,312,312,312,312,312,312, \
200  312,312,312,312,312,312,312,312,312,312,312,312,312,312,320,316, \
201  320,319,319,320,320,320,319,320,319,320,360,320,320,320,352,360, \
202  368,352,368,368,369,372,344,370,372,366,369,352,370,370,370,360, \
203  360,360,360,368,360,372,372,360,370,368,372,367,368,360,370,368, \
204  372,371,370,372,372,372,371,368,368,368,370,370,368,368,368,372, \
205  370,372,367,368,368,370,368,368,360,368,360,368,370,368,368,367, \
206  360,368,368,368,372,368,372,368,368,368,372,371,368,416,368,367, \
207  372,368,372,372,372,370,440,372,368,416,368,368,368,433,448,369, \
208  440,416,415,416,440,448,440,440,448,448,440,448,440,440,448,416, \
209  416,416,415,440,417,416,416,418,432,418,417,448,416,432,416,432, \
210  416,420,440,448,408,416,432,448,416,448,448,448,440,440,440,440, \
211  448,440,440,440,440,448,416,448,440,416,448,416,448,448,440,448, \
212  416,440,416,419,417,448,416,420,416,432,433,420,417,432,416,424, \
213  440,440,440,440,448,437,440,440,448,440,440,448,448,448,448,432, \
214  480,440,440,440,448,448,448,448,448,448,440,448,445,432,448,448, \
215  448,439,448,448,468,448,448,440,440,440,448,448,468,496,480,448, \
216  440,448,440,468,440,496,440,466,448,448,448,468,448,440,448,448, \
217  448,496,496,496,496,448,448,496,448,468,468,448,448,468,480,467, \
218  468,512,496,512,512,496,496,480,512,480,496,512,512,512,496,512, \
219  512,496,496,496,512,512,512,512,512,496,512,512,496,496,496,496, \
220  512,512,496,512,496,496,496,496,512,512,512,496,480,496,496,496, \
221  496,496,512,512,512,512,496,496,512,496,496,496,512,480,496,544, \
222  512,496,496,496,576,512,496,560,496,496,512,561,496,560,496,560, \
223  560,496,512,512,512,496,512,512,512,576,512,512,512,512,512,512, \
224  512,512,512,512,560,512,560,512,576,512,576,592,512,560,591,512, \
225  592,512,576,512,576,592,592,624,592,576,560,512,592,576,592,592 \
226   
227 #define MPFR_MUL_THRESHOLD 19 /* limbs */
228 #define MPFR_SQR_THRESHOLD 18 /* limbs */
229 #define MPFR_DIV_THRESHOLD 34 /* limbs */
230 #define MPFR_EXP_2_THRESHOLD 1031 /* bits */
231 #define MPFR_EXP_THRESHOLD 11014 /* bits */
232 #define MPFR_SINCOS_THRESHOLD 26907 /* bits */
233 #define MPFR_AI_THRESHOLD1 -12404 /* threshold for negative input of mpfr_ai */
234 #define MPFR_AI_THRESHOLD2 1024
235 #define MPFR_AI_THRESHOLD3 19611
236 /* Tuneup completed successfully, took 759 seconds */