]> Cypherpunks repositories - gostls13.git/commit
cmd/compile: intrinsify math/bits.Sub64 for arm64
authorerifan01 <eric.fang@arm.com>
Wed, 20 Mar 2019 12:46:20 +0000 (12:46 +0000)
committerCherry Zhang <cherryyz@google.com>
Mon, 22 Apr 2019 14:40:20 +0000 (14:40 +0000)
commitf8f265b9cfd57970b2bc8b3dd8531cedaf57ccc1
tree4c6bd812e0cddace3c11512e5b27013f9102b7f7
parentdb42bb3b70fe82e9d33011fb36b4171897663ccf
cmd/compile: intrinsify math/bits.Sub64 for arm64

This CL instrinsifies Sub64 with arm64 instruction sequence NEGS, SBCS,
NGC and NEG, and optimzes the case of borrowing chains.

Benchmarks:
name              old time/op       new time/op       delta
Sub-64            2.500000ns +- 0%  2.048000ns +- 1%  -18.08%  (p=0.000 n=10+10)
Sub32-64          2.500000ns +- 0%  2.500000ns +- 0%     ~     (all equal)
Sub64-64          2.500000ns +- 0%  2.080000ns +- 0%  -16.80%  (p=0.000 n=10+7)
Sub64multiple-64  7.090000ns +- 0%  2.090000ns +- 0%  -70.52%  (p=0.000 n=10+10)

Change-Id: I3d2664e009a9635e13b55d2c4567c7b34c2c0655
Reviewed-on: https://go-review.googlesource.com/c/go/+/159018
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
src/cmd/compile/internal/arm64/ssa.go
src/cmd/compile/internal/gc/ssa.go
src/cmd/compile/internal/ssa/gen/ARM64.rules
src/cmd/compile/internal/ssa/gen/ARM64Ops.go
src/cmd/compile/internal/ssa/opGen.go
src/cmd/compile/internal/ssa/rewriteARM64.go
test/codegen/mathbits.go