[Gmp-commit] /var/hg/gmp: 2 new changesets
mercurial at gmplib.org
mercurial at gmplib.org
Wed Jun 5 16:21:04 CEST 2013
details: /var/hg/gmp/rev/0a0f9d8becf8
changeset: 15824:0a0f9d8becf8
user: Torbjorn Granlund <tege at gmplib.org>
date: Mon Jun 03 12:34:15 2013 +0200
description:
Retune
details: /var/hg/gmp/rev/042c4020ce94
changeset: 15825:042c4020ce94
user: Torbjorn Granlund <tege at gmplib.org>
date: Wed Jun 05 16:20:59 2013 +0200
description:
Remove file from repent author.
diffstat:
ChangeLog | 4 -
mpn/arm/neon/logops_n.asm | 139 ----------------------
mpn/x86_64/coreisbr/gmp-mparam.h | 244 +++++++++++++++-----------------------
3 files changed, 100 insertions(+), 287 deletions(-)
diffs (truncated from 456 to 300 lines):
diff -r ad0580d92c4c -r 042c4020ce94 ChangeLog
--- a/ChangeLog Fri May 31 16:49:28 2013 +0200
+++ b/ChangeLog Wed Jun 05 16:20:59 2013 +0200
@@ -143,10 +143,6 @@
* mpn/arm/v7a/cora15/cnd-aors_n.asm: New file.
-2013-04-26 Richard Henderson <rth at twiddle.net>
-
- * mpn/arm/neon/logops_n.asm: New file.
-
2013-04-25 Torbjorn Granlund <tege at gmplib.org>
* mpn/arm/mod_34lsub1.asm: Clear carry smarter.
diff -r ad0580d92c4c -r 042c4020ce94 mpn/arm/neon/logops_n.asm
--- a/mpn/arm/neon/logops_n.asm Fri May 31 16:49:28 2013 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-dnl ARM mpn_and_n, et al.
-
-dnl Contributed to the GNU project by Richard Henderson.
-
-dnl Copyright 2013 Richard Henderson.
-
-dnl This file is part of the GNU MP Library.
-
-dnl The GNU MP Library is free software; you can redistribute it and/or modify
-dnl it under the terms of the GNU Lesser General Public License as published
-dnl by the Free Software Foundation; either version 3 of the License, or (at
-dnl your option) any later version.
-
-dnl The GNU MP Library is distributed in the hope that it will be useful, but
-dnl WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-dnl or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
-dnl License for more details.
-
-dnl You should have received a copy of the GNU Lesser General Public License
-dnl along with the GNU MP Library. If not, see http://www.gnu.org/licenses/.
-
-include(`../config.m4')
-
-C cycles/limb cycles/limb
-C and andn ior iorn xor nand nior xnor
-C StrongARM ? ?
-C XScale ? ?
-C Cortex-A8 ? ?
-C Cortex-A9 2.1 2.6
-C Cortex-A15 0.78 0.94
-
-define(`rp', `r0')
-define(`up', `r1')
-define(`vp', `r2')
-define(`n', `r3')
-
-define(`POSTOP')
-
-ifdef(`OPERATION_and_n',`
- define(`func', `mpn_and_n')
- define(`LOGOP', `vand $1, $2, $3')')
-ifdef(`OPERATION_andn_n',`
- define(`func', `mpn_andn_n')
- define(`LOGOP', `vbic $1, $2, $3')')
-ifdef(`OPERATION_nand_n',`
- define(`func', `mpn_nand_n')
- define(`POSTOP', `vmvn $1, $1')
- define(`LOGOP', `vand $1, $2, $3')')
-ifdef(`OPERATION_ior_n',`
- define(`func', `mpn_ior_n')
- define(`LOGOP', `vorr $1, $2, $3')')
-ifdef(`OPERATION_iorn_n',`
- define(`func', `mpn_iorn_n')
- define(`LOGOP', `vorn $1, $2, $3')')
-ifdef(`OPERATION_nior_n',`
- define(`func', `mpn_nior_n')
- define(`POSTOP', `vmvn $1, $1')
- define(`LOGOP', `vorr $1, $2, $3')')
-ifdef(`OPERATION_xor_n',`
- define(`func', `mpn_xor_n')
- define(`LOGOP', `veor $1, $2, $3')')
-ifdef(`OPERATION_xnor_n',`
- define(`func', `mpn_xnor_n')
- define(`POSTOP', `vmvn $1, $1')
- define(`LOGOP', `veor $1, $2, $3')')
-
-MULFUNC_PROLOGUE(mpn_and_n mpn_andn_n mpn_nand_n mpn_ior_n mpn_iorn_n mpn_nior_n mpn_xor_n mpn_xnor_n)
-
-ASM_START()
- .fpu neon
-PROLOGUE(func)
- cmp n, #7
- ble L(bc)
-
-C Perform a few initial operation until rp is 128-bit aligned
- tst rp, #4
- beq L(al1)
- vld1.32 {d0[0]}, [up]!
- vld1.32 {d1[0]}, [vp]!
- sub n, n, #1
- LOGOP( d0, d0, d1)
- POSTOP( d0, d0)
- vst1.32 {d0[0]}, [rp]!
-L(al1): tst rp, #8
- beq L(al2)
- vld1.32 {d0}, [up]!
- vld1.32 {d1}, [vp]!
- sub n, n, #2
- LOGOP( d0, d0, d1)
- POSTOP( d0, d0)
- vst1.32 {d0}, [rp:64]!
-L(al2): vld1.32 {q2}, [up]!
- vld1.32 {q3}, [vp]!
- subs n, n, #12
- blt L(end)
-
- ALIGN(16)
-L(top): vld1.32 {q0}, [up]!
- LOGOP( q2, q2, q3)
- vld1.32 {q1}, [vp]!
- POSTOP( q2, q2)
- subs n, n, #8
- vst1.32 {q2}, [rp:128]!
- vld1.32 {q2}, [up]!
- LOGOP( q0, q0, q1)
- vld1.32 {q3}, [vp]!
- POSTOP( q0, q0)
- vst1.32 {q0}, [rp:128]!
- bge L(top)
-
-L(end): LOGOP( q2, q2, q3)
- POSTOP( q2, q2)
- vst1.32 {q2}, [rp:128]!
-
-C Handle last 0-7 limbs. Note that rp is aligned after loop, but not when we
-C arrive here via L(bc)
-L(bc): tst n, #4
- beq L(tl1)
- vld1.32 {q0}, [up]!
- vld1.32 {q1}, [vp]!
- LOGOP( q0, q0, q1)
- POSTOP( q0, q0)
- vst1.32 {q0}, [rp]!
-L(tl1): tst n, #2
- beq L(tl2)
- vld1.32 {d0}, [up]!
- vld1.32 {d1}, [vp]!
- LOGOP( d0, d0, d1)
- POSTOP( d0, d0)
- vst1.32 {d0}, [rp]!
-L(tl2): tst n, #1
- beq L(tl3)
- vld1.32 {d0[0]}, [up]
- vld1.32 {d1[0]}, [vp]
- LOGOP( d0, d0, d1)
- POSTOP( d0, d0)
- vst1.32 {d0[0]}, [rp]
-L(tl3): bx lr
-EPILOGUE()
diff -r ad0580d92c4c -r 042c4020ce94 mpn/x86_64/coreisbr/gmp-mparam.h
--- a/mpn/x86_64/coreisbr/gmp-mparam.h Fri May 31 16:49:28 2013 +0200
+++ b/mpn/x86_64/coreisbr/gmp-mparam.h Wed Jun 05 16:20:59 2013 +0200
@@ -1,7 +1,7 @@
/* Sandy Bridge gmp-mparam.h -- Compiler/machine parameter header file.
Copyright 1991, 1993, 1994, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
-2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
+2008, 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc.
This file is part of the GNU MP Library.
@@ -26,187 +26,143 @@
#define MOD_1_NORM_THRESHOLD 0 /* always */
#define MOD_1_UNNORM_THRESHOLD 0 /* always */
#define MOD_1N_TO_MOD_1_1_THRESHOLD 3
-#define MOD_1U_TO_MOD_1_1_THRESHOLD 3
+#define MOD_1U_TO_MOD_1_1_THRESHOLD 2
#define MOD_1_1_TO_MOD_1_2_THRESHOLD 9
-#define MOD_1_2_TO_MOD_1_4_THRESHOLD 20
-#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 10
+#define MOD_1_2_TO_MOD_1_4_THRESHOLD 22
+#define PREINV_MOD_1_TO_MOD_1_THRESHOLD 6
#define USE_PREINV_DIVREM_1 1 /* native */
#define DIV_QR_2_PI2_THRESHOLD MP_SIZE_T_MAX /* never */
#define DIVEXACT_1_THRESHOLD 0 /* always (native) */
#define BMOD_1_TO_MOD_1_THRESHOLD 30
-#define MUL_TOOM22_THRESHOLD 18
+#define MUL_TOOM22_THRESHOLD 16
#define MUL_TOOM33_THRESHOLD 57
#define MUL_TOOM44_THRESHOLD 154
#define MUL_TOOM6H_THRESHOLD 226
-#define MUL_TOOM8H_THRESHOLD 333
+#define MUL_TOOM8H_THRESHOLD 309
#define MUL_TOOM32_TO_TOOM43_THRESHOLD 97
-#define MUL_TOOM32_TO_TOOM53_THRESHOLD 108
-#define MUL_TOOM42_TO_TOOM53_THRESHOLD 105
-#define MUL_TOOM42_TO_TOOM63_THRESHOLD 114
-#define MUL_TOOM43_TO_TOOM54_THRESHOLD 138
+#define MUL_TOOM32_TO_TOOM53_THRESHOLD 102
+#define MUL_TOOM42_TO_TOOM53_THRESHOLD 103
+#define MUL_TOOM42_TO_TOOM63_THRESHOLD 105
+#define MUL_TOOM43_TO_TOOM54_THRESHOLD 118
#define SQR_BASECASE_THRESHOLD 0 /* always (native) */
#define SQR_TOOM2_THRESHOLD 26
-#define SQR_TOOM3_THRESHOLD 81
-#define SQR_TOOM4_THRESHOLD 250
-#define SQR_TOOM6_THRESHOLD 345
-#define SQR_TOOM8_THRESHOLD 381
+#define SQR_TOOM3_THRESHOLD 93
+#define SQR_TOOM4_THRESHOLD 226
+#define SQR_TOOM6_THRESHOLD 318
+#define SQR_TOOM8_THRESHOLD 430
#define MULMID_TOOM42_THRESHOLD 24
-#define MULMOD_BNM1_THRESHOLD 14
+#define MULMOD_BNM1_THRESHOLD 11
#define SQRMOD_BNM1_THRESHOLD 14
-#define POWM_SEC_TABLE 4,35,516,1036,1222
+#define MUL_FFT_MODF_THRESHOLD 595 /* k = 5 */
+#define MUL_FFT_TABLE3 \
+ { { 595, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 11, 5}, { 23, 6}, { 25, 7}, { 25, 8}, \
+ { 13, 7}, { 28, 8}, { 15, 7}, { 32, 8}, \
+ { 17, 7}, { 35, 8}, { 21, 9}, { 11, 8}, \
+ { 27, 9}, { 15, 8}, { 35, 9}, { 19, 8}, \
+ { 39, 9}, { 23, 8}, { 47, 9}, { 27,10}, \
+ { 15, 9}, { 39,10}, { 23, 9}, { 51,11}, \
+ { 15,10}, { 31, 9}, { 67,10}, { 39, 9}, \
+ { 79,10}, { 47, 9}, { 95,10}, { 55,11}, \
+ { 31,10}, { 79,11}, { 47,10}, { 95,12}, \
+ { 31,11}, { 63,10}, { 135,11}, { 79,10}, \
+ { 167,11}, { 95,10}, { 191, 9}, { 383,11}, \
+ { 111,12}, { 63,11}, { 143, 9}, { 575,12}, \
+ { 95,10}, { 383,13}, { 63,12}, { 127,10}, \
+ { 575,12}, { 159,10}, { 639,11}, { 335,10}, \
+ { 671,11}, { 351,10}, { 703,12}, { 191,11}, \
+ { 383,10}, { 767,11}, { 415,10}, { 831,11}, \
+ { 447,13}, { 127,11}, { 543,10}, { 1087,11}, \
+ { 607,10}, { 1215, 9}, { 2431,11}, { 671,12}, \
+ { 351,11}, { 703,12}, { 383,11}, { 767,12}, \
+ { 415,11}, { 831,12}, { 447,11}, { 895,12}, \
+ { 479,14}, { 127,12}, { 511,11}, { 1023,12}, \
+ { 543,11}, { 1087,12}, { 607,11}, { 1215,13}, \
+ { 319,12}, { 735,13}, { 383,12}, { 831,13}, \
+ { 447,12}, { 959,13}, { 511,12}, { 1087,13}, \
+ { 575,12}, { 1215,13}, { 8192,14}, { 16384,15}, \
+ { 32768,16}, { 65536,17}, { 131072,18}, { 262144,19}, \
+ { 524288,20}, {1048576,21}, {2097152,22}, {4194304,23}, \
+ {8388608,24} }
+#define MUL_FFT_TABLE3_SIZE 113
+#define MUL_FFT_THRESHOLD 5760
-#define MUL_FFT_MODF_THRESHOLD 380 /* k = 5 */
-#define MUL_FFT_TABLE3 \
- { { 380, 5}, { 17, 6}, { 9, 5}, { 19, 6}, \
- { 11, 5}, { 23, 6}, { 21, 7}, { 11, 6}, \
- { 23, 7}, { 21, 8}, { 11, 7}, { 24, 8}, \
- { 13, 7}, { 27, 8}, { 15, 7}, { 31, 8}, \
- { 17, 7}, { 35, 8}, { 19, 7}, { 39, 8}, \
+#define SQR_FFT_MODF_THRESHOLD 565 /* k = 5 */
+#define SQR_FFT_TABLE3 \
+ { { 565, 5}, { 19, 6}, { 10, 5}, { 21, 6}, \
+ { 25, 7}, { 25, 8}, { 13, 7}, { 28, 8}, \
+ { 15, 7}, { 31, 8}, { 17, 7}, { 35, 8}, \
{ 21, 9}, { 11, 8}, { 27, 9}, { 15, 8}, \
{ 35, 9}, { 19, 8}, { 41, 9}, { 23, 8}, \
- { 49, 9}, { 27,10}, { 15, 9}, { 39,10}, \
+ { 47, 9}, { 27,10}, { 15, 9}, { 39,10}, \
{ 23, 9}, { 51,11}, { 15,10}, { 31, 9}, \
- { 67,10}, { 39, 9}, { 83,10}, { 47, 9}, \
- { 95,10}, { 55,11}, { 31,10}, { 79,11}, \
- { 47,10}, { 95,12}, { 31,11}, { 63,10}, \
- { 135,11}, { 79,10}, { 159, 9}, { 319,10}, \
- { 167,11}, { 95,10}, { 191, 9}, { 383,12}, \
- { 63,11}, { 127,10}, { 255, 9}, { 511,10}, \
- { 271,11}, { 143,10}, { 287, 9}, { 575,10}, \
- { 303,11}, { 159,10}, { 319,12}, { 95,11}, \
- { 191,10}, { 383,11}, { 207,10}, { 415,13}, \
- { 63,12}, { 127,11}, { 255,10}, { 511,11}, \
- { 271,10}, { 543,11}, { 287,10}, { 575,11}, \
- { 303,10}, { 607,12}, { 159,11}, { 319,10}, \
- { 639,11}, { 351,10}, { 703, 9}, { 1407,11}, \
- { 367,12}, { 191,11}, { 383,10}, { 767,11}, \
- { 415,10}, { 831,12}, { 223,11}, { 447,10}, \
- { 895,13}, { 127,12}, { 255,11}, { 543,10}, \
- { 1087,12}, { 287,11}, { 575,10}, { 1151,11}, \
- { 607,12}, { 319,11}, { 639,12}, { 351,11}, \
- { 703,10}, { 1407,11}, { 735,13}, { 191,12}, \
- { 383,11}, { 767,12}, { 415,11}, { 831,10}, \
- { 1663,12}, { 447,11}, { 895,14}, { 127,13}, \
- { 255,12}, { 511,11}, { 1023,12}, { 543,11}, \
- { 1087,12}, { 575,11}, { 1151,12}, { 607,11}, \
- { 1215,13}, { 319,12}, { 639,11}, { 1279,12}, \
- { 703,11}, { 1407,13}, { 383,12}, { 767,11}, \
- { 1535,12}, { 831,11}, { 1663,13}, { 447,12}, \
- { 959,11}, { 1919,14}, { 255,13}, { 511,12}, \
- { 1087,13}, { 575,12}, { 1215,11}, { 2431,13}, \
More information about the gmp-commit
mailing list