Implementation notes: amd64, hydra8, crypto_kem/mceliece460896f

Computer: hydra8
Architecture: amd64
CPU ID: GenuineIntel-000306a9-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: mceliece460896f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
589968132391 0 0227731 808 1568T:sseclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
590740176364 0 0270101 792 1600T:ssegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
592608114929 0 0208763 808 1568T:sseclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
595324114929 0 0208763 808 1568T:sseclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
66042882298 0 0174133 792 1600T:ssegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
66173674621 0 0165433 800 1568T:sseclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
68119281982 0 0173669 792 1600T:ssegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
71550474567 0 0164917 784 1568T:ssegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
1826924114483 0 0210123 808 1568T:vecclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
1935352160115 0 0255885 792 1600T:vecgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
198333691810 0 0187987 808 1568T:vecclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
199307291810 0 0187987 808 1568T:vecclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
2006396116387 0 0214131 808 1568T:vecclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
228866856011 0 0148433 800 1568T:vecclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
294912467631 0 0161829 792 1600T:vecgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
320365253059 0 0145805 784 1568T:vecgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
325174069145 0 0163237 792 1600T:vecgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
17908459637541 0 0135355 808 1568T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
17918894837088 0 0132763 808 1568T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
17960866833474 0 0129739 808 1568T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
17962990433474 0 0129739 808 1568T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
19871260873137 0 0169415 800 1600T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
26397323613887 0 0106393 800 1568T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020090320200826
28086354013223 0 0105901 784 1568T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
28229250816731 0 0110885 792 1600T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826
29470364016882 0 0110949 792 1600T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020090320200826

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:68: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:63: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:70: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:64: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: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'
bm.c: return _mm256_or_si256(a, b);
bm.c: ^
bm.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'
bm.c: return _mm256_and_si256(a, b);
bm.c: ^
bm.c: 4 errors generated.

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

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bm.c: bm.c:136: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*0 + k)*16 + i ] = (vec256_extract(buf[i], 0) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:41: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: bm.c:137: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*1 + k)*16 + i ] = (vec256_extract(buf[i], 1) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:41: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: bm.c:138: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*2 + k)*16 + i ] = (vec256_extract(buf[i], 2) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:41: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: bm.c:139: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*3 + k)*16 + i ] = (vec256_extract(buf[i], 3) >> (k*16)) & GFMASK;
bm.c: ^
bm.c: ./vec256.h:41: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:32: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: ...

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

Compiler output

Implementation: T:avx
Security model: timingleaks
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:43:0,
bm.c: from vec256.h:16,
bm.c: from bm.h:11,
bm.c: from bm.c:10:
bm.c: vec256.h: In function 'vec256_and':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:179:1: error: inlining failed in call to always_inline '_mm256_and_si256': target specific option mismatch
bm.c: _mm256_and_si256 (__m256i __A, __m256i __B)
bm.c: ^~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:11:0,
bm.c: from bm.c:10:
bm.c: vec256.h:50:9: note: called from here
bm.c: return _mm256_and_si256(a, b);
bm.c: ^~~~~~~~~~~~~~~~~~~~~~

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

Compiler output

Implementation: T:sse
Security model: timingleaks
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:40: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 T:sse