Implementation notes: amd64, intelnuci7, crypto_kem/mceliece6688128

Computer: intelnuci7
Architecture: amd64
CPU ID: GenuineIntel-000806e9-bfebfbff
SUPERCOP version: 20191017
Operation: crypto_kem
Primitive: mceliece6688128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
439780143426 0 0186897 784 1576avxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
443042120473 0 0163873 784 1576avxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
451666120473 0 0163873 784 1576avxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
48018875899 0 0115783 776 1576avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
645396124603 0 0156681 784 1576sseclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
661188109499 0 0141593 784 1576sseclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
661580109499 0 0141593 784 1576sseclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
666582164318 0 0197406 784 1608ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
71133871488 0 0100559 776 1576sseclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
73935881505 0 0111702 784 1608ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
80296679743 0 0110046 784 1608ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
83881873551 0 0102526 776 1576ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
1825706116531 0 0150561 784 1576vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
1833866116531 0 0150561 784 1576vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
1871402124879 0 0158673 784 1576vecclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
1906640141228 0 0175257 784 1576vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
1968040200874 0 0235854 784 1608vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
303090081032 0 0113670 784 1608vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
307300869293 0 0100007 776 1576vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
313752466288 0 097670 776 1576vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
336425282448 0 0115206 784 1608vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
27456959036027 0 069889 784 1576refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
27711182844794 0 079249 784 1576refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
27713200838146 0 072553 784 1576refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
27726978638146 0 072553 784 1576refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
36580660812640 0 043535 776 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019121220191017
40964423415599 0 048142 784 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
41454962685911 0 0121632 792 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
41752673412226 0 043566 776 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017
46216242215771 0 048502 784 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019121220191017

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:133:30: error: always_inline function '_mm256_extract_epi64' requires target feature 'sse4.2', but would be inlined into function 'get_coefs' that is compiled without support for 'sse4.2'
bm.c: out[ (4*j + k)*16 + i ] = (vec256_extract(buf[i], j) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:31:41: note: expanded from macro 'vec256_extract'
bm.c: #define vec256_extract(a,i) ((uint64_t) _mm256_extract_epi64((vec256) (a),(i)))
bm.c: ^
bm.c: ./vec256.h:22:10: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'vec256_setzero' that is compiled without support for 'sse4.2'
bm.c: return _mm256_setzero_si256();
bm.c: ^
bm.c: ./vec256.h:17: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'
bm.c: return _mm256_set1_epi16(a);
bm.c: ^
bm.c: bm.c:64:2: error: always_inline function '_mm256_slli_epi64' requires target feature 'avx2', but would be inlined into function 'interleave' that is compiled without support for 'avx2'
bm.c: vec256_sll_4x(vec256_and(in[idx1], mask[0]), s));
bm.c: ^
bm.c: ./vec256.h:53:39: note: expanded from macro 'vec256_sll_4x'
bm.c: #define vec256_sll_4x(a, s) ((vec256) _mm256_slli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: bm.c:66:16: error: always_inline function '_mm256_srli_epi64' requires target feature 'avx2', but would be inlined into function 'interleave' that is compiled without support for 'avx2'
bm.c: y = vec256_or(vec256_srl_4x(vec256_and(in[idx0], mask[1]), s),
bm.c: ^
bm.c: ./vec256.h:54:39: note: expanded from macro 'vec256_srl_4x'
bm.c: #define vec256_srl_4x(a, s) ((vec256) _mm256_srli_epi64((vec256) (a), (s)))
bm.c: ^
bm.c: ./vec256.h:50: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'
bm.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
bm.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
bm.c: from vec256.h:11,
bm.c: from bm.h:10,
bm.c: from bm.c:6:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h: In function 'bm':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:524:20: error: the last argument must be a 1-bit immediate
bm.c: return (__m128i) __builtin_ia32_vextractf128_si256 ((__v8si)__X, __N);
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: In file included from vec128.h:12:0,
bm.c: from bm.h:9,
bm.c: from bm.c:6:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:456:10: error: selector must be an integer constant in the range 0..1
bm.c: return __builtin_ia32_vec_ext_v2di ((__v2di)__X, __N);
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -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: avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_kem_mceliece6688128.a(transpose_64x256_sp_asm.o): relocation R_X86_64_32S against hidden symbol `MASK5_0' can not be used when making a PIE object
try.c: /usr/bin/ld: final link failed: Nonrepresentable section on output
try.c: collect2: error: ld returned 1 exit status

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

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:9:
decrypt.c: ./vec128.h:30: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

Namespace violations

Implementation: avx
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
benes.o benes T
benes.o load_bits T
bm.o bm T
consts.o MASK0_0 R
consts.o MASK0_1 R
consts.o MASK1_0 R
consts.o MASK1_1 R
consts.o MASK2_0 R
consts.o MASK2_1 R
consts.o MASK3_0 R
consts.o MASK3_1 R
consts.o MASK4_0 R
consts.o MASK4_1 R
consts.o MASK5_0 R
consts.o MASK5_1 R
controlbits.o controlbits T
controlbits.o sort_63b T
decrypt.o decrypt T
encrypt.o encrypt T
fft.o fft T
fft_tr.o fft_tr T
gf.o GF_mul T
gf.o gf_frac T
gf.o gf_inv T
gf.o gf_iszero T
gf.o gf_mul T
gf.o gf_mul2 T
pk_gen.o pk_gen T
sk_gen.o genpoly_gen T
sk_gen.o perm_check T
syndrome_asm.o _syndrome_asm T
syndrome_asm.o syndrome_asm T
transpose_64x128_sp_asm.o _transpose_64x128_sp_asm T
transpose_64x128_sp_asm.o transpose_64x128_sp_asm T
transpose_64x256_sp_asm.o _transpose_64x256_sp_asm T
transpose_64x256_sp_asm.o transpose_64x256_sp_asm T
update_asm.o _update_asm T
update_asm.o update_asm T
vec128_mul_asm.o _vec128_mul_asm T
vec128_mul_asm.o vec128_mul_asm T
vec256.o vec256_inv T
vec256.o vec256_sq T
vec256_ama_asm.o _vec256_ama_asm T
vec256_ama_asm.o vec256_ama_asm T
vec256_maa_asm.o _vec256_maa_asm T
vec256_maa_asm.o vec256_maa_asm T
vec256_mul_asm.o _vec256_mul_asm T
vec256_mul_asm.o vec256_mul_asm T
vec_reduce_asm.o _vec_reduce_asm T
vec_reduce_asm.o vec_reduce_asm T

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
benes.o apply_benes T
benes.o support_gen T
bm.o bm T
controlbits.o controlbits T
controlbits.o sort_63b T
decrypt.o decrypt T
encrypt.o encrypt T
encrypt.o syndrome T
gf.o GF_mul T
gf.o gf_add T
gf.o gf_frac T
gf.o gf_inv T
gf.o gf_iszero T
gf.o gf_mul T
pk_gen.o pk_gen T
root.o eval T
root.o root T
sk_gen.o genpoly_gen T
sk_gen.o perm_check T
synd.o synd T
transpose.o transpose_64x64 T
util.o bitrev T
util.o load2 T
util.o load4 T
util.o load8 T
util.o store2 T
util.o store8 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

Namespace violations

Implementation: sse
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
benes.o benes T
benes.o load_bits T
bm.o bm T
consts.o MASK0_0 R
consts.o MASK0_1 R
consts.o MASK1_0 R
consts.o MASK1_1 R
consts.o MASK2_0 R
consts.o MASK2_1 R
consts.o MASK3_0 R
consts.o MASK3_1 R
consts.o MASK4_0 R
consts.o MASK4_1 R
consts.o MASK5_0 R
consts.o MASK5_1 R
controlbits.o controlbits T
controlbits.o sort_63b T
decrypt.o decrypt T
encrypt.o encrypt T
fft.o fft T
fft_tr.o fft_tr T
gf.o GF_mul T
gf.o gf_frac T
gf.o gf_inv T
gf.o gf_iszero T
gf.o gf_mul T
gf.o gf_mul2 T
pk_gen.o pk_gen T
sk_gen.o genpoly_gen T
sk_gen.o perm_check T
syndrome_asm.o _syndrome_asm T
syndrome_asm.o syndrome_asm T
transpose_64x128_sp_asm.o _transpose_64x128_sp_asm T
transpose_64x128_sp_asm.o transpose_64x128_sp_asm T
update_asm.o _update_asm T
update_asm.o update_asm T
vec128.o vec128_inv T
vec128.o vec128_sq T
vec128_mul_asm.o _vec128_mul_asm T
vec128_mul_asm.o vec128_mul_asm T
vec_reduce_asm.o _vec_reduce_asm T
vec_reduce_asm.o vec_reduce_asm T

Number of similar (compiler,implementation) pairs: 8, 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
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

Namespace violations

Implementation: vec
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
benes.o benes T
bm.o bm T
controlbits.o controlbits T
controlbits.o sort_63b T
decrypt.o decrypt T
encrypt.o encrypt T
encrypt.o syndrome T
fft.o fft T
fft_tr.o fft_tr T
gf.o GF_mul T
gf.o gf_frac T
gf.o gf_inv T
gf.o gf_iszero T
gf.o gf_mul T
gf.o gf_mul2 T
pk_gen.o pk_gen T
sk_gen.o genpoly_gen T
sk_gen.o perm_check T
vec.o vec_inv T
vec.o vec_mul T
vec.o vec_sq T

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