Implementation notes: amd64, oki, crypto_kem/bike2l1sc

Computer: oki
Architecture: amd64
CPU ID: GenuineIntel-00050654-bfebfbff
SUPERCOP version: 20181123
Operation: crypto_kem
Primitive: bike2l1sc

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: cc
aes_ctr_prf.c: In file included from aes_ctr_prf.c:14:0:
aes_ctr_prf.c: utilities.h: In function 'safe_cmp':
aes_ctr_prf.c: utilities.h:49:3: error: 'for' loop initial declarations are only allowed in C99 mode
aes_ctr_prf.c: for(uint32_t i=0; i < size; ++i)
aes_ctr_prf.c: ^
aes_ctr_prf.c: utilities.h:49:3: note: use option -std=c99 or -std=gnu99 to compile your code
aes_ctr_prf.c: utilities.h: In function 'iszero':
aes_ctr_prf.c: utilities.h:61:5: error: 'for' loop initial declarations are only allowed in C99 mode
aes_ctr_prf.c: for (uint64_t i = 0; i < len; i++)
aes_ctr_prf.c: ^

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc avx2_ossl avx512_ossl ref_ossl

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
converts.S: converts.S:47:11: error: unknown token in expression
converts.S: .set out, %rdi
converts.S: ^
converts.S: converts.S:47:11: error: missing expression
converts.S: .set out, %rdi
converts.S: ^
converts.S: converts.S:49:11: error: unknown token in expression
converts.S: .set len, %rdx
converts.S: ^
converts.S: converts.S:49:11: error: missing expression
converts.S: .set len, %rdx
converts.S: ^
converts.S: converts.S:51:14: error: unknown token in expression
converts.S: .set in_itr, %r8
converts.S: ^
converts.S: converts.S:51:14: error: missing expression
converts.S: .set in_itr, %r8
converts.S: ^
converts.S: converts.S:53:15: error: unknown token in expression
converts.S: .set out_itr, %r10
converts.S: ^
converts.S: converts.S:53:15: error: missing expression
converts.S: .set out_itr, %r10
converts.S: ^
converts.S: converts.S:55:12: error: unknown token in expression
converts.S: ...

