Implementation notes: amd64, h9trinity, crypto_kem/ntskem13136

Computer: h9trinity
Architecture: amd64
CPU ID: AuthenticAMD-00610f01-178bfbff
SUPERCOP version: 20191221
Operation: crypto_kem
Primitive: ntskem13136
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
427059079535 84 1693145 904 1576sse2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
441320479356 84 1694480 928 1640sse2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
447289579993 84 1695224 928 1640sse2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
451883399364 84 16114923 912 1576sse2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
4519061134111 84 16151171 912 1576sse2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
456760299364 84 16114923 912 1576sse2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
4567644110164 84 16127480 928 1640sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
466369674827 84 1689255 920 1608sse2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
646676974435 84 1689633 904 1576optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
658466596332 84 16113515 912 1576optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
6591059123862 84 16142539 912 1576optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
659634196332 84 16113515 912 1576optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
6818941137495 84 16155571 912 1576optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
7075158112694 84 16131560 928 1640optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
711437468463 84 1684311 920 1608optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
713280975027 84 1691864 928 1640optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
745096074281 84 1690984 928 1640optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
5034959139050 76 1657387 896 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
5266840838336 76 1657907 896 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
5276269435956 76 1653955 896 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
5277992335956 76 1653955 896 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
5429758942599 76 1661576 896 1640refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
5485202921994 76 1637217 888 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010720191221
5624441025621 76 1642408 896 1640refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
5720008324136 76 1640800 896 1640refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221
5963819320456 76 1636215 888 1608refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010720191221

Compiler output

Implementation: crypto_kem/ntskem13136/avx2
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bitslice_fft_256.c: bitslice_fft_256.c:140:20: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: t[0] = _mm256_permutevar8x32_epi32(out[ j ][b], mask256);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:141:20: error: always_inline function '_mm256_permutevar8x32_epi32' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: t[1] = _mm256_permutevar8x32_epi32(out[j+1][b], mask256);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:142:20: error: '__builtin_ia32_permti256' needs target feature avx2
bitslice_fft_256.c: v[b] = _mm256_permute2x128_si256(t[0], t[1], 0x20);
bitslice_fft_256.c: ^
bitslice_fft_256.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/avx2intrin.h:975:12: note: expanded from macro '_mm256_permute2x128_si256'
bitslice_fft_256.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:144:20: error: '__builtin_ia32_permti256' needs target feature avx2
bitslice_fft_256.c: u[b] = _mm256_permute2x128_si256(t[0], t[1], 0x31);
bitslice_fft_256.c: ^
bitslice_fft_256.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/avx2intrin.h:975:12: note: expanded from macro '_mm256_permute2x128_si256'
bitslice_fft_256.c: (__m256i)__builtin_ia32_permti256((__m256i)(V1), (__m256i)(V2), (M)); })
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:149:20: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: v[b] = _mm256_xor_si256(v[b], w[b]);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:150:20: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: u[b] = _mm256_xor_si256(u[b], v[b]);
bitslice_fft_256.c: ^
bitslice_fft_256.c: bitslice_fft_256.c:151:27: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'avx2', but would be inlined into function 'bitslice_butterflies13_256' that is compiled without support for 'avx2'
bitslice_fft_256.c: ...

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: crypto_kem/ntskem13136/avx2
Compiler: clang -mcpu=native -O3 -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-6.0/lib/clang/6.0.0/include/tmmintrin.h:161:12: 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: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2 sse2

Compiler output

Implementation: crypto_kem/ntskem13136/avx2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
bitslice_fft_256.c: from bitslice_fft_256.h:21,
bitslice_fft_256.c: from bitslice_fft_256.c:19:
bitslice_fft_256.c: bitslice_fft_256.c: In function 'bitslice_butterflies13_256':
bitslice_fft_256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
bitslice_fft_256.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
bitslice_fft_256.c: ^~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: bitslice_fft_256.c:145:20: note: called from here
bitslice_fft_256.c: u[b] = _mm256_permute4x64_epi64(u[b], 0xD8);
bitslice_fft_256.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
bitslice_fft_256.c: from bitslice_fft_256.h:21,
bitslice_fft_256.c: from bitslice_fft_256.c:19:
bitslice_fft_256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1081:1: error: inlining failed in call to always_inline '_mm256_permute2x128_si256': target specific option mismatch
bitslice_fft_256.c: _mm256_permute2x128_si256 (__m256i __X, __m256i __Y, const int __M)
bitslice_fft_256.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: bitslice_fft_256.c:144:20: note: called from here
bitslice_fft_256.c: u[b] = _mm256_permute2x128_si256(t[0], t[1], 0x31);
bitslice_fft_256.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
bitslice_fft_256.c: from bitslice_fft_256.h:21,
bitslice_fft_256.c: from bitslice_fft_256.c:19:
bitslice_fft_256.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1068:1: error: inlining failed in call to always_inline '_mm256_permute4x64_epi64': target specific option mismatch
bitslice_fft_256.c: _mm256_permute4x64_epi64 (__m256i __X, const int __M)
bitslice_fft_256.c: ^~~~~~~~~~~~~~~~~~~~~~~~
bitslice_fft_256.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