Home GnuPG

Add i386/SSSE3 implementation of SHA512

Description

Add i386/SSSE3 implementation of SHA512

* LICENSES: Add 'sha512-ssse3-i386.c'.
* configure.ac: Add 'sha512-ssse3-i386.lo'.
* cipher/Makefile.am: Add 'sha512-ssse3-i386.c'.
* cipher/sha512-ssse3-i386.c: New.
* cipher/sha512.c (USE_SSSE3_I386, _gcry_sha512_transform_i386_ssse3)
(do_sha512_transform_i386_ssse3): New.
(_gcry_sha512_transform_arm) [USE_SSSE3_I386]: Use i386/SSSE3 transform
function if supported by CPU.

Benchmark on AMD Ryzen 7 3700X:

Before:

|  nanosecs/byte   mebibytes/sec   cycles/byte  auto Mhz

SHA512 | 12.58 ns/B 75.79 MiB/s 55.06 c/B 4375

After (~4.5x faster):

|  nanosecs/byte   mebibytes/sec   cycles/byte  auto Mhz

SHA512 | 2.78 ns/B 343.3 MiB/s 12.09 c/B 4351

  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Nov 5 2019, 9:06 PM
Parents
rCfbb26c3ac514: Change license of dumpsexp.c to LGPL.
Branches
Unknown
Tags
Unknown