summaryrefslogtreecommitdiff
path: root/src/arm
diff options
context:
space:
mode:
authorzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-21 14:24:44 +0000
committerzimmerma <zimmerma@280ebfd0-de03-0410-8827-d642c229c3f4>2018-02-21 14:24:44 +0000
commit3815dc8ff2537b043eb3ccf2bded51a9a4b74d94 (patch)
tree986c6ab2582f855fc80018587d866e36f7ffc147 /src/arm
parent86c3acac604df9b85e45e79edcec14522fc88c6b (diff)
downloadmpfr-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.h233
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 */