Implementation notes: amd64, cannon, crypto_kem/bike3l1sc

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_kem
Primitive: bike3l1sc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
533226429831 448 055092 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
547202027751 448 050308 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
554029228625 224 053876 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
554353828005 448 050508 1480 1608avx512_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
568455426532 224 049076 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
578349434376 32 060830 1056 1608ref_osslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
579063626796 224 049292 1256 1608avx2_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
579327834376 32 060830 1056 1608ref_osslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
581191234662 32 061398 1056 1608ref_osslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
3753945227728 32 053612 1032 1608ref_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
4055832825685 32 048732 1032 1608ref_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
4358507225545 32 048652 1032 1608ref_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
4671291023599 32 046164 1024 1576ref_osslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
4891611611775 32 035028 1048 1576ref_osslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910

Test failure

Implementation: crypto_kem/bike3l1sc/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/bike3l1sc/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/bike3l1sc/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/bike3l1sc/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/bike3l1sc/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/bike3l1sc/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