• Russ Cox's avatar
    cmd/internal/gc: use hardware instruction for math.Sqrt (amd64/arm) · 92dba0d2
    Russ Cox authored
    I first prototyped this change in Sept 2011, and I discarded it
    because it made no difference in the obvious benchmark loop.
    It still makes no difference in the obvious benchmark loop,
    but in a less obvious one, doing some extra computation
    around the calls to Sqrt, not making the call does have a
    significant effect.
    
    benchmark                 old ns/op     new ns/op     delta
    BenchmarkSqrt             4.56          4.57          +0.22%
    BenchmarkSqrtIndirect     4.56          4.56          +0.00%
    BenchmarkSqrtGo           69.4          69.4          +0.00%
    BenchmarkSqrtPrime        4417          3647          -17.43%
    
    This is a warmup for using hardware expansions for some
    calls to 1-line assembly routines in the runtime (for example getg).
    
    Change-Id: Ie66be23f8c09d0f7dc4ddd7ca8a93cfce28f55a4
    Reviewed-on: https://go-review.googlesource.com/8356Reviewed-by: 's avatarRob Pike <r@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    92dba0d2
gsubr.go 26.1 KB