• Lynn Boger's avatar
    cmd/compile: add rules to use index regs for ppc64x · 85c9c859
    Lynn Boger authored
    The following adds support for load and store instructions
    with index registers, and adds rules to take advantage of
    those instructions.
    
    Examples of improvements:
    
    crypto/rc4:
    name     old time/op   new time/op   delta
    RC4_128    445ns ± 0%    404ns ± 0%   -9.21%  (p=0.029 n=4+4)
    RC4_1K    3.46µs ± 0%   3.13µs ± 0%   -9.29%  (p=0.029 n=4+4)
    RC4_8K    27.0µs ± 0%   24.7µs ± 0%   -8.83%  (p=0.029 n=4+4)
    
    crypto/des:
    name         old time/op    new time/op    delta
    Encrypt         276ns ± 0%     264ns ± 0%  -4.35%  (p=0.029 n=4+4)
    Decrypt         278ns ± 0%     263ns ± 0%  -5.40%  (p=0.029 n=4+4)
    TDESEncrypt     683ns ± 0%     645ns ± 0%  -5.56%  (p=0.029 n=4+4)
    TDESDecrypt     684ns ± 0%     641ns ± 0%  -6.29%  (p=0.029 n=4+4)
    
    crypto/sha1:
    name          old time/op    new time/op    delta
    Hash8Bytes       661ns ± 0%     635ns ± 0%  -3.93%  (p=1.000 n=1+1)
    Hash320Bytes    2.70µs ± 0%    2.56µs ± 0%  -5.26%  (p=1.000 n=1+1)
    Hash1K          7.14µs ± 0%    6.78µs ± 0%  -5.03%  (p=1.000 n=1+1)
    Hash8K          52.1µs ± 0%    49.4µs ± 0%  -5.14%  (p=1.000 n=1+1)
    
    Change-Id: I03810e90fcc20029975a323f06bfa086c973c2b0
    Reviewed-on: https://go-review.googlesource.com/c/135975
    Run-TryBot: Lynn Boger <laboger@linux.vnet.ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarMichael Munday <mike.munday@ibm.com>
    85c9c859
rewritePPC64.go 663 KB