Implementation notes: amd64, hydra5, crypto_hash/sha512

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1791570 0 013015 868 896opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
1792370 0 012127 868 896opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
1795970 0 013015 868 896opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
17970115 0 011514 820 928opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1797870 0 010791 868 896opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
1798170 0 010033 860 896opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
18007112 0 012331 828 928opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
18024106 0 010478 804 928opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
18039112 0 013699 828 928opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1964310247 0 023725 804 960sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
1967310247 0 023725 804 960sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
198891010 0 019485 804 960refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
19920606 0 015530 852 896refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
19920638 0 018528 860 896refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
19928638 0 017640 860 896refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
19936638 0 018528 860 896refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
19938700 0 016368 860 896refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
200461006 0 018149 804 960refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
20062679 0 015976 780 928refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
202115437 0 016772 796 960sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
202335437 0 016772 796 960sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
204695158 928 01756405 144484 10432cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
204944763 768 01753339 144292 10336cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
205035338 992 01754642 144300 10336cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
205224426 992 01753569 144492 10400cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
205245015 704 01756819 144252 10432cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
205265174 768 01756586 144300 10336cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
205375219 768 01755746 144300 10336cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
205584905 928 01754995 144484 10432cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
20578707 0 017036 796 960refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
209595817 0 016488 860 896sphlib-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
209815817 0 016488 860 896sphlibclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
212036568 0 018709 804 960sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
212076568 0 018709 804 960sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
215344847 0 015152 780 928sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
215364847 0 015152 780 928sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121420231212
215446080 0 018096 860 896sphlib-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
215446080 0 018984 860 896sphlib-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
215466080 0 018968 860 896sphlibclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
215476080 0 018968 860 896sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
215486080 0 018080 860 896sphlibclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
215486080 0 018984 860 896sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
223584942 0 014882 852 896sphlib-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
223724942 0 014882 852 896sphlibclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121420231212
232712134 0 014096 860 896compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122220231222
246842439 0 015280 860 896compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122220231222
246862439 0 015280 860 896compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122220231222
271275954 0 019413 804 960compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122220231222
285841782 0 012408 860 896compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122220231222
294021758 0 011650 852 896compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122220231222
294151750 0 012024 780 928compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122220231222
321361845 0 013148 796 960compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122220231222
327232218 0 014333 804 960compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122220231222

Compiler output

Implementation: blocksplusavx
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:33:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'avx'
hash.c: X0 = load256(iv);
hash.c: ^
hash.c: hash.c:22:21: note: expanded from macro 'load256'
hash.c: #define load256(x) (_mm256_loadu_si256((void *) (x)))
hash.c: ^
hash.c: hash.c:33:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
hash.c: hash.c:22:21: note: expanded from macro 'load256'
hash.c: #define load256(x) (_mm256_loadu_si256((void *) (x)))
hash.c: ^
hash.c: hash.c:34:8: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'avx'
hash.c: X1 = load256(iv + 32);
hash.c: ^
hash.c: hash.c:22:21: note: expanded from macro 'load256'
hash.c: #define load256(x) (_mm256_loadu_si256((void *) (x)))
hash.c: ^
hash.c: hash.c:34:8: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
hash.c: hash.c:22:21: note: expanded from macro 'load256'
hash.c: #define load256(x) (_mm256_loadu_si256((void *) (x)))
hash.c: ^
hash.c: hash.c:36:3: error: always_inline function '_mm256_storeu_si256' requires target feature 'avx', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'avx'
hash.c: store256(h,X0);
hash.c: ^
hash.c: hash.c:23:24: note: expanded from macro 'store256'
hash.c: #define store256(x,y) (_mm256_storeu_si256((void *) (x),y))
hash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE blocksplusavx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE blocksplusavx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE blocksplusavx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE blocksplusavx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE blocksplusavx

Compiler output

Implementation: blocksplusavx
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c: In function 'crypto_hash_sha512_blocksplusavx_constbranchindex':
hash.c: hash.c:33:6: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
hash.c: 33 | X0 = load256(iv);
hash.c: | ^
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
hash.c: from hash.c:1:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
hash.c: 933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
hash.c: | ^~~~~~~~~~~~~~~~~~~
hash.c: hash.c:23:24: note: called from here
hash.c: 23 | #define store256(x,y) (_mm256_storeu_si256((void *) (x),y))
hash.c: | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:37:3: note: in expansion of macro 'store256'
hash.c: 37 | store256(h + 32,X1);
hash.c: | ^~~~~~~~
hash.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
hash.c: from hash.c:1:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:933:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
hash.c: 933 | _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
hash.c: | ^~~~~~~~~~~~~~~~~~~
hash.c: hash.c:23:24: note: called from here
hash.c: 23 | #define store256(x,y) (_mm256_storeu_si256((void *) (x),y))
hash.c: | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
hash.c: hash.c:36:3: note: in expansion of macro 'store256'
hash.c: 36 | store256(h,X0);
hash.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE blocksplusavx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE blocksplusavx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE blocksplusavx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE blocksplusavx

Compiler output

Implementation: rust_crypto
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: env: 'cargo': No such file or directory

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2