Implementation notes: amd64, hydra4, crypto_kem/ntskem1380

Computer: hydra4
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240425
Operation: crypto_kem
Primitive: ntskem1380
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2099142130049 84 16149898 948 1720T:optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
226501686683 84 16107122 932 1784T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
229844169907 84 1689178 932 1784T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
238339293662 84 16112658 948 1720T:optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
240018070607 84 1687832 940 1720T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
2422754133713 84 16153482 948 1720T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
246641867244 84 1685506 932 1784T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
265098185242 84 16103304 940 1720T:optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
319198662971 84 1680009 924 1752T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
2215853535230 76 1655618 900 1784T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
2361093826710 76 1645930 900 1784T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
2442352923066 76 1641266 900 1784T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425
2632668743316 76 1663402 932 1720T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
2635610538500 76 1658554 932 1720T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
2643544737021 76 1656226 932 1720T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
2850175024455 76 1642504 924 1720T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
2896503222235 76 1639472 924 1720T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050820240425
3031148619919 76 1636865 892 1752T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050820240425

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:92:12: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'bit_reverse' that is compiled without support for 'ssse3'
bitslice_bma_128.c: 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: 1 error 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/10/include/immintrin.h:35,
bitslice_bma_128.c: from bitslice_bma_128.h:18,
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/10/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/10/include/immintrin.h:35,
bitslice_bma_128.c: from bitslice_bma_128.h:18,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/10/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/10/include/immintrin.h:35,
bitslice_bma_128.c: from bitslice_bma_128.h:18,
bitslice_bma_128.c: from bitslice_bma_128.c:17:
bitslice_bma_128.c: /usr/lib/gcc/x86_64-linux-gnu/10/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/10/include/immintrin.h:35,
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/10/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/10/include/immintrin.h:35,
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/10/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/10/include/immintrin.h:35,
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/10/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