Implementation notes: amd64, hedera, crypto_hash/sha512

Computer: hedera
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20210326
Operation: crypto_hash
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1220876 0 011125 828 920opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
1222570 0 010363 812 888opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
1222970 0 09857 812 920opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
1223379 0 010853 828 920opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
1223970 0 015589 820 920opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
1229470 0 013533 820 888opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
1234870 0 013893 820 920opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
1235570 0 013893 820 920opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
1237176 0 012710 836 920opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15044508 0 018914 812 920blocksplusavxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15047552 0 014518 820 920blocksplusavxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15061508 0 017218 812 920blocksplusavxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15062508 0 017218 812 920blocksplusavxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15071707 0 019098 812 920refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15073707 0 017402 812 920refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15089545 0 014246 820 920blocksplusavxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15091670 0 016199 828 920blocksplusavxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15094932 0 016447 828 920refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15128494 0 013672 804 888blocksplusavxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15171707 0 017402 812 920refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15201815 0 017162 812 888refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
15210475 0 013170 804 920blocksplusavxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15255651 0 013824 804 888refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
155527447 0 020015 828 920sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15652650 0 014342 820 920refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15668718 0 014694 820 920refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
15918619 0 013314 804 920refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
164947447 0 020015 828 920sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
166114693 704 01550289 144476 10416cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032920210326
166154835 704 01549103 144476 10416cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032920210326
166314915 992 01261584 144508 10352cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032920210326
166454962 992 01259940 144508 10352cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032920210326
166503749 768 01546883 144492 10384cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032920210326
166594962 992 01259940 144508 10352cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032920210326
166594299 704 01548194 144484 10416cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032920210326
166734755 768 01256485 144500 10320cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032920210326
173035777 0 016806 820 920sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
173425777 0 016806 820 920sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
173804594 0 014346 804 920sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
174494594 0 014346 804 920sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
180255077 0 015838 820 920sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
181565077 0 015838 820 920sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012620210114
183776235 0 019626 812 888sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
184526235 0 019642 812 888sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
185016411 0 020178 812 920sphlib-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
185256411 0 020162 812 920sphlibclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
185326411 0 020178 812 920sphlib-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
185406411 0 020162 812 920sphlibclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
185636411 0 021874 812 920sphlib-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
188185375 0 015600 804 888sphlib-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
188876411 0 021858 812 920sphlibclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114
189295375 0 015600 804 888sphlibclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012620210114

Compiler output

Implementation: blocksplusavx
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -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: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: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: ^
hash.c: hash.c:37: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 + 32,X1);
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: ^
hash.c: hash.c:47:5: 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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -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: error[E0277]: the trait bound `&mut [u8; 64]: std::convert::TryFrom<&mut [u8]>` is not satisfied
try.c: --> src/bin/try-small.rs:17:29
try.c: |
try.c: 17 | let out:&mut[u8;64] = out.try_into().unwrap();
try.c: | ^^^^^^^^ the trait `std::convert::TryFrom<&mut [u8]>` is not implemented for `&mut [u8; 64]`
try.c: |
try.c: = help: the following implementations were found:
try.c: <&'a [T; _] as std::convert::TryFrom<&'a [T]>>
try.c: <&'a mut [T; _] as std::convert::TryFrom<&'a mut [T]>>
try.c: <[T; _] as std::convert::TryFrom<&[T]>>
try.c: = note: required because of the requirements on the impl of `std::convert::TryInto<&mut [u8; 64]>` for `&mut [u8]`
try.c:
try.c: error: aborting due to previous error
try.c:
try.c: For more information about this error, try `rustc --explain E0277`.
try.c: error: could not compile `crypto_hash_sha512`.
try.c:
try.c: To learn more, run the command again with --verbose.

Number of similar (compiler,implementation) pairs: 7, 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 -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_crypto
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
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

Compiler output

Implementation: rust_crypto
Security model: constbranchindex
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: error[E0277]: the trait bound `&mut [u8; 64]: std::convert::TryFrom<&mut [u8]>` is not satisfied
try.c: --> src/bin/measure.rs:17:29
try.c: |
try.c: 17 | let out:&mut[u8;64] = out.try_into().unwrap();
try.c: | ^^^^^^^^ the trait `std::convert::TryFrom<&mut [u8]>` is not implemented for `&mut [u8; 64]`
try.c: |
try.c: = help: the following implementations were found:
try.c: <&'a [T; _] as std::convert::TryFrom<&'a [T]>>
try.c: <&'a mut [T; _] as std::convert::TryFrom<&'a mut [T]>>
try.c: <[T; _] as std::convert::TryFrom<&[T]>>
try.c: = note: required because of the requirements on the impl of `std::convert::TryInto<&mut [u8; 64]>` for `&mut [u8]`
try.c:
try.c: error: aborting due to previous error
try.c:
try.c: For more information about this error, try `rustc --explain E0277`.
try.c: error: could not compile `crypto_hash_sha512`.
try.c:
try.c: To learn more, run the command again with --verbose.

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -Os -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 -O -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
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

Compiler output

Implementation: rust_crypto
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: error[E0277]: the trait bound `&mut [u8; 64]: std::convert::TryFrom<&mut [u8]>` is not satisfied
try.c: --> src/bin/try.rs:17:29
try.c: |
try.c: 17 | let out:&mut[u8;64] = out.try_into().unwrap();
try.c: | ^^^^^^^^ the trait `std::convert::TryFrom<&mut [u8]>` is not implemented for `&mut [u8; 64]`
try.c: |
try.c: = help: the following implementations were found:
try.c: <&'a [T; _] as std::convert::TryFrom<&'a [T]>>
try.c: <&'a mut [T; _] as std::convert::TryFrom<&'a mut [T]>>
try.c: <[T; _] as std::convert::TryFrom<&[T]>>
try.c: = note: required because of the requirements on the impl of `std::convert::TryInto<&mut [u8; 64]>` for `&mut [u8]`
try.c:
try.c: error: aborting due to previous error
try.c:
try.c: For more information about this error, try `rustc --explain E0277`.
try.c: error: could not compile `crypto_hash_sha512`.
try.c:
try.c: To learn more, run the command again with --verbose.

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