GMP «Arithmetic without limitations» GMP mpn anomalies
Last modified:2018-02-25 11:48


The purpose of these measurements is to highlight possible improvements of GMP's low-level functions. The comparisons might include C fallbacks; in such cases the result indicates the need for asm implementation.

This is a new page, and it will therefore have glitches:

  1. Results for notoriously inaccurate machines should either be suppressed or else be given greater tolerance (e.g. pentium4, bulldozers).
  2. The tolerance ranges might be too narrow in some cases.

system/abi under-performing
function
factor
(expected lower)
comparison
function
zengentoo64/64: addlsh2_n 1.21 addlsh_n
bwlgentoo64/64: addlsh_n 1.07 addmul_1.3
skygentoo64/64: addlsh_n 1.07 addmul_1.3
paddy/64: addlsh_n 1.08 addmul_1.3
sky/64: addlsh_n 1.08 addmul_1.3
bobcat/64: addlsh_n 1.10 addmul_1.3
jaggentoo64/64: addlsh_n 1.10 addmul_1.3
kinggentoo64/64: addlsh_n 1.13 addmul_1.3
panther/64: addlsh_n 1.16 addmul_1.3
gege/64: addlsh_n 1.54 addlsh1_n
pilegentoo64/64: addlsh_n 1.61 addlsh1_n
jaggentoo64/64: addlsh_n 1.73 addlsh2_n
baygentoo64/64: addlsh_n 1.74 addlsh1_n
tutugentoo64/64: addlsh_n 1.74 addlsh1_n
baygentoo64/64: addlsh_n 1.74 addlsh2_n
bobcat/64: addlsh_n 1.75 addlsh1_n
jaggentoo64/64: addlsh_n 1.83 addlsh1_n
element/64: addlsh_n 2.35 addlsh1_n
element/64: addlsh_n 2.35 addlsh2_n
beagle/32: addmul_1.3 0.84 addmul_2
gcc1-power7/mode64: addmul_1.3 1.35 mul_1.3
hannahgentoo64/64: addmul_1.3 1.37 mul_1.3
hwlgentoo64/64: addmul_1.3 1.37 mul_1.3
lgentoo4.s390.gentoo.wh0rd.org/64: addmul_1.3 1.41 mul_1.3
jaggentoo64/64: addmul_2 2.06 addmul_1.3
bobcat/64: addmul_2 2.13 addmul_1.3
skygentoo64/64: addmul_2 2.45 addmul_1.3
bwlgentoo64/64: addmul_2 2.46 addmul_1.3
paddy/64: addmul_2 2.46 addmul_1.3
sky/64: addmul_2 2.46 addmul_1.3
jaggentoo64/64: copyd 1.19 copyi
baygentoo32/32: mul_1.3 1.1 addmul_1.3
lgentoo4.s390.gentoo.wh0rd.org/64: mullo_basecase 0.62 mul_basecase
g5/32: mullo_basecase 0.63 mul_basecase
panther/64: mullo_basecase 0.65 mul_basecase
gcc2-power8/mode64: mullo_basecase 0.71 mul_basecase
g5/mode64: mullo_basecase 0.72 mul_basecase
gcc1-power7/mode64: mullo_basecase 0.73 mul_basecase
gege/32: mullo_basecase 0.78 mul_basecase
baygentoo32/32: mullo_basecase 0.81 mul_basecase
jaggentoo32/32: mullo_basecase 0.82 mul_basecase
kinggentoo32/32: mullo_basecase 0.83 mul_basecase
odxu4/32: mullo_basecase 0.83 mul_basecase
zengentoo32/32: mullo_basecase 0.85 mul_basecase
pilegentoo32/32: mullo_basecase 0.86 mul_basecase
tutugentoo32/32: mullo_basecase 0.86 mul_basecase
nhmgentoo32/32: mullo_basecase 0.87 mul_basecase
excagentoo32/32: mullo_basecase 0.88 mul_basecase
element/32: mullo_basecase 0.89 mul_basecase
bobcat/32: mullo_basecase 0.91 mul_basecase
panther/32: mullo_basecase 0.91 mul_basecase
paddy/32: mullo_basecase 0.92 mul_basecase
pnrgentoo32/32: mullo_basecase 0.92 mul_basecase
cnrgentoo32/32: mullo_basecase 0.93 mul_basecase
odc1/32: mullo_basecase 0.93 mul_basecase
sky/32: mullo_basecase 0.96 mul_basecase
parks/32: mullo_basecase 0.97 mul_basecase
skygentoo32/32: mullo_basecase 0.98 mul_basecase
tambo/32: mullo_basecase 1 mul_basecase
beagle/32: mullo_basecase 1.04 mul_basecase
bwlgentoo32/32: mullo_basecase 1.1 mul_basecase
hannahgentoo32/32: mullo_basecase 1.1 mul_basecase
sbrgentoo32/32: mullo_basecase 1.1 mul_basecase
sysgentoo32/32: mullo_basecase 1.1 mul_basecase
ivygentoo32/32: mullo_basecase 1.11 mul_basecase
hwlgentoo32/32: mullo_basecase 1.2 mul_basecase
nhmgentoo64/64: redc_1 1.26 mul_basecase
g5/mode64: redc_1 1.31 mul_basecase
lgentoo4.s390.gentoo.wh0rd.org/64: redc_1 1.34 mul_basecase
cnrgentoo64/64: redc_1 1.39 mul_basecase
baygentoo32/32: redc_1 1.4 mul_basecase
gege/32: redc_1 1.44 mul_basecase
pnrgentoo64/64: redc_1 1.46 mul_basecase
kinggentoo32/32: redc_1 1.5 mul_basecase
panther/32: redc_1 1.50 mul_basecase
zengentoo64/64: redc_1 1.52 mul_basecase
jaggentoo32/32: redc_1 1.6 mul_basecase
tambo/32: redc_1 1.6 mul_basecase
tutugentoo32/32: redc_1 1.6 mul_basecase
zengentoo32/32: redc_1 1.6 mul_basecase
bobcat/32: redc_1 1.61 mul_basecase
cnrgentoo32/32: redc_1 1.7 mul_basecase
excagentoo32/32: redc_1 1.7 mul_basecase
nhmgentoo32/32: redc_1 1.7 mul_basecase
pilegentoo32/32: redc_1 1.7 mul_basecase
pnrgentoo32/32: redc_1 1.7 mul_basecase
element/32: redc_1 1.75 mul_basecase
odc1/32: redc_1 1.76 mul_basecase
sky/32: redc_1 1.90 mul_basecase
paddy/32: redc_1 1.92 mul_basecase
beagle/32: redc_1 1.97 mul_basecase
bwlgentoo32/32: redc_1 2 mul_basecase
skygentoo32/32: redc_1 2 mul_basecase
sysgentoo32/32: redc_1 2 mul_basecase
ivygentoo32/32: redc_1 2.00 mul_basecase
hannahgentoo32/32: redc_1 2.1 mul_basecase
hwlgentoo32/32: redc_1 2.1 mul_basecase
parks/32: redc_1 2.1 mul_basecase
sbrgentoo32/32: redc_1 2.1 mul_basecase
panther/64: rsblsh1_n 1.16 addlsh1_n
element/64: rsblsh1_n 2.12 addlsh1_n
zengentoo64/64: rsblsh2_n 1.14 rsblsh_n
panther/64: rsblsh2_n 1.18 addlsh2_n
element/64: rsblsh2_n 2.00 addlsh2_n
gege/64: rsblsh_n 1.54 rsblsh1_n
pilegentoo64/64: rsblsh_n 1.61 rsblsh1_n
jaggentoo64/64: rsblsh_n 1.71 rsblsh2_n
tutugentoo64/64: rsblsh_n 1.72 rsblsh1_n
baygentoo64/64: rsblsh_n 1.74 rsblsh1_n
bobcat/64: rsblsh_n 1.74 rsblsh1_n
baygentoo64/64: rsblsh_n 1.74 rsblsh2_n
jaggentoo64/64: rsblsh_n 1.82 rsblsh1_n
baygentoo64/64: rsh1add_n 1.33 addlsh1_n
beagle/32: rsh1add_n 1.36 addlsh1_n
baygentoo64/64: rsh1sub_n 1.33 addlsh1_n
beagle/32: rsh1sub_n 1.36 addlsh1_n
g5/32: sbpi1_bdiv_r 1.25 mul_basecase
zengentoo64/64: sbpi1_bdiv_r 1.26 mul_basecase
baygentoo32/32: sbpi1_bdiv_r 1.3 mul_basecase
lgentoo4.s390.gentoo.wh0rd.org/64: sbpi1_bdiv_r 1.32 mul_basecase
g5/mode64: sbpi1_bdiv_r 1.34 mul_basecase
kinggentoo32/32: sbpi1_bdiv_r 1.4 mul_basecase
gege/32: sbpi1_bdiv_r 1.41 mul_basecase
nhmgentoo64/64: sbpi1_bdiv_r 1.43 mul_basecase
panther/32: sbpi1_bdiv_r 1.49 mul_basecase
jaggentoo32/32: sbpi1_bdiv_r 1.5 mul_basecase
bobcat/32: sbpi1_bdiv_r 1.58 mul_basecase
cnrgentoo64/64: sbpi1_bdiv_r 1.59 mul_basecase
pnrgentoo64/64: sbpi1_bdiv_r 1.59 mul_basecase
cnrgentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
excagentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
nhmgentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
pilegentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
pnrgentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
tambo/32: sbpi1_bdiv_r 1.6 mul_basecase
tutugentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
zengentoo32/32: sbpi1_bdiv_r 1.6 mul_basecase
element/32: sbpi1_bdiv_r 1.66 mul_basecase
sky/32: sbpi1_bdiv_r 1.87 mul_basecase
paddy/32: sbpi1_bdiv_r 1.89 mul_basecase
skygentoo32/32: sbpi1_bdiv_r 1.9 mul_basecase
sysgentoo32/32: sbpi1_bdiv_r 1.9 mul_basecase
beagle/32: sbpi1_bdiv_r 1.94 mul_basecase
ivygentoo32/32: sbpi1_bdiv_r 1.97 mul_basecase
parks/32: sbpi1_bdiv_r 2 mul_basecase
sbrgentoo32/32: sbpi1_bdiv_r 2 mul_basecase
bwlgentoo32/32: sbpi1_bdiv_r 2.1 mul_basecase
hannahgentoo32/32: sbpi1_bdiv_r 2.1 mul_basecase
hwlgentoo32/32: sbpi1_bdiv_r 2.1 mul_basecase
baygentoo32/32: sqr_basecase 0.65 mul_basecase
element/64: sqr_basecase 0.65 mul_basecase
odc1/32: sqr_basecase 0.65 mul_basecase
pilegentoo32/32: sqr_basecase 0.65 mul_basecase
gege/32: sqr_basecase 0.66 mul_basecase
kinggentoo64/64: sqr_basecase 0.66 mul_basecase
nhmgentoo32/32: sqr_basecase 0.66 mul_basecase
panther/64: sqr_basecase 0.66 mul_basecase
tutugentoo32/32: sqr_basecase 0.66 mul_basecase
excagentoo32/32: sqr_basecase 0.67 mul_basecase
g5/32: sqr_basecase 0.67 mul_basecase
g5/mode32: sqr_basecase 0.67 mul_basecase
gcc115/64: sqr_basecase 0.67 mul_basecase
gcc115/64: sqr_basecase 0.67 mul_basecase
ivygentoo32/32: sqr_basecase 0.67 mul_basecase
bwlgentoo32/32: sqr_basecase 0.68 mul_basecase
paddy/32: sqr_basecase 0.68 mul_basecase
sky/32: sqr_basecase 0.68 mul_basecase
beagle/32: sqr_basecase 0.69 mul_basecase
hwlgentoo32/32: sqr_basecase 0.69 mul_basecase
skygentoo32/32: sqr_basecase 0.69 mul_basecase
sysgentoo32/32: sqr_basecase 0.69 mul_basecase
hannahgentoo32/32: sqr_basecase 0.7 mul_basecase
sbrgentoo32/32: sqr_basecase 0.7 mul_basecase
zengentoo32/32: sqr_basecase 0.7 mul_basecase
cnrgentoo32/32: sqr_basecase 0.71 mul_basecase
gcc1-power7/mode64: sqr_basecase 0.72 mul_basecase
pnrgentoo32/32: sqr_basecase 0.72 mul_basecase
element/32: sqr_basecase 0.73 mul_basecase
parks/32: sqr_basecase 0.73 mul_basecase
tambo/32: sqr_basecase 0.73 mul_basecase
panther/32: sqr_basecase 0.76 mul_basecase
gege/64: sqr_basecase 0.83 mul_basecase
element/32: submul_1.3 1.27 addmul_1.3
cnrgentoo32/32: submul_1.3 1.3 addmul_1.3
hannahgentoo32/32: submul_1.3 1.3 addmul_1.3
hwlgentoo32/32: submul_1.3 1.3 addmul_1.3
pnrgentoo32/32: submul_1.3 1.3 addmul_1.3