Implementation notes: amd64, kizomba, crypto_hash/sha512

Computer: kizomba
Architecture: amd64
CPU ID: GenuineIntel-000906e9-bfebfbff
SUPERCOP version: 20220506
Operation: crypto_hash
Primitive: sha512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
881570 0 013464 784 752opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
882370 0 013448 784 752opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
882370 0 09782 776 736opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
882470 0 013448 784 752opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
882573 0 09905 776 776opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
882670 0 012664 784 736opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
883376 0 014454 800 776opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
883379 0 010813 792 776opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
884276 0 011013 792 776opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
8847654 0 019401 776 752refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8848484 0 019241 776 752blocksplusavxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8849550 0 015673 752 776blocksplusavxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
8849654 0 019337 776 752refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8853622 0 016645 768 808blocksplusavxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
8855591 0 015639 768 736refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8859634 0 016821 768 808blocksplusavxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
8861484 0 019241 776 752blocksplusavxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8867484 0 019145 776 752blocksplusavxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8867782 0 020470 776 808blocksplusavxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
8875470 0 015543 768 736blocksplusavxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8875798 0 018641 776 736refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
8879654 0 019337 776 752refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011420210114
88791000 0 020598 776 808refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
9261723 0 016941 768 808refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
9303712 0 016765 768 808refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
9320662 0 015801 752 776refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011420210114
127167919 0 022230 776 808sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
127207919 0 022230 776 808sphlib-smallgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
131644940 0 015710 776 808sphlib-smallgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
131674940 0 015710 776 808sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
135334974 992 01303620 145016 10200cryptoppclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032320210323
136874694 768 01300017 145008 10168cryptoppclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032320210323
136923891 768 01593229 145000 10232cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210323
137264744 704 01594947 144984 10264cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210323
137604974 992 01303620 145016 10200cryptoppclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032320210323
138004757 704 01598327 144984 10264cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210323
138734442 704 01594536 144992 10264cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021032320210323
138984761 0 014545 752 776sphlib-smallgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
138994761 0 014545 752 776sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
140755913 0 016829 768 808sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
140835913 0 016829 768 808sphlib-smallgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020081520200815
153356143 0 018681 776 736sphlib-smallclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
153656143 0 018665 776 736sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
187034911 992 01303552 145016 10200cryptoppclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021032320210323
206275324 0 014919 768 736sphlib-smallclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206456305 0 019513 776 752sphlibclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206466305 0 019513 776 752sphlibclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206556305 0 019545 776 752sphlib-smallclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206566305 0 019545 776 752sphlib-smallclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206656305 0 019545 776 752sphlib-smallclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206696305 0 019529 776 752sphlibclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815
206885324 0 014887 768 736sphlibclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020081520200815

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 'sse4.2', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'sse4.2'
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 'sse4.2', but would be inlined into function 'crypto_hash_sha512_blocksplusavx_constbranchindex' that is compiled without support for 'sse4.2'
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: 8, 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
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
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
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2

Compiler output

Implementation: rust_crypto
Security model: constbranchindex
Compiler: clang -march=native -O -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.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: 6, namely:
CompilerImplementations
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
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_crypto
clang -march=native -Os -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

Compiler output

Implementation: rust_crypto
Security model: constbranchindex
Compiler: clang -mcpu=native -O3 -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: 4, namely:
CompilerImplementations
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
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE rust_sha2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE rust_sha2