Implementation notes: amd64, h8atom, crypto_kem/mceliece348864f

Computer: h8atom
Architecture: amd64
CPU ID: GenuineIntel-00030661-bfebfbff
SUPERCOP version: 20200618
Operation: crypto_kem
Primitive: mceliece348864f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3138667111222 0 0204299 848 1576vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
3152240111567 0 0204523 848 1576vecclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
333712448400 0 0140077 864 1608vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
336465575706 0 0167419 848 1576vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
337573675706 0 0167419 848 1576vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
354176240614 0 0131085 856 1576vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
397170950177 0 0141773 864 1608vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
468552045063 0 0134769 840 1576vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
26581021661636 0 0155263 872 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
27710726449281 0 0142355 848 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
27734742048576 0 0141779 848 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
27762172230617 0 0122435 848 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
27771513730617 0 0122435 848 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
37087271215455 0 0107077 864 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
37422753211903 0 0102333 856 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601
39210620412545 0 0102585 840 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060120200601
40532751015490 0 0107069 864 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060120200601

Test failure

Implementation: vec
Security model: unknown
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE vec

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec256.h:37:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'xsave', but would be inlined into function 'vec256_set4x' that is compiled without support for 'xsave'
decrypt.c: return _mm256_set_epi64x(a3, a2, a1, a0);
decrypt.c: ^
decrypt.c: ./vec256.h:50:9: error: always_inline function '_mm256_and_si256' requires target feature 'xsave', but would be inlined into function 'vec256_and' that is compiled without support for 'xsave'
decrypt.c: return _mm256_and_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:22:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'xsave', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'xsave'
decrypt.c: return _mm256_set1_epi16(a);
decrypt.c: ^
decrypt.c: ./vec256.h:60:9: error: always_inline function '_mm256_or_si256' requires target feature 'xsave', but would be inlined into function 'vec256_or' that is compiled without support for 'xsave'
decrypt.c: return _mm256_or_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:55:9: error: always_inline function '_mm256_xor_si256' requires target feature 'xsave', but would be inlined into function 'vec256_xor' that is compiled without support for 'xsave'
decrypt.c: return _mm256_xor_si256(a, b);
decrypt.c: ^
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: In file included from ./vec256.h:14:
decrypt.c: ./vec128.h:32:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: decrypt.c:157:10: error: always_inline function '_mm256_extract_epi64' requires target feature 'xsave', but would be inlined into function 'reformat_256to128' that is compiled without support for 'xsave'
decrypt.c: v[0] = vec256_extract(in[i], 0);
decrypt.c: ...

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

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec256.h:37:10: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'vec256_set4x' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_set_epi64x(a3, a2, a1, a0);
decrypt.c: ^
decrypt.c: ./vec256.h:50:9: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'vec256_and' that is compiled without support for 'avx2'
decrypt.c: return _mm256_and_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:22:9: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vec256_set1_16b' that is compiled without support for 'sse4.2'
decrypt.c: return _mm256_set1_epi16(a);
decrypt.c: ^
decrypt.c: ./vec256.h:60:9: error: always_inline function '_mm256_or_si256' requires target feature 'avx2', but would be inlined into function 'vec256_or' that is compiled without support for 'avx2'
decrypt.c: return _mm256_or_si256(a, b);
decrypt.c: ^
decrypt.c: ./vec256.h:55:9: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'vec256_xor' that is compiled without support for 'avx2'
decrypt.c: return _mm256_xor_si256(a, b);
decrypt.c: ^
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: In file included from ./vec256.h:14:
decrypt.c: ./vec128.h:32:9: error: always_inline function '_mm_testz_si128' requires target feature 'ssse3', but would be inlined into function 'vec128_testz' that is compiled without support for 'ssse3'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: decrypt.c:157:10: error: always_inline function '_mm256_extract_epi64' requires target feature 'sse4.2', but would be inlined into function 'reformat_256to128' that is compiled without support for 'sse4.2'
decrypt.c: v[0] = vec256_extract(in[i], 0);
decrypt.c: ...

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

Compiler output

Implementation: avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
benes.c: In file included from transpose.h:11:0,
benes.c: from benes.c:6:
benes.c: vec256.h: In function 'vec256_set1_16b':
benes.c: vec256.h:21:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
benes.c: {
benes.c: ^
bm.c: In file included from vec128.h:14:0,
bm.c: from bm.h:10,
bm.c: from bm.c:10:
bm.c: bm.c: In function 'get_coefs':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:10:
bm.c: vec128.h:28:42: note: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: bm.c:130:30: note: in expansion of macro 'vec128_extract'
bm.c: out[ (4*1 + k)*16 + i ] = (vec128_extract(buf[i], 1) >> (k*16)) & GFMASK;
bm.c: ^~~~~~~~~~~~~~
bm.c: In file included from vec128.h:14:0,
bm.c: from bm.h:10,
bm.c: from bm.c:10:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:10:0,
bm.c: from bm.c:10:
bm.c: vec128.h:28:42: note: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ...

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

Compiler output

Implementation: sse
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec128.h:39:9: error: always_inline function '_mm_testz_si128' requires target feature 'sse4.1', but would be inlined into function 'vec128_testz' that is compiled without support for 'sse4.1'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: 1 error generated.

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

Compiler output

Implementation: sse
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decrypt.c: In file included from decrypt.c:8:
decrypt.c: In file included from ./fft_tr.h:10:
decrypt.c: ./vec128.h:39:9: error: always_inline function '_mm_testz_si128' requires target feature 'ssse3', but would be inlined into function 'vec128_testz' that is compiled without support for 'ssse3'
decrypt.c: return _mm_testz_si128(a, a);
decrypt.c: ^
decrypt.c: 1 error generated.

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

Compiler output

Implementation: sse
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bm.c: In file included from vec128.h:16:0,
bm.c: from bm.h:13,
bm.c: from bm.c:10:
bm.c: bm.c: In function 'get_coefs':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:13:0,
bm.c: from bm.c:10:
bm.c: vec128.h:35:42: note: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: bm.c:156:30: note: in expansion of macro 'vec128_extract'
bm.c: out[ (4*1 + k)*16 + i ] = (vec128_extract(buf[i], 1) >> (k*16)) & GFMASK;
bm.c: ^~~~~~~~~~~~~~
bm.c: In file included from vec128.h:16:0,
bm.c: from bm.h:13,
bm.c: from bm.c:10:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
bm.c: _mm_extract_epi64 (__m128i __X, const int __N)
bm.c: ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:13:0,
bm.c: from bm.c:10:
bm.c: vec128.h:35:42: note: called from here
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ...

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