Number of similar (compiler,implementation) pairs: 20, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2_ossl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2_ossl
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2_ossl
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2_ossl
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx2_ossl
clang -O3 -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx512_ossl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx512_ossl
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx512_ossl
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx512_ossl
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx512_ossl

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: gcc
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `invert_poly':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc avx2_ossl
gcc -funroll-loops avx2_ossl
gcc avx512_ossl
gcc -funroll-loops avx512_ossl
gcc ref_ossl
gcc -funroll-loops ref_ossl

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: gcc -O2 -fomit-frame-pointer
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `mod_inv':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 231, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer avx2_ossl
gcc -O3 -fomit-frame-pointer avx2_ossl
gcc -O -fomit-frame-pointer avx2_ossl
gcc -Os -fomit-frame-pointer avx2_ossl
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx2_ossl
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx2_ossl
gcc -fno-schedule-insns -O -fomit-frame-pointer avx2_ossl
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=k8 -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=nocona -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx2_ossl
gcc -march=barcelona -O2 -fomit-frame-pointer avx2_ossl
gcc -march=barcelona -O3 -fomit-frame-pointer avx2_ossl
gcc -march=barcelona -O -fomit-frame-pointer avx2_ossl
gcc -march=barcelona -Os -fomit-frame-pointer avx2_ossl
gcc -march=k8 -O2 -fomit-frame-pointer avx2_ossl
gcc -march=k8 -O3 -fomit-frame-pointer avx2_ossl
gcc -march=k8 -O -fomit-frame-pointer avx2_ossl
gcc -march=k8 -Os -fomit-frame-pointer avx2_ossl
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx2_ossl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx2_ossl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx2_ossl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx2_ossl
gcc -march=nocona -O2 -fomit-frame-pointer avx2_ossl
gcc -march=nocona -O3 -fomit-frame-pointer avx2_ossl
gcc -march=nocona -O -fomit-frame-pointer avx2_ossl
gcc -march=nocona -Os -fomit-frame-pointer avx2_ossl
gcc -O2 -fomit-frame-pointer avx512_ossl
gcc -O3 -fomit-frame-pointer avx512_ossl
gcc -O -fomit-frame-pointer avx512_ossl
gcc -Os -fomit-frame-pointer avx512_ossl
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx512_ossl
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx512_ossl
gcc -fno-schedule-insns -O -fomit-frame-pointer avx512_ossl
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=k8 -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=nocona -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx512_ossl
gcc -march=barcelona -O2 -fomit-frame-pointer avx512_ossl
gcc -march=barcelona -O3 -fomit-frame-pointer avx512_ossl
gcc -march=barcelona -O -fomit-frame-pointer avx512_ossl
gcc -march=barcelona -Os -fomit-frame-pointer avx512_ossl
gcc -march=k8 -O2 -fomit-frame-pointer avx512_ossl
gcc -march=k8 -O3 -fomit-frame-pointer avx512_ossl
gcc -march=k8 -O -fomit-frame-pointer avx512_ossl
gcc -march=k8 -Os -fomit-frame-pointer avx512_ossl
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx512_ossl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx512_ossl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx512_ossl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx512_ossl
gcc -march=nocona -O2 -fomit-frame-pointer avx512_ossl
gcc -march=nocona -O3 -fomit-frame-pointer avx512_ossl
gcc -march=nocona -O -fomit-frame-pointer avx512_ossl
gcc -march=nocona -Os -fomit-frame-pointer avx512_ossl
gcc -O2 -fomit-frame-pointer ref_ossl
gcc -O3 -fomit-frame-pointer ref_ossl
gcc -O -fomit-frame-pointer ref_ossl
gcc -Os -fomit-frame-pointer ref_ossl
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref_ossl
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref_ossl
gcc -fno-schedule-insns -O -fomit-frame-pointer ref_ossl
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref_ossl
gcc -m64 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -O -fomit-frame-pointer ref_ossl
gcc -m64 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=k8 -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref_ossl
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=nocona -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref_ossl
gcc -march=barcelona -O2 -fomit-frame-pointer ref_ossl
gcc -march=barcelona -O3 -fomit-frame-pointer ref_ossl
gcc -march=barcelona -O -fomit-frame-pointer ref_ossl
gcc -march=barcelona -Os -fomit-frame-pointer ref_ossl
gcc -march=k8 -O2 -fomit-frame-pointer ref_ossl
gcc -march=k8 -O3 -fomit-frame-pointer ref_ossl
gcc -march=k8 -O -fomit-frame-pointer ref_ossl
gcc -march=k8 -Os -fomit-frame-pointer ref_ossl
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref_ossl
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref_ossl
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref_ossl
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref_ossl
gcc -march=nocona -O2 -fomit-frame-pointer ref_ossl
gcc -march=nocona -O3 -fomit-frame-pointer ref_ossl
gcc -march=nocona -O -fomit-frame-pointer ref_ossl
gcc -march=nocona -Os -fomit-frame-pointer ref_ossl

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: gcc -funroll-loops -O2 -fomit-frame-pointer
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `mod_inv':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o):openssl_utils.c:(.text+0x...): more undefined references to `BN_GF2m_mod_inv' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 81, namely:
CompilerImplementations
gcc -funroll-loops -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx2_ossl
gcc -funroll-loops -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx512_ossl
gcc -funroll-loops -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref_ossl
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref_ossl

Compiler output

Implementation: avx2_ossl
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `mod_inv':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: collect2: error: ld returned 1 exit status
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `mod_inv':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx2_ossl
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx2_ossl
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx2_ossl
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx512_ossl
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx512_ossl
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx512_ossl
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref_ossl
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref_ossl
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref_ossl
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref_ossl

Compiler output

Implementation: ref_ossl
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
try.c: /usr/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `ossl_add':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_add'
try.c: /usr/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `cyclic_product':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_mul'
try.c: /usr/bin/ld: crypto_kem_bike2l1sc.a(openssl_utils.o): in function `mod_inv':
try.c: openssl_utils.c:(.text+0x...): undefined reference to `BN_GF2m_mod_inv'
try.c: clang-3.8: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref_ossl
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref_ossl
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref_ossl
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref_ossl
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref_ossl
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref_ossl
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref_ossl
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref_ossl

Compiler output

