Implementation notes: amd64, samba, crypto_kem/firesaber2

Computer: samba
Microarchitecture: amd64; Skylake (506e3)
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: firesaber2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `int45_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `inv3_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x80): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x40): multiple definition of `inv9_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xa0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x60): multiple definition of `int0_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x120): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x80): multiple definition of `int30_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xa0): multiple definition of `inv15_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xc0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xc0): multiple definition of `mask'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x60): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x160): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x168): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x170): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x178): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x180): multiple definition of `clock_matrix_vec'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x188): multiple definition of `matrix_vec_count'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x190): multiple definition of `clock_samp'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x30): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x198): multiple definition of `clock_arith'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x38): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1a0): multiple definition of `clock_load'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x40): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1a8): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x48): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1b0): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x50): first defined here
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
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:40:13: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c: c_avx[0] = mul_add(a0, b0, c_avx[0]);
SABER_indcpa.c: ^
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:43:9: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
SABER_indcpa.c: ././polymul/scm_avx.c:44:7: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c: temp=mul_add(a1, b0, temp);
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:45:13: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
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:48:9: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
SABER_indcpa.c: ././polymul/scm_avx.c:49:9: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c: temp = mul_add(a1, b1, temp);
SABER_indcpa.c: ^
SABER_indcpa.c: ././polymul/scm_avx.c:50:7: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c: temp=mul_add(a2, b0, temp);
SABER_indcpa.c: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xc0): multiple definition of `int45_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x40): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x120): multiple definition of `inv3_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xa0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x100): multiple definition of `inv9_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x80): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x80): multiple definition of `int0_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xa0): multiple definition of `int30_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xe0): multiple definition of `inv15_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x60): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x140): multiple definition of `mask'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xc0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x198): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x118): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1b0): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x130): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x160): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x168): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x170): multiple definition of `clock_load'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xf0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x178): multiple definition of `clock_arith'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xf8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x180): multiple definition of `clock_samp'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x188): multiple definition of `matrix_vec_count'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x108): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x190): multiple definition of `clock_matrix_vec'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x110): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1a0): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x120): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x1a8): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x128): first defined here
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 T:avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2

Compiler output

Implementation: T:avx2_nttmul
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x8): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x10): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x18): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `clock_mv_vv_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x28): multiple definition of `count_enc'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x30): multiple definition of `clock_kp_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x30): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x38): multiple definition of `clock_enc_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x38): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x40): multiple definition of `clock_dec_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x40): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x48): multiple definition of `clock_kp_temp'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x48): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x60): multiple definition of `mask'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x60): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x80): multiple definition of `inv3_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x80): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xa0): multiple definition of `inv9_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xa0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xc0): multiple definition of `inv15_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xc0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xe0): multiple definition of `int45_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x100): multiple definition of `int30_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x120): multiple definition of `int0_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x120): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x0): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x8): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x10): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x18): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x20): multiple definition of `clock_mv_vv_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x28): multiple definition of `count_enc'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(pack_unpack.o):(.bss+0x0): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(pack_unpack.o):(.bss+0x8): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: ...

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

Compiler output

Implementation: T:avx2_nttmul
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
poly.c: poly.c:31:26: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i u_pinv = _mm256_set1_epi16(CRT_U_PINV);
poly.c: ^
poly.c: poly.c:31:26: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:32:21: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i u = _mm256_set1_epi16(CRT_U);
poly.c: ^
poly.c: poly.c:32:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:33:22: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i p0 = _mm256_load_si256((__m256i *)&PDATA0[_16XP]);
poly.c: ^
poly.c: poly.c:33:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:34:22: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i p1 = _mm256_load_si256((__m256i *)&PDATA1[_16XP]);
poly.c: ^
poly.c: poly.c:34:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:35:23: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i mod = _mm256_set1_epi16(KEM_Q-1);
poly.c: ^
poly.c: poly.c:35:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:36:30: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: const __m256i mont0_pinv = _mm256_load_si256((__m256i *)&PDATA0[_16XMONT_PINV]);
poly.c: ^
poly.c: poly.c:36:30: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:37:25: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: ...

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

Compiler output

Implementation: T:avx2_nttmul
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `int0_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `int30_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x40): multiple definition of `int45_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x40): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x60): multiple definition of `inv15_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x60): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x80): multiple definition of `inv9_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x80): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xa0): multiple definition of `inv3_avx'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xa0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xc0): multiple definition of `mask'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xc0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xe0): multiple definition of `clock_kp_temp'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xe8): multiple definition of `clock_dec_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xe8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xf0): multiple definition of `clock_enc_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xf0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0xf8): multiple definition of `clock_kp_kex'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0xf8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x100): multiple definition of `count_enc'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x108): multiple definition of `clock_mv_vv_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x108): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x110): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x110): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x118): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x118): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x120): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x120): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x128): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x128): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x0): multiple definition of `count_enc'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x8): multiple definition of `clock_mv_vv_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x108): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x10): multiple definition of `count_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x110): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x18): multiple definition of `clock_secret'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x118): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x20): multiple definition of `clock_matrix'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x120): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(cbd.o):(.bss+0x28): multiple definition of `clock_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x128): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(pack_unpack.o):(.bss+0x0): multiple definition of `count_enc'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x100): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(pack_unpack.o):(.bss+0x8): multiple definition of `clock_mv_vv_mul'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x108): first defined here
try.c: ...

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x8): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x10): multiple definition of `clock_kp_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x18): multiple definition of `clock_cl_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `clock_kp_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x28): multiple definition of `clock_cl_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x0): multiple definition of `clock_cl_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x8): multiple definition of `clock_kp_sm'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x8): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x10): multiple definition of `clock_cl_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x10): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x18): multiple definition of `clock_kp_mv'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x18): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x20): multiple definition of `clock2'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x20): first defined here
try.c: /usr/bin/ld: libcrypto_kem_firesaber2.a(SABER_indcpa.o):(.bss+0x28): multiple definition of `clock1'; libcrypto_kem_firesaber2.a(kem.o):(.bss+0x28): first defined here
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 T:ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref