• Richard Musiol's avatar
    math, math/bits: add intrinsics for wasm · 5ee1b849
    Richard Musiol authored
    This commit adds compiler intrinsics for the packages math and
    math/bits on the wasm architecture for better performance.
    
    benchmark                        old ns/op     new ns/op     delta
    BenchmarkCeil                    8.31          3.21          -61.37%
    BenchmarkCopysign                5.24          3.88          -25.95%
    BenchmarkAbs                     5.42          3.34          -38.38%
    BenchmarkFloor                   8.29          3.18          -61.64%
    BenchmarkRoundToEven             9.76          3.26          -66.60%
    BenchmarkSqrtLatency             8.13          4.88          -39.98%
    BenchmarkSqrtPrime               5246          3535          -32.62%
    BenchmarkTrunc                   8.29          3.15          -62.00%
    BenchmarkLeadingZeros            13.0          4.23          -67.46%
    BenchmarkLeadingZeros8           4.65          4.42          -4.95%
    BenchmarkLeadingZeros16          7.60          4.38          -42.37%
    BenchmarkLeadingZeros32          10.7          4.48          -58.13%
    BenchmarkLeadingZeros64          12.9          4.31          -66.59%
    BenchmarkTrailingZeros           6.52          4.04          -38.04%
    BenchmarkTrailingZeros8          4.57          4.14          -9.41%
    BenchmarkTrailingZeros16         6.69          4.16          -37.82%
    BenchmarkTrailingZeros32         6.97          4.23          -39.31%
    BenchmarkTrailingZeros64         6.59          4.00          -39.30%
    BenchmarkOnesCount               7.93          3.30          -58.39%
    BenchmarkOnesCount8              3.56          3.19          -10.39%
    BenchmarkOnesCount16             4.85          3.19          -34.23%
    BenchmarkOnesCount32             7.27          3.19          -56.12%
    BenchmarkOnesCount64             8.08          3.28          -59.41%
    BenchmarkRotateLeft              4.88          3.80          -22.13%
    BenchmarkRotateLeft64            5.03          3.63          -27.83%
    
    Change-Id: Ic1e0c2984878be8defb6eb7eb6ee63765c793222
    Reviewed-on: https://go-review.googlesource.com/c/go/+/165177
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarCherry Zhang <cherryyz@google.com>
    5ee1b849
run.go 44.7 KB