Implementation: ref_ossl
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x1d998b0: v4i64 = X86ISD::VTRUNC 0x1d996e0
try.c: 0x1d996e0: v16i32 = vselect 0x1d96320, 0x1d1b0b0, 0x1d995b0
try.c: 0x1d96320: v4i1 = X86ISD::PCMPGTM 0x1d815d0, 0x1d1be60
try.c: 0x1d815d0: v4i64 = X86ISD::VBROADCAST 0x1d1c1f0
try.c: 0x1d1c1f0: i64,ch = load<LD8[%uglygep72]> 0x1c7cdd0, 0x1d3a5e0, undef:i64
try.c: 0x1d3a5e0: i64 = add 0x1d824b0, 0x1cfd3e0
try.c: 0x1d824b0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1d37870: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1cfd3e0: i64 = shl 0x1d37020, Constant:i8<3>
try.c: 0x1d37020: i64,ch = CopyFromReg 0x1c7cdd0, Register:i64 %vreg50
try.c: 0x1d82970: i64 = Register %vreg50
try.c: 0x1d16e70: i8 = Constant<3>
try.c: 0x1d7fc40: i64 = undef
try.c: 0x1d1be60: v4i64,ch = CopyFromReg 0x1c7cdd0, Register:v4i64 %vreg13
try.c: 0x1d2d1e0: v4i64 = Register %vreg13
try.c: 0x1d1b0b0: v16i32 = X86ISD::VBROADCAST 0x1d37280
try.c: 0x1d37280: i32,ch = load<LD4[ConstantPool]> 0x1c7cdd0, 0x1d99220, undef:i64
try.c: 0x1d99220: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1d43950: i64 = TargetConstantPool<i32 1> 0
try.c: 0x1d7fc40: i64 = undef
try.c: 0x1d995b0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x1d99480: i32 = Constant<0>
try.c: 0x1d99480: i32 = Constant<0>
try.c: 0x1d99480: i32 = Constant<0>
try.c: 0x1d99480: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: ref_ossl
Security model: unknown
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: fatal error: error in backend: Cannot select: 0x19c91c0: v4i64 = X86ISD::VTRUNC 0x19c8ff0
try.c: 0x19c8ff0: v16i32 = vselect 0x19a9cc0, 0x1970a00, 0x19c8ec0
try.c: 0x19a9cc0: v4i1 = X86ISD::PCMPGTM 0x19b4ad0, 0x19717b0
try.c: 0x19b4ad0: v4i64 = X86ISD::VBROADCAST 0x1971b40
try.c: 0x1971b40: i64,ch = load<LD8[%uglygep72]> 0x18aedd0, 0x1973900, undef:i64
try.c: 0x1973900: i64 = add 0x19b59b0, 0x1966bd0
try.c: 0x19b59b0: i64 = X86ISD::Wrapper TargetGlobalAddress:i64<[64 x i64]* @cycles> 0
try.c: 0x1994640: i64 = TargetGlobalAddress<[64 x i64]* @cycles> 0
try.c: 0x1966bd0: i64 = shl 0x1993df0, Constant:i8<3>
try.c: 0x1993df0: i64,ch = CopyFromReg 0x18aedd0, Register:i64 %vreg50
try.c: 0x19b5e70: i64 = Register %vreg50
try.c: 0x1949e40: i8 = Constant<3>
try.c: 0x19b3140: i64 = undef
try.c: 0x19717b0: v4i64,ch = CopyFromReg 0x18aedd0, Register:v4i64 %vreg13
try.c: 0x196e870: v4i64 = Register %vreg13
try.c: 0x1970a00: v16i32 = X86ISD::VBROADCAST 0x1994050
try.c: 0x1994050: i32,ch = load<LD4[ConstantPool]> 0x18aedd0, 0x19c8b30, undef:i64
try.c: 0x19c8b30: i64 = X86ISD::Wrapper TargetConstantPool:i64<i32 1> 0
try.c: 0x1965280: i64 = TargetConstantPool<i32 1> 0
try.c: 0x19b3140: i64 = undef
try.c: 0x19c8ec0: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x19c8d90: i32 = Constant<0>
try.c: 0x19c8d90: i32 = Constant<0>
try.c: 0x19c8d90: i32 = Constant<0>
try.c: 0x19c8d90: i32 = Constant<0>
try.c: ...

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