]> Cypherpunks repositories - gostls13.git/commit
internal/bytealg: improve performance of IndexByte for ppc64x
authorCarlos Eduardo Seo <cseo@linux.vnet.ibm.com>
Fri, 21 Sep 2018 19:06:32 +0000 (16:06 -0300)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 25 Sep 2018 20:25:25 +0000 (20:25 +0000)
commit23f75541946884167364a5cc513699661dcfe8ff
treebb9e6b04b97b9672e67e748d7d16b514519e686a
parent5bba5053675f102a3a81242e8f7551791ae5a56e
internal/bytealg: improve performance of IndexByte for ppc64x

Use addi+lvx instruction fusion and remove register dependencies in
the main loop to improve performance.

benchmark                      old ns/op     new ns/op     delta
BenchmarkIndexByte/10-192      9.86          9.75          -1.12%
BenchmarkIndexByte/32-192      15.6          11.2          -28.21%
BenchmarkIndexByte/4K-192      155           97.6          -37.03%
BenchmarkIndexByte/4M-192      171790        129650        -24.53%
BenchmarkIndexByte/64M-192     6530982       5018424       -23.16%

benchmark                      old MB/s     new MB/s     speedup
BenchmarkIndexByte/10-192      1013.72      1025.76      1.01x
BenchmarkIndexByte/32-192      2049.47      2868.01      1.40x
BenchmarkIndexByte/4K-192      26422.69     41975.67     1.59x
BenchmarkIndexByte/4M-192      24415.17     32350.74     1.33x
BenchmarkIndexByte/64M-192     10275.46     13372.50     1.30x

Change-Id: Iedf17f01f374d58e85dcd6a972209bfcb7eb6063
Reviewed-on: https://go-review.googlesource.com/137415
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>
src/internal/bytealg/indexbyte_ppc64x.s