Implementation notes: amd64, cannon, crypto_kem/mceliece460896f

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_kem
Primitive: mceliece460896f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
477394242185 0 0301301 816 1608ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
53211267267 0 0124181 816 1608ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
54708266941 0 0123837 816 1608ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
57382062806 0 0118657 808 1576ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
1467160258403 0 0319341 816 1608vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
1595252110967 0 0172875 840 1608vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
1649518110967 0 0172875 840 1608vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
1655288131432 0 0193843 840 1608vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
201941262724 0 0121409 832 1576vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
247135263301 0 0122549 816 1608vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
249970853691 0 0111985 808 1576vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
250894063017 0 0122285 816 1608vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
151859918182987 0 0244863 824 1608refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
16104325051819 0 0114475 840 1608refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
16119253243815 0 0106131 840 1608refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
16122093843815 0 0106131 840 1608refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
19638431620168 0 079097 832 1576refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091720190910
20980747816825 0 076221 816 1608refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
21093475013537 0 071729 808 1576refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910
21190952816921 0 076213 816 1608refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091720190910

Compiler output

Implementation: crypto_kem/mceliece460896f/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/mceliece460896f/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/mceliece460896f/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/mceliece460896f/avx
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: crypto_kem_mceliece460896f.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