go/src/crypto/cipher
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
..
benchmark_test.go crypto/cipher: 8K benchmarks for AES stream modes 2018-09-25 23:11:34 +00:00
cbc.go crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
cbc_aes_test.go
cfb.go crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
cfb_test.go all: update comment URLs from HTTP to HTTPS, where possible 2018-06-01 21:52:00 +00:00
cipher.go all: update comment URLs from HTTP to HTTPS, where possible 2018-06-01 21:52:00 +00:00
cipher_test.go
common_test.go
ctr.go crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
ctr_aes_test.go
ctr_test.go
example_test.go crypto/cipher: make stream examples runnable in the playground 2018-10-30 16:23:44 +00:00
export_test.go crypto/cipher: use SIMD for xor on amd64 2018-10-30 17:09:42 +00:00
gcm.go crypto/{aes,cipher,rand}: use binary.{Big,Little}Endian methods 2018-08-21 16:15:16 +00:00
gcm_test.go crypto/aes: implement AES-GCM AEAD for arm64 2018-07-20 03:30:04 +00:00
io.go all: join some chained ifs to unindent code 2017-08-29 20:57:41 +00:00
ofb.go crypto: panic on illegal input and output overlap 2018-06-19 21:06:50 +00:00
ofb_test.go
xor_amd64.go crypto/cipher: use SIMD for xor on amd64 2018-10-30 17:09:42 +00:00
xor_amd64.s crypto/cipher: use SIMD for xor on amd64 2018-10-30 17:09:42 +00:00
xor_generic.go crypto/cipher: add VSX implementation of xorBytes for ppc64x 2018-11-01 15:56:48 +00:00
xor_ppc64x.go crypto/cipher: add VSX implementation of xorBytes for ppc64x 2018-11-01 15:56:48 +00:00
xor_ppc64x.s crypto/cipher: add VSX implementation of xorBytes for ppc64x 2018-11-01 15:56:48 +00:00
xor_test.go crypto/cipher: use SIMD for xor on amd64 2018-10-30 17:09:42 +00:00