go/src/crypto
Carlos Eduardo Seo 0ff6e5f1b4 crypto/cipher: add VSX implementation of xorBytes for ppc64x
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: Lynn Boger <laboger@linux.vnet.ibm.com>
2018-11-01 15:56:48 +00:00
..
aes crypto/aes: remove redundant nil check around loop 2018-10-17 01:28:58 +00:00
cipher crypto/cipher: add VSX implementation of xorBytes for ppc64x 2018-11-01 15:56:48 +00:00
des crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
dsa crypto: randomly read an extra byte of randomness in some places. 2018-06-07 15:09:25 +00:00
ecdsa crypto/ecdsa: add a package level example 2018-08-02 22:14:25 +00:00
elliptic crypto/elliptic: implement P256 for arm64 2018-07-19 18:40:51 +00:00
hmac all: update comment URLs from HTTP to HTTPS, where possible 2018-06-01 21:52:00 +00:00
internal crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
md5 all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
rand crypto: add AIX operating system 2018-10-10 14:55:17 +00:00
rc4 crypto/rc4: remove assembler implementations 2018-08-21 19:49:06 +00:00
rsa all: use strings.ReplaceAll and bytes.ReplaceAll where applicable 2018-09-26 22:14:25 +00:00
sha1 all: this big patch remove whitespace from assembly files 2018-10-03 15:28:51 +00:00
sha256 all: use internal/cpu feature variables directly 2018-08-20 14:47:07 +00:00
sha512 crypto, internal/cpu: fix s390x AES feature detection and update SHA implementations 2018-06-11 11:41:31 +00:00
subtle crypto/subtle: simplify and speed up constant-time primitives 2017-11-10 03:47:57 +00:00
tls crypto/tls: cache Leaf certificate during BuildNameToCertificate 2018-10-31 14:39:11 +00:00
x509 crypto/tls,crypto/x509: normalize RFC references 2018-10-17 03:58:03 +00:00
crypto.go
issue21104_test.go