Implementation notes: amd64, scw1b63b1, crypto_sign/sphincss128sha256simple

Computer: scw1b63b1
Architecture: amd64
CPU ID: GenuineIntel-000506f1-0f8bfbff
SUPERCOP version: 20191017
Operation: crypto_sign
Primitive: sphincss128sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
356976001224665 0 045102 824 1672refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121820191017
368027434022676 0 041399 800 1640refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121820191017
379978427423064 0 041839 800 1640refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121820191017
380893906423064 0 041015 800 1640refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121820191017
383811784423064 0 041015 800 1640refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121820191017
397670540421563 0 038489 792 1640refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121820191017
399738460222031 0 040438 824 1672refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121820191017
439095301419826 0 036870 816 1640refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121820191017
441444535021744 0 039934 824 1672refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121820191017

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sha256avx.c: sha256avx.c:11:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'xsave', but would be inlined into function 'transpose' that is compiled without support for 'xsave'
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:12:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'xsave', but would be inlined into function 'transpose' that is compiled without support for 'xsave'
sha256avx.c: tmp0[1] = _mm256_unpackhi_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:13:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'xsave', but would be inlined into function 'transpose' that is compiled without support for 'xsave'
sha256avx.c: tmp0[2] = _mm256_unpacklo_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:14:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'xsave', but would be inlined into function 'transpose' that is compiled without support for 'xsave'
sha256avx.c: ...
sha256avx.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
sha256avx.c: ^
sha256avx.c: sha256avx.c:29:12: error: '__builtin_ia32_permti256' needs target feature avx2
sha256avx.c: s[2] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x20);
sha256avx.c: ^
sha256avx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avx2intrin.h:882:12: note: expanded from macro '_mm256_permute2x128_si256'
sha256avx.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
sha256avx.c: ^
sha256avx.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
sha256avx.c: 20 errors generated.

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sha256avx.c: sha256avx.c:11:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:12:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[1] = _mm256_unpackhi_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:13:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[2] = _mm256_unpacklo_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:14:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: ...
sha256avx.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
sha256avx.c: ^
sha256avx.c: sha256avx.c:29:12: error: '__builtin_ia32_permti256' needs target feature avx2
sha256avx.c: s[2] = _mm256_permute2x128_si256(tmp1[2], tmp1[6], 0x20);
sha256avx.c: ^
sha256avx.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.1/include/avx2intrin.h:882:12: note: expanded from macro '_mm256_permute2x128_si256'
sha256avx.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
sha256avx.c: ^
sha256avx.c: fatal error: too many errors emitted, stopping now [-ferror-limit=]
sha256avx.c: 20 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
sha256avx.c: sha256avx.c: In function ‘transpose’:
sha256avx.c: sha256avx.c:11:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:5:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline ‘_mm256_permute2x128_si256’: target specific option mismatch
sha256avx.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
sha256avx.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
sha256avx.c: ...
sha256avx.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sha256avx.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:43:0,
sha256avx.c: from sha256avx.h:3,
sha256avx.c: from sha256avx.c:5:
sha256avx.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avx2intrin.h:899:1: error: inlining failed in call to always_inline ‘_mm256_unpacklo_epi32’: target specific option mismatch
sha256avx.c: _mm256_unpacklo_epi32 (__m256i __A, __m256i __B)
sha256avx.c: ^~~~~~~~~~~~~~~~~~~~~
sha256avx.c: sha256avx.c:11:15: note: called from here
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
address.o addr_to_bytes T
address.o copy_keypair_addr T
address.o copy_subtree_addr T
address.o set_chain_addr T
address.o set_hash_addr T
address.o set_keypair_addr T
address.o set_layer_addr T
address.o set_tree_addr T
address.o set_tree_height T
address.o set_tree_index T
address.o set_type T
fors.o fors_pk_from_sig T
fors.o fors_sign T
hash_sha256.o gen_message_random T
hash_sha256.o hash_message T
hash_sha256.o initialize_hash_function T
hash_sha256.o prf_addr T
hash_sha256.o state_seeded C
sha256.o compress_address T
sha256.o mgf1 T
sha256.o seed_state T
sha256.o sha256 T
sha256.o sha256_inc_blocks T
sha256.o sha256_inc_finalize T
sha256.o sha256_inc_init T
sha256.o state_seeded C
sign.o crypto_sign_bytes T
sign.o crypto_sign_publickeybytes T
sign.o crypto_sign_secretkeybytes T
sign.o crypto_sign_seed_keypair T
sign.o crypto_sign_seedbytes T
sign.o crypto_sign_signature T
sign.o crypto_sign_verify T
thash_sha256_simple.o state_seeded C
thash_sha256_simple.o thash T
utils.o bytes_to_ull T
utils.o compute_root T
utils.o treehash T
utils.o ull_to_bytes T
wots.o wots_gen_pk T
wots.o wots_pk_from_sig T
wots.o wots_sign T

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