openssl/crypto/modes
Andy Polyakov 64d92d7498 x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results.
"Optimize" is in quotes because it's rather a "salvage operation"
for now. Idea is to identify processor capability flags that
drive Knights Landing to suboptimial code paths and mask them.
Two flags were identified, XSAVE and ADCX/ADOX. Former affects
choice of AES-NI code path specific for Silvermont (Knights Landing
is of Silvermont "ancestry"). And 64-bit ADCX/ADOX instructions are
effectively mishandled at decode time. In both cases we are looking
at ~2x improvement.

AVX-512 results cover even Skylake-X :-)

Hardware used for benchmarking courtesy of Atos, experiments run by
Romain Dolbeau <romain.dolbeau@atos.net>. Kudos!

Reviewed-by: Rich Salz <rsalz@openssl.org>
2017-07-21 14:07:32 +02:00
..
asm x86_64 assembly pack: "optimize" for Knights Landing, add AVX-512 results. 2017-07-21 14:07:32 +02:00
build.info Alpha assembly pack: make it work on Linux. 2016-05-04 08:51:08 +02:00
cbc128.c Don't call memcpy if len is zero. 2017-02-20 19:17:53 -05:00
ccm128.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
cfb128.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
ctr128.c modes/ctr128.c: fix false carry in counter increment procedure. 2016-11-25 17:22:21 +01:00
cts128.c Convert modes selftests (cts128 and gcm128) to internal test 2016-11-03 13:13:31 +01:00
gcm128.c Convert modes selftests (cts128 and gcm128) to internal test 2016-11-03 13:13:31 +01:00
modes_lcl.h Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
ocb128.c modes/ocb128.c: address undefined behaviour warning. 2017-05-26 10:52:11 +02:00
ofb128.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
wrap128.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00
xts128.c Copyright consolidation 06/10 2016-05-17 14:51:04 -04:00