• erifan01's avatar
    cmd/compile: intrinsify math/bits.Add64 for arm64 · 5714c91b
    erifan01 authored
    This CL instrinsifies Add64 with arm64 instruction sequence ADDS, ADCS
    and ADC, and optimzes the case of carry chains.The CL also changes the
    test code so that the intrinsic implementation can be tested.
    
    Benchmarks:
    name               old time/op       new time/op       delta
    Add-224            2.500000ns +- 0%  2.090000ns +- 4%  -16.40%  (p=0.000 n=9+10)
    Add32-224          2.500000ns +- 0%  2.500000ns +- 0%     ~     (all equal)
    Add64-224          2.500000ns +- 0%  1.577778ns +- 2%  -36.89%  (p=0.000 n=10+9)
    Add64multiple-224  6.000000ns +- 0%  2.000000ns +- 0%  -66.67%  (p=0.000 n=10+10)
    
    Change-Id: I6ee91c9a85c16cc72ade5fd94868c579f16c7615
    Reviewed-on: https://go-review.googlesource.com/c/go/+/159017
    Run-TryBot: Ben Shi <powerman1st@163.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    5714c91b
ssa.go 29.1 KB