• 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
Name
Last commit
Last update
..
386.rules Loading commit data...
386Ops.go Loading commit data...
AMD64.rules Loading commit data...
AMD64Ops.go Loading commit data...
ARM.rules Loading commit data...
ARM64.rules Loading commit data...
ARM64Ops.go Loading commit data...
ARMOps.go Loading commit data...
MIPS.rules Loading commit data...
MIPS64.rules Loading commit data...
MIPS64Ops.go Loading commit data...
MIPSOps.go Loading commit data...
PPC64.rules Loading commit data...
PPC64Ops.go Loading commit data...
README Loading commit data...
S390X.rules Loading commit data...
S390XOps.go Loading commit data...
Wasm.rules Loading commit data...
WasmOps.go Loading commit data...
dec.rules Loading commit data...
dec64.rules Loading commit data...
dec64Ops.go Loading commit data...
decOps.go Loading commit data...
generic.rules Loading commit data...
genericOps.go Loading commit data...
main.go Loading commit data...
rulegen.go Loading commit data...