Implementation notes: amd64, wooden, crypto_hash/sha512

Computer: wooden
Microarchitecture: amd64; Goldmont (506c9)
Architecture: amd64
CPU ID: GenuineIntel-000506c9-1fc9cbf5
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2011670 0 09304 752 768opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
2012070 0 012508 792 728opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
2012670 0 011588 792 728opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
2012670 0 013892 792 728opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
2013270 0 010250 784 728opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
2013478 0 010853 776 768opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
2013478 0 012069 776 768opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
2014281 0 010316 768 768opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
2015270 0 09754 784 728opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22188967 0 016045 752 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
22190793 0 015425 784 728refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22190678 0 013479 776 728refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22194793 0 017729 784 728refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22196799 0 016345 784 728refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22202703 0 013991 776 728refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
22326622 0 012952 728 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
22336960 0 014845 752 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
22802629 0 013972 744 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
231448134 0 020061 752 800sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
232248134 0 020061 752 800sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23526? ? ?294155 11177 1288rust_cryptoclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23528? ? ?298137 11185 1288rust_cryptoclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23562? ? ?296753 11185 1288rust_cryptoclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23564? ? ?294603 11177 1288rust_cryptoclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23564? ? ?295116 11185 1328rust_cryptogcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23572? ? ?296316 11185 1328rust_cryptogcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23580? ? ?294692 11185 1328rust_cryptogcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23590? ? ?293756 11177 1328rust_cryptogcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23612? ? ?295833 11185 1288rust_cryptoclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23622? ? ?291640 10872 1288rust_sha2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23622? ? ?294238 10880 1288rust_sha2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23622? ? ?292601 10880 1328rust_sha2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23638? ? ?295622 10880 1288rust_sha2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23646? ? ?292177 10880 1328rust_sha2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23648? ? ?292088 10872 1288rust_sha2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23648? ? ?293801 10880 1328rust_sha2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
23654? ? ?293318 10880 1288rust_sha2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
23672? ? ?291241 10872 1328rust_sha2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
248525257 0 015468 744 800sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
248565257 0 015468 744 800sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249504728 704 01659406 144360 10264cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249544838 928 01659116 144592 10264cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249803781 992 01656528 144592 10232cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249824599 0 013792 728 768sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249844760 768 01366007 144360 10168cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
249864599 0 013792 728 768sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
249884976 992 01367674 144368 10168cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
249984926 992 01369914 144368 10168cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
250064633 928 01658346 144592 10264cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
251226208 0 018585 784 728sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
251426208 0 018585 784 728sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
253428604 1576 01373468 144952 10168cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
256006032 0 016773 752 800sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
256026032 0 016773 752 800sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231215
268706313 0 020081 784 728sphlibclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
268746313 0 017793 784 728sphlib-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
268766313 0 017777 784 728sphlibclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
268786313 0 020081 784 728sphlib-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
272785289 0 014935 776 728sphlib-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
272805289 0 014935 776 728sphlibclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
287085493 0 015679 776 728sphlibclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
287105493 0 015679 776 728sphlib-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231215
289922607 0 016321 784 728compactclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012620240107
292202332 0 013745 784 728compactclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012620240107
294462342 0 014673 784 728compactclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012620240107
329945823 0 017685 752 800compactgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012620240107
353221981 0 011575 776 728compactclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012620240107
359641760 0 011892 744 800compactgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012620240107
371081821 0 011919 776 728compactclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024012620240107
375941642 0 010776 728 768compactgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012620240107
376002081 0 012773 752 800compactgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024012620240107

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/10/include/immintrin.h:51,
hash.c: from hash.c:1:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:926:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
hash.c: 926 | _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/10/include/immintrin.h:51,
hash.c: from hash.c:1:
hash.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:926:1: error: inlining failed in call to 'always_inline' '_mm256_storeu_si256': target specific option mismatch
hash.c: 926 | _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