• Christopher Swenson's avatar
    math/big: Replace RCLQ + ANDQ with SETCS in unrolled arithmetic assembly. · baf426f1
    Christopher Swenson authored
    benchmark             old ns/op    new ns/op    delta
    BenchmarkAddVW_1              8            8   +0.60%
    BenchmarkAddVW_2             10            9   -8.64%
    BenchmarkAddVW_3             10           10   -4.63%
    BenchmarkAddVW_4             10           11   +3.67%
    BenchmarkAddVW_5             11           12   +5.98%
    BenchmarkAddVW_1e1           18           20   +6.38%
    BenchmarkAddVW_1e2          129          115  -10.85%
    BenchmarkAddVW_1e3         1270         1089  -14.25%
    BenchmarkAddVW_1e4        13376        12145   -9.20%
    BenchmarkAddVW_1e5       130392       125260   -3.94%
    
    benchmark              old MB/s     new MB/s  speedup
    BenchmarkAddVW_1        7709.10      7661.92    0.99x
    BenchmarkAddVW_2       12451.10     13604.00    1.09x
    BenchmarkAddVW_3       17727.81     18721.54    1.06x
    BenchmarkAddVW_4       23552.64     22708.81    0.96x
    BenchmarkAddVW_5       27411.40     25816.22    0.94x
    BenchmarkAddVW_1e1     34063.19     32023.06    0.94x
    BenchmarkAddVW_1e2     49529.97     55360.55    1.12x
    BenchmarkAddVW_1e3     50380.44     58764.18    1.17x
    BenchmarkAddVW_1e4     47843.59     52696.10    1.10x
    BenchmarkAddVW_1e5     49082.60     51093.66    1.04x
    
    R=gri, rsc, r
    CC=golang-dev
    https://golang.org/cl/6480063
    baf426f1
Name
Last commit
Last update
..
big Loading commit data...
cmplx Loading commit data...
rand Loading commit data...
abs.go Loading commit data...
abs_386.s Loading commit data...
abs_amd64.s Loading commit data...
abs_arm.s Loading commit data...
acosh.go Loading commit data...
all_test.go Loading commit data...
asin.go Loading commit data...
asin_386.s Loading commit data...
asin_amd64.s Loading commit data...
asin_arm.s Loading commit data...
asinh.go Loading commit data...
atan.go Loading commit data...
atan2.go Loading commit data...
atan2_386.s Loading commit data...
atan2_amd64.s Loading commit data...
atan2_arm.s Loading commit data...
atan_386.s Loading commit data...
atan_amd64.s Loading commit data...
atan_arm.s Loading commit data...
atanh.go Loading commit data...
bits.go Loading commit data...
cbrt.go Loading commit data...
const.go Loading commit data...
copysign.go Loading commit data...
dim.go Loading commit data...
dim_386.s Loading commit data...
dim_amd64.s Loading commit data...
dim_arm.s Loading commit data...
erf.go Loading commit data...
exp.go Loading commit data...
exp2_386.s Loading commit data...
exp2_amd64.s Loading commit data...
exp2_arm.s Loading commit data...
exp_386.s Loading commit data...
exp_amd64.s Loading commit data...
exp_arm.s Loading commit data...
expm1.go Loading commit data...
expm1_386.s Loading commit data...
expm1_amd64.s Loading commit data...
expm1_arm.s Loading commit data...
export_test.go Loading commit data...
floor.go Loading commit data...
floor_386.s Loading commit data...
floor_amd64.s Loading commit data...
floor_arm.s Loading commit data...
fltasm_amd64.s Loading commit data...
frexp.go Loading commit data...
frexp_386.s Loading commit data...
frexp_amd64.s Loading commit data...
frexp_arm.s Loading commit data...
gamma.go Loading commit data...
hypot.go Loading commit data...
hypot_386.s Loading commit data...
hypot_amd64.s Loading commit data...
hypot_arm.s Loading commit data...
j0.go Loading commit data...
j1.go Loading commit data...
jn.go Loading commit data...
ldexp.go Loading commit data...
ldexp_386.s Loading commit data...
ldexp_amd64.s Loading commit data...
ldexp_arm.s Loading commit data...
lgamma.go Loading commit data...
log.go Loading commit data...
log10.go Loading commit data...
log10_386.s Loading commit data...
log10_amd64.s Loading commit data...
log10_arm.s Loading commit data...
log1p.go Loading commit data...
log1p_386.s Loading commit data...
log1p_amd64.s Loading commit data...
log1p_arm.s Loading commit data...
log_386.s Loading commit data...
log_amd64.s Loading commit data...
log_arm.s Loading commit data...
logb.go Loading commit data...
mod.go Loading commit data...
mod_386.s Loading commit data...
mod_amd64.s Loading commit data...
mod_arm.s Loading commit data...
modf.go Loading commit data...
modf_386.s Loading commit data...
modf_amd64.s Loading commit data...
modf_arm.s Loading commit data...
nextafter.go Loading commit data...
pow.go Loading commit data...
pow10.go Loading commit data...
remainder.go Loading commit data...
remainder_386.s Loading commit data...
remainder_amd64.s Loading commit data...
remainder_arm.s Loading commit data...
signbit.go Loading commit data...
sin.go Loading commit data...
sin_386.s Loading commit data...
sin_amd64.s Loading commit data...
sin_arm.s Loading commit data...
sincos.go Loading commit data...
sincos_386.s Loading commit data...
sincos_amd64.s Loading commit data...
sincos_arm.s Loading commit data...
sinh.go Loading commit data...
sqrt.go Loading commit data...
sqrt_386.s Loading commit data...
sqrt_amd64.s Loading commit data...
sqrt_arm.s Loading commit data...
tan.go Loading commit data...
tan_386.s Loading commit data...
tan_amd64.s Loading commit data...
tan_arm.s Loading commit data...
tanh.go Loading commit data...
unsafe.go Loading commit data...