Implementation notes: amd64, cannon, crypto_kem/bike2l1sc

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_kem
Primitive: bike2l1sc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
304725029039 448 054292 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
322788627833 224 053076 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
323958426407 448 048956 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
325253826703 448 049188 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
340064425188 224 047724 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
342881025494 224 047972 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
384740433885 32 060342 1056 1608ref_osslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
385246233885 32 060342 1056 1608ref_osslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
386071234170 32 060910 1056 1608ref_osslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
2806600226936 32 052812 1032 1608ref_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
2828122624383 32 047412 1032 1608ref_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
3315995824201 32 047300 1032 1608ref_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
3546820622307 32 044860 1024 1576ref_osslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
3551718411533 32 034780 1048 1576ref_osslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910

Test failure

Implementation: crypto_kem/bike2l1sc/avx2_ossl
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111
*** stack smashing detected ***: <unknown> terminated

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ossl avx512_ossl

Compiler output

Implementation: crypto_kem/bike2l1sc/ref_ntl
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
aes_ctr_prf.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
converts_portable.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
decode.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
gf2x_mul.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
gf2x_mul.c: gf2x_mul.c:56:25: error: static_assert expression is not an integral constant expression
gf2x_mul.c: bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: ~^~~~~~~~~~~
gf2x_mul.c: ./defs.h:39:53: note: expanded from macro 'bike_static_assert'
gf2x_mul.c: #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: ^~~~
gf2x_mul.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 ref_ntl
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref_ntl
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref_ntl
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref_ntl

Compiler output

Implementation: crypto_kem/bike2l1sc/avx2_ntl
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
aes_ctr_prf.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
decode.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
gf2x_mul.c: clang-8: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
gf2x_mul.c: gf2x_mul.c:56:25: error: static_assert expression is not an integral constant expression
gf2x_mul.c: bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: ~^~~~~~~~~~~
gf2x_mul.c: ./defs.h:39:53: note: expanded from macro 'bike_static_assert'
gf2x_mul.c: #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: ^~~~
gf2x_mul.c: 1 error generated.

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

Compiler output

Implementation: crypto_kem/bike2l1sc/avx2_ossl
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: <unknown>:0: error: expression could not be evaluated
converts.S: ...

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

Compiler output

Implementation: crypto_kem/bike2l1sc/ref_ntl
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
gf2x_mul.c: In file included from bike_defs.h:20,
gf2x_mul.c: from types.h:15,
gf2x_mul.c: from gf2x.h:15,
gf2x_mul.c: from gf2x_mul.c:12:
gf2x_mul.c: gf2x_mul.c: In function 'void karatzuba(uint64_t*, const uint64_t*, const uint64_t*, uint64_t, uint64_t*)':
gf2x_mul.c: gf2x_mul.c:56:31: error: non-constant condition for static assertion
gf2x_mul.c: 56 | bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: | ~~~~~~~^~~~~
gf2x_mul.c: defs.h:39:53: note: in definition of macro 'bike_static_assert'
gf2x_mul.c: 39 | #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: | ^~~~
gf2x_mul.c: gf2x_mul.c:56:31: error: 'n' is not a constant expression
gf2x_mul.c: 56 | bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: | ~~~~~~~^~~~~
gf2x_mul.c: defs.h:39:53: note: in definition of macro 'bike_static_assert'
gf2x_mul.c: 39 | #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: | ^~~~

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

Compiler output

Implementation: crypto_kem/bike2l1sc/avx2_ntl
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
gf2x_mul.c: In file included from bike_defs.h:21,
gf2x_mul.c: from types.h:15,
gf2x_mul.c: from gf2x.h:15,
gf2x_mul.c: from gf2x_mul.c:12:
gf2x_mul.c: gf2x_mul.c: In function 'void karatzuba(uint64_t*, const uint64_t*, const uint64_t*, uint64_t, uint64_t*)':
gf2x_mul.c: gf2x_mul.c:56:31: error: non-constant condition for static assertion
gf2x_mul.c: 56 | bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: | ~~~~~~~^~~~~
gf2x_mul.c: defs.h:39:53: note: in definition of macro 'bike_static_assert'
gf2x_mul.c: 39 | #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: | ^~~~
gf2x_mul.c: gf2x_mul.c:56:31: error: 'n' is not a constant expression
gf2x_mul.c: 56 | bike_static_assert((n % 2 == 0), karatzuba_n_is_odd);
gf2x_mul.c: | ~~~~~~~^~~~~
gf2x_mul.c: defs.h:39:53: note: in definition of macro 'bike_static_assert'
gf2x_mul.c: 39 | #define bike_static_assert(COND, MSG) static_assert(COND, "MSG")
gf2x_mul.c: | ^~~~

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl avx512_ntl
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl avx512_ntl
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl avx512_ntl
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl avx512_ntl