Implementation notes: amd64, cannon, crypto_kem/mceliece8192128

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_kem
Primitive: mceliece8192128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
641254251038 0 0310141 816 1608ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
74469876053 0 0133013 816 1608ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
80474875856 0 0132749 816 1608ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
86755072050 0 0127849 808 1576ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
1814410270826 0 0331837 816 1608vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
1826706126644 0 0188499 840 1608vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
1843998126644 0 0188499 840 1608vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
1856428171985 0 0234243 840 1608vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
243412675808 0 0134473 832 1576vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
295160475678 0 0134989 816 1608vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
305475475329 0 0134669 816 1608vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
306632266518 0 0124769 808 1576vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
355602366179086 0 0241079 824 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
37742611438813 0 0101187 840 1608refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
37742744438813 0 0101187 840 1608refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
37746315249725 0 0112419 840 1608refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
45566963818647 0 077545 832 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
49252681215204 0 074653 816 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
49626358615199 0 074557 816 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
49702158812402 0 070625 808 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910

Compiler output

Implementation: crypto_kem/mceliece8192128/sse
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:129:30: error: argument to '__builtin_ia32_vec_ext_v2di' must be a constant integer
bm.c: out[ (4*j + k)*16 + i ] = (vec128_extract(buf[i], j) >> (k*16)) & GFMASK;
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: ./vec128.h:26:42: note: expanded from macro 'vec128_extract'
bm.c: #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: /usr/lib/clang/8.0.1/include/smmintrin.h:1097:14: note: expanded from macro '_mm_extract_epi64'
bm.c: (long long)__builtin_ia32_vec_ext_v2di((__v2di)(__m128i)(X), (int)(N))
bm.c: ^ ~~~~~~~~
bm.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: crypto_kem/mceliece8192128/avx
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:133:30: error: argument to '__builtin_ia32_vec_ext_v4di' must be a constant integer
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: /usr/lib/clang/8.0.1/include/avxintrin.h:2034:14: note: expanded from macro '_mm256_extract_epi64'
bm.c: (long long)__builtin_ia32_vec_ext_v4di((__v4di)(__m256i)(X), (int)(N))
bm.c: ^ ~~~~~~~~
bm.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 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: crypto_kem/mceliece8192128/avx
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bm.c: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/immintrin.h:51,
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-pc-linux-gnu/9.1.0/include/avxintrin.h: In function 'bm':
bm.c: /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/avxintrin.h:524:20: error: the last argument must be a 1-bit immediate
bm.c: 524 | return (__m128i) __builtin_ia32_vextractf128_si256 ((__v8si)__X, __N);
bm.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: In file included from vec128.h:12,
bm.c: from bm.h:9,
bm.c: from bm.c:6:
bm.c: /usr/lib/gcc/x86_64-pc-linux-gnu/9.1.0/include/smmintrin.h:456:10: error: selector must be an integer constant in the range 0..1
bm.c: 456 | 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: crypto_kem/mceliece8192128/avx
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_kem_mceliece8192128.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