Implementation notes: amd64, hydra5, crypto_kem/ntskem13136

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: ntskem13136
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4310729171083 84 16191194 996 1728T:optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
4753607103039 84 16123759 956 1792T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
478882876944 84 1696343 956 1792T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
482208173762 84 1692007 956 1792T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
4964511165809 84 16185898 996 1728T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
503702895451 84 16114738 996 1728T:optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
506915571593 84 1688972 988 1728T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
509643997861 84 16116018 996 1728T:optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
622646669935 84 1686966 948 1760T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
4521311337131 76 1657735 924 1792T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
4774698927843 76 1647199 924 1792T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
4869412624213 76 1642407 924 1792T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
4894668229938 76 1648050 980 1728T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
5692104138672 76 1659066 980 1728T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
5694765238504 76 1658026 980 1728T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
5699859438528 76 1658890 980 1728T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212
5847366321030 76 1638006 916 1760T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121820231212
5942456522632 76 1639996 972 1728T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121820231212

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bitslice_bma_128.c: bitslice_bma_128.c:315:21: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'bitslice_bma' that is compiled without support for 'ssse3'
bitslice_bma_128.c: out[1][j] = _mm_shuffle_epi8(out[0][j], mask);
bitslice_bma_128.c: ^
bitslice_bma_128.c: bitslice_bma_128.c:316:21: error: '__builtin_ia32_palignr128' needs target feature ssse3
bitslice_bma_128.c: out[0][j] = _mm_alignr_epi8(out[0][j], psi[0][j], 15);
bitslice_bma_128.c: ^
bitslice_bma_128.c: /usr/lib/llvm-14/lib/clang/14.0.0/include/tmmintrin.h:152:13: note: expanded from macro '_mm_alignr_epi8'
bitslice_bma_128.c: ((__m128i)__builtin_ia32_palignr128((__v16qi)(__m128i)(a), \
bitslice_bma_128.c: ^
bitslice_bma_128.c: 2 errors generated.

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:26,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: bitslice_bma_128.c: In function 'bit_reverse':
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: bitslice_bma_128.c:92:12: note: called from here
bitslice_bma_128.c: 92 | return _mm_shuffle_epi8(x, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:26,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: bitslice_bma_128.c:92:12: note: called from here
bitslice_bma_128.c: 92 | return _mm_shuffle_epi8(x, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:26,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: ...

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

Compiler output

Implementation: T:sse2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:28,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: bitslice_bma_128.c: In function 'bit_reverse':
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: bitslice_bma_128.c:92:12: note: called from here
bitslice_bma_128.c: 92 | return _mm_shuffle_epi8(x, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:28,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: bitslice_bma_128.c:92:12: note: called from here
bitslice_bma_128.c: 92 | return _mm_shuffle_epi8(x, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_bma_128.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:37,
bitslice_bma_128.c: from bits.h:28,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
bitslice_bma_128.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
bitslice_bma_128.c: | ^~~~~~~~~~~~~~~~
bitslice_bma_128.c: ...

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