]> Cypherpunks repositories - gostls13.git/commit
internal/bytealg: port bytes.Index and bytes.Count to reg ABI on ppc64x
authorArchana R <aravind5@in.ibm.com>
Wed, 13 Oct 2021 08:50:06 +0000 (03:50 -0500)
committerLynn Boger <laboger@linux.vnet.ibm.com>
Tue, 19 Oct 2021 18:22:59 +0000 (18:22 +0000)
commit6c3cd5d2eb7149c9c1ced7d70c3f4157f27c1588
tree64ef7d5438d1d9e5fd2a8a4464e8fbae0194f0d7
parentad7db1f90fb66f00f5b020360aabd9f27d1c764f
internal/bytealg: port bytes.Index and bytes.Count to reg ABI on ppc64x

This change adds support for the reg ABI to the Index and Count
functions for ppc64/ppc64le.

Most Index and Count benchmarks show improvement in performance on
POWER9 with this change. Similar numbers observed on POWER8 and POWER10.

name                             old time/op    new time/op    delta
Index/32                         71.0ns ± 0%    67.9ns ± 0%   -4.42% (p=0.001 n=7+6)
IndexEasy/10                     17.5ns ± 0%    17.2ns ± 0%   -1.30% (p=0.001 n=7+7)

name             old time/op    new time/op    delta
Count/10           26.6ns ± 0%    25.0ns ± 1%   -6.02%  (p=0.001 n=7+7)
Count/32           78.6ns ± 0%    74.7ns ± 0%   -4.97%  (p=0.001 n=7+7)
Count/4K           5.03µs ± 0%    5.03µs ± 0%   -0.07%  (p=0.000 n=6+7)
CountEasy/10       26.9ns ± 0%    25.2ns ± 1%   -6.31%  (p=0.001 n=7+7)
CountSingle/32     11.8ns ± 0%     9.9ns ± 0%  -15.70%  (p=0.002 n=6+6)

Change-Id: Ibd146c04f8107291c55f9e6100b8264dfccc41ae
Reviewed-on: https://go-review.googlesource.com/c/go/+/355509
Reviewed-by: Cherry Mui <cherryyz@google.com>
Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com>
Run-TryBot: Cherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
src/internal/bytealg/count_ppc64x.s
src/internal/bytealg/index_ppc64x.s