Implementation notes: amd64, shoe, crypto_kem/mceliece6960119

Computer: shoe
Microarchitecture: amd64; Broadwell+AES (306d4)
Architecture: amd64
CPU ID: GenuineIntel-000306d4-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: mceliece6960119
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
421413142030 0 0193400 788 1784avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
426506146548 0 0198480 836 1752avxclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
429014130247 0 0182048 836 1752avxclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
45626486531 0 0136728 788 1784avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
46142883515 0 0132430 828 1752avxclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
58884484984 0 0134840 788 1784avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
59351480339 0 0128888 780 1752avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
695158114406 0 0162336 820 1752sseclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
699947127879 0 0175944 820 1752sseclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
701146132457 0 0179816 788 1784ssegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
73976683271 0 0129424 788 1784ssegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
74873774869 0 0120294 812 1752sseclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
76898295497 0 0146238 836 1752avxclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
77670677682 0 0123456 788 1784ssegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
81442673594 0 0118072 780 1752ssegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
116879388823 0 0137886 812 1752sseclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
177476292240 0 0143984 788 1784vecgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
187709382623 0 0135376 820 1752vecclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
194658796384 0 0148632 828 1752vecclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
228297293413 0 0146320 828 1752vecclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
234836444254 0 093718 820 1752vecclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
281317248471 0 099264 788 1784vecgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
301611043937 0 094670 820 1752vecclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
369673047593 0 098056 788 1784vecgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
378728438593 0 087808 780 1752vecgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
27877606316073 0 062590 812 1752refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
29118480035143 0 084488 820 1752refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
29147903041625 0 091632 820 1752refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
29160384437204 0 087160 820 1752refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
30727879333525 0 083146 796 1784refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
36564891215002 0 062478 812 1752refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
37590488015337 0 063386 796 1784refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
38870188014491 0 062008 788 1784refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716
43898135411760 0 058026 788 1752refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024073120240716

Compiler output


bm.c: bm.c:79: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:81: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:82: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:83: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:84: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:85: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:86: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:87: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:88: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_11.0.1)

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

TIMECOP error (can be valgrind bug)


error 1
VEX temporary storage exhausted.
Pool = TEMP,  start 0x5965fbc8 curr 0x59b20a38 end 0x59b24707 (size 5000000)
vex: the `impossible' happened:
VEX temporary storage exhausted.
Increase N_{TEMPORARY,PERMANENT}_BYTES and recompile.
vex storage: T total 261723104 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...: addHInstr (host_generic_regs.h:402)
   by 0x...: emit_instr (host_generic_reg_alloc3.c:301)
   by 0x...: spill_vreg (host_generic_reg_alloc3.c:342)
   by 0x...: doRegisterAllocation_v3 (host_generic_reg_alloc3.c:1280)
   by 0x...: libvex_BackEnd (main_main.c:1133)
   by 0x...: LibVEX_Translate (main_main.c:1236)
   by 0x...: vgPlain_translate (m_translate.c:1828)
   by 0x...: handle_chain_me (scheduler.c:1166)
   by 0x...: vgPlain_scheduler (scheduler.c:1511)
   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 2989810)
   at 0x...: extract_gf (sk_gen.c:43)
   by 0x...: crypto_kem_mceliece6960119_avx_constbranchindex_genpoly_gen (sk_gen.c:153)
   by 0x...: crypto_kem_mceliece6960119_avx_constbranchindex_operation_keypair (kem_keypair.c:57)
   by 0x...: crypto_kem_mceliece6960119_avx_constbranchindex_keypair (wrap_keypair.c:10)
   by 0x...: test (try.c:126)
   by 0x...: main (try-anything.c:345)
client stack range: [0x1FFEFDE000 0x1FFF000FFF] client SP: 0x1FFEFDED80
valgrind stack range: [0x1008EAA000 0x1008FA9FFF] top usage: 18472 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 (10.2.1_20210110)

TIMECOP error (can be valgrind bug)


error 1
VEX temporary storage exhausted.
Pool = TEMP,  start 0x5965fbc8 curr 0x59b20a38 end 0x59b24707 (size 5000000)
vex: the `impossible' happened:
VEX temporary storage exhausted.
Increase N_{TEMPORARY,PERMANENT}_BYTES and recompile.
vex storage: T total 264742928 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...: addHInstr (host_generic_regs.h:402)
   by 0x...: emit_instr (host_generic_reg_alloc3.c:301)
   by 0x...: spill_vreg (host_generic_reg_alloc3.c:342)
   by 0x...: doRegisterAllocation_v3 (host_generic_reg_alloc3.c:1280)
   by 0x...: libvex_BackEnd (main_main.c:1133)
   by 0x...: LibVEX_Translate (main_main.c:1236)
   by 0x...: vgPlain_translate (m_translate.c:1828)
   by 0x...: handle_chain_me (scheduler.c:1166)
   by 0x...: vgPlain_scheduler (scheduler.c:1511)
   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 3000730)
   at 0x...: extract_gf (sk_gen.c:43)
   by 0x...: crypto_kem_mceliece6960119_sse_constbranchindex_genpoly_gen (sk_gen.c:153)
   by 0x...: crypto_kem_mceliece6960119_sse_constbranchindex_operation_keypair (kem_keypair.c:57)
   by 0x...: crypto_kem_mceliece6960119_sse_constbranchindex_keypair (wrap_keypair.c:10)
   by 0x...: test (try.c:126)
   by 0x...: main (try-anything.c:345)
client stack range: [0x1FFEFDE000 0x1FFF000FFF] client SP: 0x1FFEFDED80
valgrind stack range: [0x1008E8E000 0x1008F8DFFF] top usage: 18472 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 (10.2.1_20210110)

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_11.0.1)
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)
avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
avxgcc -march=native -mtune=native -O2 -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)
avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
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)
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)
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)
ssegcc -march=native -mtune=native -O2 -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)
ssegcc -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)