diff options
author | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-21 14:24:44 +0000 |
---|---|---|
committer | zimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4> | 2018-02-21 14:24:44 +0000 |
commit | 3815dc8ff2537b043eb3ccf2bded51a9a4b74d94 (patch) | |
tree | 986c6ab2582f855fc80018587d866e36f7ffc147 /src/arm | |
parent | 86c3acac604df9b85e45e79edcec14522fc88c6b (diff) | |
download | mpfr-3815dc8ff2537b043eb3ccf2bded51a9a4b74d94.tar.gz |
added tuning for ARM
git-svn-id: svn://scm.gforge.inria.fr/svn/mpfr/trunk@12374 280ebfd0-de03-0410-8827-d642c229c3f4
Diffstat (limited to 'src/arm')
-rw-r--r-- | src/arm/mparam.h | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/src/arm/mparam.h b/src/arm/mparam.h new file mode 100644 index 000000000..fe21f0905 --- /dev/null +++ b/src/arm/mparam.h @@ -0,0 +1,233 @@ +/* Various Thresholds of MPFR, not exported. -*- mode: C -*- + +Copyright 2018 Free Software Foundation, Inc. + +This file is part of the GNU MPFR Library. + +The GNU MPFR 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 3 of the License, or (at your +option) any later version. + +The GNU MPFR 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 MPFR Library; see the file COPYING.LESSER. If not, see +http://www.gnu.org/licenses/ or write to the Free Software Foundation, Inc., +51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. */ + +/* Generated by MPFR's tuneup.c, 2018-02-21, gcc 7.3.0 */ +/* calva.loria.fr ARMv7 Processor rev 5 (v7l) with gmp-6.1.2, + which defines -march=armv7-a -mfloat-abi=hard -mfpu=neon -mtune=cortex-a7 */ + +#define MPFR_MULHIGH_TAB \ + -1,0,0,0,-1,-1,0,-1,-1,-1,-1,-1,0,-1,-1,0, \ + 0,0,13,14,13,14,17,16,16,17,19,19,20,20,20,20, \ + 24,25,23,24,25,26,25,26,29,28,29,30,31,32,32,29, \ + 29,35,32,32,32,34,32,35,35,38,37,38,40,38,38,37, \ + 38,38,40,46,40,46,46,46,46,46,46,52,52,52,52,51, \ + 52,52,58,52,56,58,58,58,58,58,62,64,58,58,58,58, \ + 64,64,64,63,64,64,64,64,64,68,70,70,80,80,80,80, \ + 80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,92, \ + 92,92,92,92,92,92,92,92,92,92,104,104,104,104,104,104, \ + 104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104, \ + 104,116,116,104,116,116,116,116,116,116,116,116,116,116,116,128, \ + 112,116,128,128,128,116,128,112,112,112,127,128,124,124,128,135, \ + 135,127,128,128,128,128,128,128,135,153,153,153,128,153,153,153, \ + 128,153,153,147,153,135,153,153,153,153,153,153,153,171,152,153, \ + 153,152,153,153,152,153,152,153,153,153,168,171,153,171,171,171, \ + 171,171,171,171,170,170,170,171,171,170,174,171,170,170,168,171, \ + 171,171,171,171,174,189,189,189,189,189,189,189,188,189,189,189, \ + 189,189,189,189,189,188,189,189,189,189,189,204,204,189,189,189, \ + 204,204,204,204,189,204,204,204,204,228,204,228,228,228,228,228, \ + 228,228,228,228,228,228,228,228,228,228,228,228,228,228,228,228, \ + 228,228,228,228,228,228,228,228,228,228,252,228,228,228,252,228, \ + 252,252,252,252,252,252,251,252,252,252,252,252,252,252,252,252, \ + 251,252,252,252,252,252,252,252,252,252,252,252,252,252,252,252, \ + 252,252,252,252,252,252,252,252,252,252,252,276,276,252,276,276, \ + 276,268,276,276,276,276,276,276,276,276,276,276,276,316,316,316, \ + 316,316,316,314,316,315,316,316,316,316,316,315,316,316,316,316, \ + 316,316,316,316,316,316,315,316,316,316,315,314,316,316,316,315, \ + 316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316, \ + 316,316,316,316,316,316,316,316,316,364,316,364,364,364,364,364, \ + 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \ + 364,364,364,364,364,364,364,364,364,364,364,363,364,364,364,364, \ + 364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364, \ + 364,364,364,364,364,364,364,364,364,364,364,364,412,412,412,412, \ + 412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412, \ + 412,412,412,412,412,412,412,411,412,412,412,412,412,412,412,411, \ + 412,412,412,411,412,412,412,412,412,412,412,474,474,474,474,473, \ + 473,474,474,474,472,474,474,474,473,474,474,474,474,474,474,474, \ + 473,474,474,474,474,474,474,474,474,474,474,474,473,474,474,474, \ + 473,474,474,474,474,474,474,474,473,474,474,473,474,474,474,474, \ + 474,474,474,474,474,474,474,474,473,474,474,474,474,474,474,474, \ + 474,474,474,474,474,474,474,474,474,474,474,474,474,474,474,473, \ + 474,504,474,474,473,504,504,473,474,504,504,473,474,474,474,504, \ + 504,474,504,504,536,504,504,504,504,474,552,474,504,474,504,552, \ + 552,536,536,552,552,552,552,552,552,551,552,552,552,552,552,552, \ + 552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, \ + 552,552,552,552,552,632,632,631,632,631,632,631,632,632,632,631, \ + 632,632,631,631,632,632,632,631,632,632,632,632,632,632,632,631, \ + 632,631,632,631,632,632,632,631,632,632,632,632,632,631,632,631, \ + 632,632,632,631,632,631,631,631,632,632,632,631,632,632,632,631, \ + 632,632,632,631,632,632,632,631,632,632,632,631,632,632,632,631, \ + 632,632,632,631,632,632,632,632,632,632,631,632,632,632,632,632, \ + 632,632,632,632,632,631,632,629,632,631,632,631,632,632,632,632, \ + 632,632,632,631,632,632,632,631,632,632,632,631,632,728,632,728, \ + 728,632,728,728,728,728,726,728,728,728,728,728,728,728,728,727, \ + 720,728,728,728,728,728,728,728,728,728,728,728,728,728,728,728, \ + 728,728,728,728,728,728,728,728,728,728,728,728,728,728,728,728, \ + 728,727,728,728,728,728,728,728,728,727,728,728,728,728,728,728, \ + 728,728,727,727,728,727,728,728,726,727,728,728,728,728,727,728, \ + 728,727,726,728,728,727,728,728,728,728,728,728,728,727,728,728, \ + 728,728,728,728,728,727,728,728,728,727,728,728,824,728,824,824, \ + 824,823,824,824,824,823,824,824,824,823,824,824,824,823,824,824, \ + 824,823,824,824,824,824,824,824,824,823,824,824,824,823,824,824, \ + 824,823,824,822,824,824,824,824,824,824,824,824,824,824,824,824, \ + 824,822,824,824,824,823,824,824,824,823,824,824,824,823,824,824 \ + +#define MPFR_SQRHIGH_TAB \ + -1,0,-1,-1,-1,0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, \ + 12,12,13,12,12,14,14,16,16,16,18,16,20,18,20,20, \ + 21,20,20,22,22,24,24,26,26,28,28,25,25,24,25,28, \ + 29,27,28,29,31,28,29,29,31,31,31,32,33,34,35,37, \ + 37,37,39,36,37,36,37,40,41,40,40,40,41,41,41,44, \ + 44,44,46,44,45,46,48,48,49,50,48,52,56,56,52,56, \ + 60,52,56,60,60,56,60,64,60,60,60,68,68,64,68,66, \ + 68,64,68,72,70,68,72,70,68,72,72,72,72,70,72,70, \ + 72,72,72,72,76,72,72,80,80,80,76,78,78,80,80,84, \ + 80,80,84,88,84,88,88,88,88,88,92,80,80,88,96,88, \ + 88,84,88,88,88,96,88,88,88,104,96,92,96,96,112,96, \ + 96,112,104,104,104,104,112,104,104,104,112,112,112,112,112,112, \ + 112,112,120,112,112,112,112,120,120,112,120,112,120,120,120,120, \ + 128,120,112,120,128,112,128,120,120,120,120,128,120,128,136,128, \ + 128,128,128,128,128,128,136,128,136,136,136,128,136,136,136,136, \ + 136,144,144,128,144,144,144,144,136,144,136,144,136,136,144,144, \ + 136,144,144,144,144,144,144,144,144,144,144,144,144,152,144,152, \ + 152,144,160,144,160,160,160,160,160,160,160,144,160,160,160,160, \ + 160,160,160,160,160,177,177,160,160,160,160,160,160,160,160,160, \ + 160,177,177,160,189,177,160,182,177,177,177,201,201,201,201,201, \ + 201,201,201,177,201,189,201,177,201,201,201,200,201,201,201,201, \ + 201,201,201,201,201,201,201,200,201,201,201,201,201,201,201,201, \ + 213,212,213,212,213,213,213,213,212,213,213,213,213,213,218,213, \ + 213,219,213,213,218,213,219,225,219,213,237,219,225,219,225,218, \ + 219,231,237,237,237,237,237,237,237,243,237,237,237,249,249,237, \ + 237,236,237,237,237,237,237,237,243,249,237,249,249,249,249,249, \ + 249,249,249,249,249,249,249,249,261,260,261,248,249,261,273,261, \ + 261,261,261,273,249,273,261,260,261,273,273,261,273,273,273,273, \ + 261,284,284,284,273,292,292,273,284,292,291,292,292,292,284,284, \ + 292,292,284,273,291,292,292,284,292,292,284,284,261,283,284,292, \ + 284,284,284,292,292,273,292,284,292,292,292,292,292,284,284,316, \ + 284,292,292,284,284,292,292,284,292,291,316,292,284,292,292,284, \ + 316,284,316,284,292,308,316,292,308,292,332,316,291,316,316,292, \ + 316,332,316,316,316,316,316,316,308,308,316,316,316,332,332,316, \ + 332,316,332,316,316,316,332,324,332,324,332,316,332,316,332,332, \ + 332,332,332,332,332,324,324,316,316,324,332,332,348,332,348,340, \ + 348,348,332,348,323,348,331,332,340,324,332,348,348,348,361,348, \ + 348,364,348,348,345,364,364,348,348,364,348,364,348,364,348,364, \ + 364,348,364,364,364,372,363,364,372,348,361,364,364,364,364,372, \ + 380,380,364,364,364,364,379,380,364,364,377,380,364,364,364,364, \ + 402,402,380,402,364,380,402,372,402,402,402,380,426,402,402,426, \ + 426,426,425,426,426,426,426,402,426,426,426,426,426,426,426,438, \ + 426,426,426,402,426,426,438,438,426,426,426,426,438,438,438,426, \ + 426,438,426,426,426,438,438,438,438,450,426,426,426,426,438,438, \ + 438,450,450,438,438,474,426,474,438,438,450,450,450,450,438,450, \ + 474,474,474,450,450,474,438,474,474,450,474,474,474,426,426,474, \ + 474,474,474,474,474,474,473,474,474,474,474,474,474,474,474,473, \ + 473,498,498,498,438,474,474,486,498,498,498,498,498,498,497,498, \ + 498,498,498,498,498,498,474,474,474,498,474,522,474,498,498,498, \ + 498,474,474,474,474,522,474,474,474,474,474,522,522,522,474,498, \ + 498,498,498,498,498,522,522,498,498,498,498,498,498,498,498,498, \ + 498,498,498,498,498,546,498,498,498,498,498,522,522,522,522,522, \ + 522,522,522,521,522,522,522,522,522,522,546,522,522,522,522,522, \ + 522,546,546,522,546,546,546,546,546,546,522,546,546,546,546,546, \ + 546,546,546,546,546,546,546,546,546,546,546,546,568,546,546,546, \ + 568,568,568,546,546,568,546,568,568,546,546,546,546,546,546,546, \ + 546,584,584,546,546,584,546,546,584,546,568,584,600,584,584,568, \ + 568,600,600,568,568,568,600,600,600,584,584,584,616,584,632,583, \ + 584,584,616,584,631,584,584,616,616,584,632,632,632,616,632,600, \ + 632,632,632,632,632,632,600,632,632,632,631,632,632,632,632,632, \ + 632,632,648,632,632,616,632,664,632,632,632,632,632,632,664,632, \ + 632,664,664,664,632,632,632,664,664,632,664,632,632,664,664,632, \ + 632,664,632,664,632,632,664,664,664,664,664,664,664,664,663,664, \ + 664,696,664,664,664,664,664,664,696,664,664,664,664,664,664,664 \ + +#define MPFR_DIVHIGH_TAB \ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*0-15*/ \ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*16-31*/ \ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*32-47*/ \ + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /*48-63*/ \ + 0,0,0,0,0,0,0,0,0,41,41,43,48,41,46,41, /*64-79*/ \ + 43,44,46,46,46,45,45,52,48,47,53,52,52,52,52,52, /*80-95*/ \ + 52,53,52,58,57,52,60,66,59,60,62,64,66,70,64,70, /*96-111*/ \ + 69,68,64,64,64,66,70,64,70,64,68,69,70,68,70,76, /*112-127*/ \ + 68,80,70,70,71,72,76,76,76,76,76,76,80,77,76,76, /*128-143*/ \ + 80,88,86,88,80,76,92,92,88,92,92,92,88,84,90,92, /*144-159*/ \ + 88,92,104,92,91,104,91,90,88,91,96,91,90,92,92,104, /*160-175*/ \ + 94,104,104,96,100,96,102,102,104,100,104,103,104,104,100,104, /*176-191*/ \ + 104,102,104,104,104,106,104,104,104,104,104,104,104,104,112,115, /*192-207*/ \ + 114,114,128,128,116,115,116,116,128,128,128,128,128,128,128,128, /*208-223*/ \ + 128,128,128,140,127,128,128,128,128,120,128,128,140,136,128,132, /*224-239*/ \ + 130,127,128,128,136,136,128,128,132,128,128,128,136,128,140,140, /*240-255*/ \ + 142,136,140,134,134,142,139,140,140,144,152,140,136,160,160,160, /*256-271*/ \ + 140,140,160,160,160,160,160,160,160,160,160,160,160,160,176,160, /*272-287*/ \ + 160,160,176,160,160,160,152,160,160,160,184,160,160,160,160,160, /*288-303*/ \ + 160,184,184,176,160,184,160,160,160,184,184,184,160,160,176,184, /*304-319*/ \ + 184,180,176,184,184,183,176,176,176,176,184,184,182,184,184,184, /*320-335*/ \ + 184,184,176,184,192,184,208,184,184,176,208,184,208,184,208,208, /*336-351*/ \ + 208,208,208,208,208,184,184,208,208,184,208,208,208,208,208,208, /*352-367*/ \ + 208,208,208,208,208,208,208,208,208,208,208,208,208,206,208,208, /*368-383*/ \ + 208,208,208,208,208,208,208,208,208,208,208,208,208,208,208,208, /*384-399*/ \ + 208,208,208,208,208,206,208,208,208,232,208,208,208,208,216,220, /*400-415*/ \ + 232,230,256,224,224,256,232,232,224,232,232,232,224,256,224,232, /*416-431*/ \ + 232,256,232,256,232,232,256,256,256,256,256,232,232,256,256,256, /*432-447*/ \ + 256,256,248,256,256,256,256,256,256,256,256,256,256,232,256,256, /*448-463*/ \ + 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, /*464-479*/ \ + 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, /*480-495*/ \ + 256,255,256,256,256,256,256,256,256,256,256,256,276,280,280,280, /*496-511*/ \ + 270,264,288,280,274,279,304,276,278,272,276,276,272,304,284,304, /*512-527*/ \ + 282,281,304,304,280,280,280,288,304,288,280,304,304,288,304,300, /*528-543*/ \ + 320,304,304,276,304,304,304,304,320,304,280,304,280,320,304,320, /*544-559*/ \ + 286,320,320,320,304,318,304,304,288,294,320,288,320,320,304,320, /*560-575*/ \ + 304,304,304,304,304,320,304,319,304,304,320,320,304,320,320,320, /*576-591*/ \ + 320,320,320,352,320,320,320,320,304,336,320,320,352,320,336,320, /*592-607*/ \ + 320,320,352,368,320,320,368,320,320,368,336,344,368,320,320,320, /*608-623*/ \ + 320,317,352,352,320,320,320,336,352,320,320,320,366,352,368,368, /*624-639*/ \ + 368,368,368,368,368,368,368,368,368,368,352,368,352,366,352,352, /*640-655*/ \ + 366,352,352,368,384,376,352,366,368,366,352,352,368,360,368,368, /*656-671*/ \ + 368,366,360,368,368,366,352,366,364,366,368,352,352,368,366,368, /*672-687*/ \ + 364,368,366,368,366,368,368,375,368,416,368,384,376,366,366,416, /*688-703*/ \ + 368,368,376,416,384,368,366,368,384,360,368,368,408,376,384,366, /*704-719*/ \ + 416,416,416,368,416,366,416,416,368,408,416,368,416,416,416,384, /*720-735*/ \ + 384,384,376,416,384,416,416,416,416,416,384,376,416,416,416,416, /*736-751*/ \ + 416,416,416,400,408,416,415,416,416,416,416,416,416,416,416,408, /*752-767*/ \ + 416,416,416,416,408,416,416,416,408,408,416,416,416,416,416,416, /*768-783*/ \ + 416,416,416,416,412,416,416,416,416,416,416,408,416,416,416,416, /*784-799*/ \ + 416,416,416,416,416,416,448,416,416,460,408,416,416,416,416,448, /*800-815*/ \ + 448,456,416,464,416,454,416,416,416,448,464,416,416,416,424,448, /*816-831*/ \ + 456,464,448,448,456,464,464,456,464,464,448,464,448,464,444,448, /*832-847*/ \ + 464,448,448,448,448,447,448,448,464,448,448,512,448,448,512,456, /*848-863*/ \ + 456,512,504,464,448,448,463,464,464,512,464,512,464,464,448,512, /*864-879*/ \ + 512,448,512,448,512,512,448,512,512,456,512,464,512,456,512,512, /*880-895*/ \ + 512,512,512,512,512,512,512,510,512,512,512,512,456,512,512,512, /*896-911*/ \ + 512,512,512,464,512,464,512,512,512,512,512,464,512,512,512,512, /*912-927*/ \ + 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*928-943*/ \ + 512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*944-959*/ \ + 512,512,510,512,512,512,512,512,512,510,512,512,512,512,512,512, /*960-975*/ \ + 512,512,512,512,512,512,512,512,512,504,504,512,512,512,512,512, /*976-991*/ \ + 512,508,512,512,512,512,512,512,512,512,512,512,512,512,512,512, /*992-1007*/ \ + 512,511,512,512,544,512,512,512,512,544,512,512,552,512,560,552 /*1008-1023*/ \ + +#define MPFR_MUL_THRESHOLD 22 /* limbs */ +#define MPFR_SQR_THRESHOLD 23 /* limbs */ +#define MPFR_DIV_THRESHOLD 4 /* limbs */ +#define MPFR_EXP_2_THRESHOLD 277 /* bits */ +#define MPFR_EXP_THRESHOLD 10679 /* bits */ +#define MPFR_SINCOS_THRESHOLD 32025 /* bits */ +#define MPFR_AI_THRESHOLD1 -29499 /* threshold for negative input of mpfr_ai */ +#define MPFR_AI_THRESHOLD2 2932 +#define MPFR_AI_THRESHOLD3 50876 +/* Tuneup completed successfully, took 3081 seconds */ |