]> Cypherpunks repositories - gostls13.git/commit
cmd/compile/internal/amd64: add MOVLloadidx8 and MOVLstoreidx8
authorIlya Tocar <ilya.tocar@intel.com>
Tue, 20 Jun 2017 20:36:34 +0000 (15:36 -0500)
committerIlya Tocar <ilya.tocar@intel.com>
Fri, 1 Sep 2017 21:25:25 +0000 (21:25 +0000)
commita4e1a72f0a40acf84f4b7bd982f3d9cffdf01cfd
tree854355a6e60d9bab55a226f73d8350e793851f87
parent605331f43ee228588b61c5793ce0f754d8c54324
cmd/compile/internal/amd64: add MOVLloadidx8 and MOVLstoreidx8

Currently we only use 1 and 4 as a scale for indexed 4-byte load.
In code generated in #20711 we can use indexed load with scale=8,
to improve performance:

name  old time/op  new time/op  delta
GM-6   108µs ± 0%    95µs ± 0%  -12.06%  (p=0.000 n=10+10)

So add new ops and combine loadidx1(shift 3..).. into loadidx8,
same for stores.

Change-Id: I5ed1c250ac40960e20606580cf9de221e75b72f1
Reviewed-on: https://go-review.googlesource.com/46134
Run-TryBot: Ilya Tocar <ilya.tocar@intel.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Keith Randall <khr@golang.org>
src/cmd/compile/internal/amd64/ssa.go
src/cmd/compile/internal/ssa/gen/AMD64.rules
src/cmd/compile/internal/ssa/gen/AMD64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteAMD64.go