• Carlos Eduardo Seo's avatar
    crypto/cipher: add VSX implementation of xorBytes for ppc64x · 0ff6e5f1
    Carlos Eduardo Seo authored
    This change adds asm implementations of xorBytes for ppc64x that
    takes advantage of VSX registers and instructions.
    
    name                   old time/op    new time/op     delta
    XORBytes/8Bytes-8        16.4ns ± 0%     11.1ns ± 0%   -32.32%  (p=0.000 n=5+4)
    XORBytes/128Bytes-8      45.6ns ± 0%     16.2ns ± 0%   -64.50%  (p=0.008 n=5+5)
    XORBytes/2048Bytes-8      433ns ±13%      129ns ± 1%   -70.29%  (p=0.000 n=5+4)
    XORBytes/32768Bytes-8    7.16µs ± 0%     1.83µs ± 0%   -74.39%  (p=0.008 n=5+5)
    
    name                   old speed      new speed       delta
    XORBytes/8Bytes-8       488MB/s ± 0%    721MB/s ± 0%   +47.75%  (p=0.016 n=5+4)
    XORBytes/128Bytes-8    2.80GB/s ± 0%   7.89GB/s ± 0%  +181.33%  (p=0.008 n=5+5)
    XORBytes/2048Bytes-8   4.77GB/s ±13%  15.87GB/s ± 0%  +232.68%  (p=0.016 n=5+4)
    XORBytes/32768Bytes-8  4.58GB/s ± 0%  17.88GB/s ± 0%  +290.47%  (p=0.008 n=5+5)
    
    Change-Id: Ic27d9b858f8ec2d597fdabc68a288d6844eba701
    Reviewed-on: https://go-review.googlesource.com/c/145997
    Run-TryBot: Carlos Eduardo Seo <cseo@linux.vnet.ibm.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarLynn Boger <laboger@linux.vnet.ibm.com>
    0ff6e5f1
xor_ppc64x.go 641 Bytes