Implementation notes: amd64, hydra4, crypto_kem/mceliece460896f

Computer: hydra4
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: mceliece460896f
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2176490106519 0 0149491 852 1752T:vecgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
2177056106519 0 0157355 852 1752vecgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
292274297964 0 0140906 876 1720T:vecclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
292408297964 0 0148770 876 1720vecclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
292423497964 0 0148770 876 1720vecclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
293533497964 0 0140906 876 1720T:vecclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
311383663928 0 0113826 876 1720vecclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
312663763928 0 0105962 876 1720T:vecclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
390442843544 0 084872 868 1720T:vecclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
393397141576 0 089480 868 1720vecclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
395694741576 0 081616 868 1720T:vecclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
402199643544 0 092736 868 1720vecclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
427626345958 0 095803 852 1752vecgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
427642345958 0 087939 852 1752T:vecgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
465950044531 0 093275 852 1752vecgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
466960444531 0 085411 852 1752T:vecgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
482524138332 0 085947 844 1720vecgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
482808138332 0 078083 844 1720T:vecgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26609588135566 0 073922 868 1720refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26609729235566 0 073922 868 1720refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26610246735566 0 066058 868 1720T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26610344035566 0 066058 868 1720T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26638598228853 0 066378 868 1720refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26642376828853 0 058514 868 1720T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26683871143515 0 074173 860 1752T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
26684452243515 0 082037 860 1752refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
33553085915100 0 043696 860 1720T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
33557364915100 0 051560 860 1720refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
34098190013613 0 041272 860 1720T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
34099258413613 0 049136 860 1720refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
36156451416255 0 053733 860 1752refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
41434982316255 0 045869 860 1752T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
44326944415029 0 043443 852 1752T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
44329053615029 0 051307 852 1752refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
49698615212043 0 047237 852 1720refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625
50166644912043 0 039373 852 1720T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070920240625

Compiler output


bm.c: bm.c:78:37: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         for (i = 13; i < 16; i++) buf[i] = vec256_setzero();
bm.c:                                            ^
bm.c: bm.c:80:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[0][0] = vec256_set1_16b(0x5555);
bm.c:                      ^
bm.c: bm.c:81:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[0][1] = vec256_set1_16b(0xAAAA);
bm.c:                      ^
bm.c: bm.c:82:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[1][0] = vec256_set1_16b(0x3333);
bm.c:                      ^
bm.c: bm.c:83:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[1][1] = vec256_set1_16b(0xCCCC);
bm.c:                      ^
bm.c: bm.c:84:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[2][0] = vec256_set1_16b(0x0F0F);
bm.c:                      ^
bm.c: bm.c:85:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[2][1] = vec256_set1_16b(0xF0F0);
bm.c:                      ^
bm.c: bm.c:86:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c:         mask[3][0] = vec256_set1_16b(0x00FF);
bm.c:                      ^
bm.c: bm.c:87:15: warning: AVX vector return of type 'vec256' (aka '__m256i') without 'avx' enabled changes the ABI [-Wpsabi]
bm.c: ...

Number of similar (implementation,compiler) pairs: 10, namely:
ImplementationCompiler
avxclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
avxclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


benes.c: In file included from transpose.h:12,
benes.c:                  from benes.c:16:
benes.c: vec256.h: In function 'vec256_load':
benes.c: vec256.h:14:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
benes.c:    14 | {
benes.c:       | ^
bm.c: In file included from bm.h:12,
bm.c:                  from bm.c:22:
bm.c: vec256.h: In function 'vec256_load':
bm.c: vec256.h:14:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
bm.c:    14 | {
bm.c:       | ^
bm.c: In file included from bm.h:12,
bm.c:                  from bm.c:22:
bm.c: vec256.h: In function 'vec256_and':
bm.c: vec256.h:72:22: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
bm.c:    72 | static inline vec256 vec256_and(vec256 a, vec256 b)
bm.c:       |                      ^~~~~~~~~~
bm.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
bm.c:                  from vec256.h:9,
bm.c:                  from bm.h:12,
bm.c:                  from bm.c:22:
bm.c: vec256.h: In function 'vec256_set1_16b':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1326:1: error: inlining failed in call to 'always_inline' '_mm256_set1_epi16': target specific option mismatch
bm.c:  1326 | _mm256_set1_epi16 (short __A)
bm.c:       | ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:12,
bm.c:                  from bm.c:22:
bm.c: vec256.h:20:9: note: called from here
bm.c:    20 |  return _mm256_set1_epi16(a);
bm.c:       |         ^~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


decrypt.c: In file included from decrypt.c:9:
decrypt.c: In file included from ./vec128_gf.h:10:
decrypt.c: ./vec128.h:33: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 (implementation,compiler) pairs: 10, namely:
ImplementationCompiler
sseclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:sseclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
sseclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:sseclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
sseclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:sseclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
sseclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:sseclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
sseclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:sseclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


bm.c: In file included from vec128.h:10,
bm.c:                  from bm.h:11,
bm.c:                  from bm.c:15:
bm.c: bm.c: In function 'get_coefs':
bm.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/smmintrin.h:454:1: error: inlining failed in call to 'always_inline' '_mm_extract_epi64': target specific option mismatch
bm.c:   454 | _mm_extract_epi64 (__m128i __X, const int __N)
bm.c:       | ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:11,
bm.c:                  from bm.c:15:
bm.c: vec128.h:29:42: note: called from here
bm.c:    29 | #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c:       |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bm.c: bm.c:117:30: note: in expansion of macro 'vec128_extract'
bm.c:   117 |   out[ (4*1 + k)*16 + i ] = (vec128_extract(buf[i], 1) >> (k*16)) & GFMASK;
bm.c:       |                              ^~~~~~~~~~~~~~
bm.c: In file included from vec128.h:10,
bm.c:                  from bm.h:11,
bm.c:                  from bm.c:15:
bm.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/smmintrin.h:454:1: error: inlining failed in call to 'always_inline' '_mm_extract_epi64': target specific option mismatch
bm.c:   454 | _mm_extract_epi64 (__m128i __X, const int __N)
bm.c:       | ^~~~~~~~~~~~~~~~~
bm.c: In file included from bm.h:11,
bm.c:                  from bm.c:15:
bm.c: vec128.h:29:42: note: called from here
bm.c:    29 | #define vec128_extract(a, i) ((uint64_t) _mm_extract_epi64((vec128) (a), (i)))
bm.c: ...

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
ssegcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:ssegcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
ssegcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:ssegcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
ssegcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:ssegcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
ssegcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:ssegcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Passed TIMECOP


TIMECOP iterations: 1

Number of similar (implementation,compiler) pairs: 18, namely:
ImplementationCompiler
refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
vecclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
vecclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
vecclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
vecclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
vecclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
vecgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
vecgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
vecgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
vecgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)