Implementation notes: amd64, comet, crypto_kem/mceliece8192128pc

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: mceliece8192128pc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
420017146940 0 0200668 788 1760avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
432850147361 0 0202057 876 1728avxclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
434043164009 0 0219049 876 1792avxclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
45129399925 0 0151836 788 1760avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
46078298056 0 0149695 860 1792avxclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
465517101502 0 0152833 868 1728avxclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
46631497665 0 0149100 788 1760avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
48250492939 0 0142980 780 1728avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
716035127414 0 0177913 860 1728sseclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
717402142565 0 0193337 860 1792sseclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
720144188303 0 0239156 788 1760ssegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
76124696247 0 0145156 788 1760ssegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
78735190711 0 0137929 860 1728sseclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
78889386134 0 0134271 852 1792sseclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
80246887185 0 0135524 788 1760ssegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
81578282822 0 0129812 780 1728ssegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
1575371101418 0 0155476 788 1760vecgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
2076296120313 0 0174281 860 1728vecclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
2153418100240 0 0155329 860 1728vecclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
2295883134064 0 0188489 860 1792vecclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
250739061555 0 0113567 860 1792vecclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
262182260855 0 0112761 868 1728vecclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
286011764397 0 0116700 788 1760vecgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
390216651874 0 0102492 780 1728vecgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
443975061744 0 0113796 788 1760vecgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
33106637845081 0 096351 868 1728refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
34904600416338 0 065853 860 1792refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
35719407238292 0 090553 860 1728refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
36456367360928 0 0113497 860 1792refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
43364290032527 0 084102 796 1760refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
45388189314948 0 063953 860 1728refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
48273257116364 0 066086 796 1760refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
49078612414359 0 063388 788 1760refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
55391334511328 0 058998 788 1728refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625

Compiler output


bm.c: bm.c:80: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:82: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:83: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:84: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:85: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:86: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:87: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:88: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:89: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: 1, namely:
ImplementationCompiler
avxclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


encrypt.c: encrypt.c:38:16: warning: unused variable 'mask' [-Wunused-variable]
encrypt.c:         unsigned char mask;
encrypt.c:                       ^
encrypt.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


encrypt.c: encrypt.c: In function 'gen_e':
encrypt.c: encrypt.c:38:23: warning: unused variable 'mask' [-Wunused-variable]
encrypt.c:    38 |         unsigned char mask;
encrypt.c:       |                       ^~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Compiler output


pk_gen.c: pk_gen.c:211:12: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
pk_gen.c:                 uint64_t w[ PK_NROWS ][ nBlocks_I*2 ];
pk_gen.c:                          ^
pk_gen.c: pk_gen.c:212:10: warning: variable length array folded to constant array as an extension [-Wgnu-folding-constant]
pk_gen.c:                 vec128 v[ PK_NROWS ][ nBlocks_I ];
pk_gen.c:                        ^
pk_gen.c: 2 warnings generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
sseclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

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:38: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: 1, namely:
ImplementationCompiler
sseclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

TIMECOP error (can be valgrind bug)


