Commit 402f177e authored by Lynn Boger's avatar Lynn Boger
Browse files

cmd/compile: fix intrinsic setting for mul64, add64 on ppc64le

I found a performance regression between the runtime.Hash
benchmarks when comparing Go 1.16 to latest on ppc64le. This
was due to the addition of Mul64 to runtime/internal/math
with the comments that this should be treated as an intrinsic
on platforms where available. However this is was not being
intrinsified on ppc64le because the code in ssagen/ssa.go didn't
correctly specify ppc64le. It had the argument for ArchPPC64
but should have also included ArchPPC64LE.

Treating Mul64 as an intrinsic shows this improvement, and these
results are better than Go 1.16:

Hash5        27.0ns ± 0%     14.0ns ± 0%   -48.1
Hash16       26.6ns ± 0%     14.0ns ± 0%   -47.3
Hash64       50.7ns ± 0%     17.9ns ± 0%   -64.6
Hash1024      500ns ± 0%       99ns ± 0%   -80.1
Hash65536    30.6µs ± 0%      4.0µs ± 0%   -86

Many of the Map related benchmarks in the runtime package also showed
improvement once Mul64 is intrinsified.

Change-Id: I3b5ce637b1620348d81a30cfc359c97ab63aae0f
Reviewed-on: https://go-review.googlesource.com/c/go/+/317303


Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
Reviewed-by: default avatarPaul Murphy <murp@ibm.com>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
Reviewed-by: default avatarCherry Mui <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
parent 51ff3a69
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment