Implementation notes: amd64, luft, crypto_kem/firesaber2

Computer: luft
Architecture: amd64
CPU ID: GenuineIntel-000306d4-bfebfbff
SUPERCOP version: 20200702
Operation: crypto_kem
Primitive: firesaber2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
49346865498 0 081920 4096 0refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
54000880781 32 098304 4096 0avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
54187280781 32 098304 4096 0avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
54366092780 32 0110592 4096 0avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
61912429841 32 045056 4096 0avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
83620877705 0 094208 4096 0refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
88831665498 0 081920 4096 0refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
116256897031 0 0114688 4096 0refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702
371758814752 0 028672 4096 0refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020071320200702

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
measure.c: ld: warning: could not create compact unwind for _crypto_stream_aes256ctr_dolbeau_aesenc_int_xor: register 3 saved somewhere other than in frame

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

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:9:
SABER_indcpa.c: In file included from ././polymul/toom-cook_4way.c:6:
SABER_indcpa.c: ././polymul/scm_avx.c:43:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: temp = _mm256_mullo_epi16 (a0, b1);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:45:13: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: c_avx[1] = _mm256_add_epi16(temp, c_avx[1]);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:48:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: temp = _mm256_mullo_epi16 (a0, b2);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:51:13: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: c_avx[2] = _mm256_add_epi16(temp, c_avx[2]);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:54:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: temp = _mm256_mullo_epi16 (a0, b3);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:58:13: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: c_avx[3] = _mm256_add_epi16(temp, c_avx[3]);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:60:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: temp = _mm256_mullo_epi16 (a0, b4);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:65:13: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c: c_avx[4] = _mm256_add_epi16(temp, c_avx[4]);
SABER_indcpa.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Compiler output

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: duplicate symbol '_inv9_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_int45_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_inv15_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_inv3_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_int0_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_int30_avx' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock_matrix' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_matrix_vec_count' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock_secret' in:
try.c: ...

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
SABER_indcpa.c: In file included from SABER_indcpa.c:6:
SABER_indcpa.c: ./poly_mul.inc:20:43: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
SABER_indcpa.c: printf(" Mod(%d,%lu)*x^%d + ", a[i], p,i);
SABER_indcpa.c: ~~~ ^
SABER_indcpa.c: %llu
SABER_indcpa.c: ./poly_mul.inc:22:41: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
SABER_indcpa.c: printf(" Mod(%d,%lu)*x^%d ", a[i], p,i);
SABER_indcpa.c: ~~~ ^
SABER_indcpa.c: %llu
SABER_indcpa.c: 2 warnings generated.
measure.c: ld: warning: could not create compact unwind for _crypto_stream_aes256ctr_dolbeau_aesenc_int_xor: register 3 saved somewhere other than in frame

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: duplicate symbol '_clock_kp_mv' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock_cl_mv' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock_kp_sm' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock_cl_sm' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock2' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: duplicate symbol '_clock1' in:
try.c: crypto_kem_firesaber2.a(kem.o)
try.c: crypto_kem_firesaber2.a(SABER_indcpa.o)
try.c: ld: 6 duplicate symbols for architecture x86_64
try.c: collect2: error: ld returned 1 exit status

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