error 1
VEX temporary storage exhausted.
Pool = TEMP,  start 0x597c5528 curr 0x59c787f8 end 0x59c8a067 (size 5000000)
vex: the `impossible' happened:
VEX temporary storage exhausted.
Increase N_{TEMPORARY,PERMANENT}_BYTES and recompile.
vex storage: T total 302290752 bytes allocated
vex storage: P total 512 bytes allocated
valgrind: the 'impossible' happened:
LibVEX called failure_exit().
host stacktrace:
   at 0x...: show_sched_status_wrk (m_libcassert.c:406)
   by 0x...: report_and_quit (m_libcassert.c:477)
   by 0x...: panic (m_libcassert.c:553)
   by 0x...: vgPlain_core_panic_at (m_libcassert.c:558)
   by 0x...: vgPlain_core_panic (m_libcassert.c:563)
   by 0x...: failure_exit (m_translate.c:761)
   by 0x...: vpanic (main_util.c:253)
   by 0x...: private_LibVEX_alloc_OOM (main_util.c:181)
   by 0x...: LibVEX_Alloc_inline (main_util.h:176)
   by 0x...: addHInstr_SLOW (host_generic_regs.c:332)
   by 0x...: emit_instr (host_generic_reg_alloc3.c:301)
   by 0x...: doRegisterAllocation_v3 (host_generic_reg_alloc3.c:1320)
   by 0x...: libvex_BackEnd (main_main.c:1133)
   by 0x...: LibVEX_Translate (main_main.c:1236)
   by 0x...: vgPlain_translate (m_translate.c:1831)
   by 0x...: handle_chain_me (scheduler.c:1169)
   by 0x...: vgPlain_scheduler (scheduler.c:1514)
   by 0x...: thread_wrapper (syswrap-linux.c:101)
   by 0x...: run_a_thread_NORETURN (syswrap-linux.c:154)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable (lwpid 3061002)
   at 0x...: extract_gf (sk_gen.c:43)
   by 0x...: crypto_kem_mceliece8192128pc_avx_constbranchindex_genpoly_gen (sk_gen.c:153)
   by 0x...: crypto_kem_mceliece8192128pc_avx_constbranchindex_operation_keypair (kem_keypair.c:57)
   by 0x...: crypto_kem_mceliece8192128pc_avx_constbranchindex_keypair (wrap_keypair.c:10)
   by 0x...: test (try.c:126)
   by 0x...: main (try-anything.c:345)
client stack range: [0x1FFEFDD000 0x1FFF000FFF] client SP: 0x1FFEFDE4E0
valgrind stack range: [0x1008BAE000 0x1008CADFFF] top usage: 18792 of 1048576
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

TIMECOP error (can be valgrind bug)


error 1
VEX temporary storage exhausted.
Pool = TEMP,  start 0x597c5528 curr 0x59c787f8 end 0x59c8a067 (size 5000000)
vex: the `impossible' happened:
VEX temporary storage exhausted.
Increase N_{TEMPORARY,PERMANENT}_BYTES and recompile.
vex storage: T total 305317200 bytes allocated
vex storage: P total 512 bytes allocated
valgrind: the 'impossible' happened:
LibVEX called failure_exit().
host stacktrace:
   at 0x...: show_sched_status_wrk (m_libcassert.c:406)
   by 0x...: report_and_quit (m_libcassert.c:477)
   by 0x...: panic (m_libcassert.c:553)
   by 0x...: vgPlain_core_panic_at (m_libcassert.c:558)
   by 0x...: vgPlain_core_panic (m_libcassert.c:563)
   by 0x...: failure_exit (m_translate.c:761)
   by 0x...: vpanic (main_util.c:253)
   by 0x...: private_LibVEX_alloc_OOM (main_util.c:181)
   by 0x...: LibVEX_Alloc_inline (main_util.h:176)
   by 0x...: addHInstr_SLOW (host_generic_regs.c:332)
   by 0x...: emit_instr (host_generic_reg_alloc3.c:301)
   by 0x...: doRegisterAllocation_v3 (host_generic_reg_alloc3.c:1320)
   by 0x...: libvex_BackEnd (main_main.c:1133)
   by 0x...: LibVEX_Translate (main_main.c:1236)
   by 0x...: vgPlain_translate (m_translate.c:1831)
   by 0x...: handle_chain_me (scheduler.c:1169)
   by 0x...: vgPlain_scheduler (scheduler.c:1514)
   by 0x...: thread_wrapper (syswrap-linux.c:101)
   by 0x...: run_a_thread_NORETURN (syswrap-linux.c:154)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable (lwpid 3075955)
   at 0x...: extract_gf (sk_gen.c:43)
   by 0x...: crypto_kem_mceliece8192128pc_sse_constbranchindex_genpoly_gen (sk_gen.c:153)
   by 0x...: crypto_kem_mceliece8192128pc_sse_constbranchindex_operation_keypair (kem_keypair.c:57)
   by 0x...: crypto_kem_mceliece8192128pc_sse_constbranchindex_keypair (wrap_keypair.c:10)
   by 0x...: test (try.c:126)
   by 0x...: main (try-anything.c:345)
client stack range: [0x1FFEFDD000 0x1FFF000FFF] client SP: 0x1FFEFDE4E0
valgrind stack range: [0x1008BAE000 0x1008CADFFF] top usage: 18792 of 1048576
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
ssegcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Passed TIMECOP


TIMECOP iterations: 1

Number of similar (implementation,compiler) pairs: 32, namely:
ImplementationCompiler
avxclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
sseclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
sseclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
ssegcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
ssegcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
ssegcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
vecclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
vecclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
vecclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
vecclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
vecclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
vecgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
vecgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
vecgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
vecgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)