Implementation notes: amd64, cannon, crypto_kem/bike2l1nc

Computer: cannon
Architecture: amd64
CPU ID: GenuineIntel-00060663-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_kem
Primitive: bike2l1nc
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
71433828701 448 052700 1128 1608avx512_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
71434426734 448 047892 1128 1608avx512_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
73490026589 448 047820 1128 1608avx512_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
77571827447 224 052172 1128 1608avx2_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
78225425477 224 047364 1128 1608avx2_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
79874425322 224 047276 1128 1608avx2_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
1249946423449 32 050158 1056 1608ref_osslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
1250522423109 32 049518 1056 1608ref_osslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
1255244823109 32 049518 1056 1608ref_osslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
1593485025132 32 050988 1032 1608ref_osslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
1605215822927 32 046012 1032 1608ref_osslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
1617713010000 32 033196 1048 1576ref_osslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019091620190910
2850748223070 32 046084 1032 1608ref_osslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910
2861838421177 32 043716 1024 1576ref_osslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091620190910

Test failure

Implementation: avx2_ossl
Security model: unknown
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: avx2_ntl
Security model: unknown
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
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ntl
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ntl
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ntl
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ntl
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ntl
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ntl
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ntl

Compiler output

Implementation: avx2_ntl
Security model: unknown
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: 8, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2_ntl
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx512_ntl
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx512_ntl
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx512_ntl
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx512_ntl

Compiler output

Implementation: avx2_ossl
Security model: unknown
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
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ossl
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ossl
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2_ossl
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ossl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ossl
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ossl
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx512_ossl

Compiler output

Implementation: ref_ntl
Security model: unknown
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]
decode_portable.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: ref_ntl
Security model: unknown
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
gf2x_mul.c: In file included from bike_defs.h:19,
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