From 9dd6240201fdd9a9a0ce2aa66df04c174d08cf99 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sat, 30 Aug 2014 19:13:49 +0200 Subject: x86[_64] assembly pack: add Silvermont performance data. Reviewed-by: Rich Salz (cherry picked from commit b59f92e75d334c9281082a02faa6c68afb614fd2) --- crypto/sha/asm/sha1-586.pl | 7 +++++-- crypto/sha/asm/sha256-586.pl | 1 + crypto/sha/asm/sha512-586.pl | 1 + crypto/sha/asm/sha512-x86_64.pl | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) (limited to 'crypto/sha') diff --git a/crypto/sha/asm/sha1-586.pl b/crypto/sha/asm/sha1-586.pl index 59da867848..8377299b1e 100644 --- a/crypto/sha/asm/sha1-586.pl +++ b/crypto/sha/asm/sha1-586.pl @@ -93,16 +93,19 @@ # P4 10.6 - # AMD K8 7.1 - # Core2 7.3 6.0/+22% - -# Atom 12.5 9.3(*)/+35% - # Westmere 7.3 5.5/+33% - # Sandy Bridge 8.8 6.2/+40% 5.1(**)/+73% # Ivy Bridge 7.2 4.8/+51% 4.7(**)/+53% # Haswell 6.5 4.3/+51% 4.1(**)/+58% # Bulldozer 11.6 6.0/+92% # VIA Nano 10.6 7.5/+41% +# Atom 12.5 9.3(*)/+35% +# Silvermont 14.5 9.9(*)/+46% # # (*) Loop is 1056 instructions long and expected result is ~8.25. -# It remains mystery [to me] why ILP is limited to 1.7. +# The discrepancy is because of front-end limitations, so +# called MS-ROM penalties, and on Silvermont even rotate's +# limited parallelism. # # (**) As per above comment, the result is for AVX *plus* sh[rl]d. diff --git a/crypto/sha/asm/sha256-586.pl b/crypto/sha/asm/sha256-586.pl index 0c2a778e7c..6462e45ba7 100644 --- a/crypto/sha/asm/sha256-586.pl +++ b/crypto/sha/asm/sha256-586.pl @@ -53,6 +53,7 @@ # Bulldozer 36 - 27/22 17.0 13.6 # VIA Nano 36 - 25/22 16.8 16.5 # Atom 50 - 30/25 21.9 18.9 +# Silvermont 40 - 34/31 22.9 20.6 # # (*) numbers after slash are for unrolled loop, where applicable; # (**) x86_64 assembly performance is presented for reference diff --git a/crypto/sha/asm/sha512-586.pl b/crypto/sha/asm/sha512-586.pl index 9fc792964f..e96ec00314 100644 --- a/crypto/sha/asm/sha512-586.pl +++ b/crypto/sha/asm/sha512-586.pl @@ -28,6 +28,7 @@ # Bulldozer 121 - 50 14.0 13.5 # VIA Nano 91 - 52 33 14.7 # Atom 126 - 68 48(***) 14.7 +# Silvermont 97 - 58 42(***) 17.5 # # (*) whichever best applicable. # (**) x86_64 assembler performance is presented for reference diff --git a/crypto/sha/asm/sha512-x86_64.pl b/crypto/sha/asm/sha512-x86_64.pl index 476e99fee8..b7b44b4411 100755 --- a/crypto/sha/asm/sha512-x86_64.pl +++ b/crypto/sha/asm/sha512-x86_64.pl @@ -89,6 +89,7 @@ # Bulldozer 21.1 13.6(+54%) 13.6(+54%(***)) 13.5 8.58(+57%) # VIA Nano 23.0 16.5(+39%) - 14.7 - # Atom 23.0 18.9(+22%) - 14.7 - +# Silvermont 27.4 20.6(+33%) - 17.5 - # # (*) whichever best applicable; # (**) switch from ror to shrd stands for fair share of improvement; -- cgit v1.2.3