go/src/math/big
Carlos Eduardo Seo 3cb41be817 math/big: improve performance for AddMulVVW and mulAddVWW for ppc64x
This change adds a better implementation in asm for AddMulVVW and
mulAddVWW for ppc64x, with speedups up to 1.54x.

benchmark                       old ns/op     new ns/op     delta
BenchmarkAddMulVVW/1-8          6.58          6.29          -4.41%
BenchmarkAddMulVVW/2-8          7.43          7.25          -2.42%
BenchmarkAddMulVVW/3-8          8.95          8.15          -8.94%
BenchmarkAddMulVVW/4-8          10.1          9.37          -7.23%
BenchmarkAddMulVVW/5-8          12.0          10.7          -10.83%
BenchmarkAddMulVVW/10-8         22.1          20.1          -9.05%
BenchmarkAddMulVVW/100-8        211           154           -27.01%
BenchmarkAddMulVVW/1000-8       2046          1450          -29.13%
BenchmarkAddMulVVW/10000-8      20407         14793         -27.51%
BenchmarkAddMulVVW/100000-8     223857        145548        -34.98%

benchmark                       old MB/s     new MB/s     speedup
BenchmarkAddMulVVW/1-8          9719.88      10175.79     1.05x
BenchmarkAddMulVVW/2-8          17233.97     17657.54     1.02x
BenchmarkAddMulVVW/3-8          21446.05     23550.49     1.10x
BenchmarkAddMulVVW/4-8          25375.70     27334.33     1.08x
BenchmarkAddMulVVW/5-8          26650.52     30029.34     1.13x
BenchmarkAddMulVVW/10-8         28984.29     31833.68     1.10x
BenchmarkAddMulVVW/100-8        30249.41     41531.69     1.37x
BenchmarkAddMulVVW/1000-8       31273.35     44108.54     1.41x
BenchmarkAddMulVVW/10000-8      31360.47     43263.54     1.38x
BenchmarkAddMulVVW/100000-8     28589.58     43971.66     1.54x

Change-Id: I8a8105d4da3592afdef3125757a99f378a0254bb
Reviewed-on: https://go-review.googlesource.com/53931
Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
2017-08-11 13:59:52 +00:00
..
accuracy_string.go
arith.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_386.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_amd64.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_amd64p32.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_arm.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_arm64.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_decl.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_decl_pure.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_decl_s390x.go
arith_mips64x.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_mipsx.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_ppc64x.s math/big: improve performance for AddMulVVW and mulAddVWW for ppc64x 2017-08-11 13:59:52 +00:00
arith_s390x.s math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
arith_s390x_test.go math/big: fix s390x test build tags 2017-02-14 19:44:35 +00:00
arith_test.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
bits_test.go
calibrate_test.go
decimal.go
decimal_test.go
doc.go
example_rat_test.go
example_test.go
float.go math/big: avoid unneeded sticky bit calculations 2017-08-11 09:52:30 +00:00
float_test.go math/big: fix Add, Sub when receiver aliases 2nd operand 2017-05-31 10:28:05 +00:00
floatconv.go
floatconv_test.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
floatexample_test.go
floatmarsh.go all: spell "marshal" and "unmarshal" consistently 2016-11-12 00:13:35 +00:00
floatmarsh_test.go
ftoa.go
gcd_test.go
hilbert_test.go
int.go math/big: simplify bool expression 2017-02-14 23:34:25 +00:00
int_test.go all: fix minor misspellings 2017-04-03 23:19:07 +00:00
intconv.go
intconv_test.go
intmarsh.go all: spell "marshal" and "unmarshal" consistently 2016-11-12 00:13:35 +00:00
intmarsh_test.go
nat.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
nat_test.go math/big: use math/bits where appropriate 2017-02-24 19:19:02 +00:00
natconv.go math/big: use math/bits where appropriate 2017-02-24 19:19:02 +00:00
natconv_test.go math/big: replace local versions of bitLen, nlz with math/bits versions 2017-03-23 19:43:09 +00:00
prime.go math/big: add Baillie-PSW test to (*Int).ProbablyPrime 2016-11-22 02:05:47 +00:00
prime_test.go all: fix some printf format strings 2017-02-14 02:09:30 +00:00
rat.go
rat_test.go
ratconv.go all: remove some manual hyphenation 2017-08-06 16:14:46 +00:00
ratconv_test.go
ratmarsh.go
ratmarsh_test.go
roundingmode_string.go