Implementation notes: amd64, gcc67, crypto_kem/bikel1

Computer: gcc67
Architecture: amd64
CPU ID: AuthenticAMD-00810f10-178bfbff
SUPERCOP version: 20210125
Operation: crypto_kem
Primitive: bikel1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
389466822496 64 442487 900 1716T:avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
391286622496 64 442487 900 1716T:avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
394090823038 64 443903 900 1716T:avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
418800139008 64 460918 924 1748T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
570169432177 64 452238 924 1748T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
570635231610 64 451278 924 1748T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
593982114843 64 433526 916 1716T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
620669315239 64 433553 892 1716T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
704649524949 56 444911 892 1716T:aes-ni-and-pclmulclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
705106024949 56 444911 892 1716T:aes-ni-and-pclmulclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
705715925039 56 445887 892 1716T:aes-ni-and-pclmulclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
810882563059 56 484862 916 1748T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
947897913585 56 432190 908 1716T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
958178928792 56 448350 916 1748T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1088768314365 56 432665 884 1716T:aes-ni-and-pclmulclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1330370728891 56 448806 916 1748T:aes-ni-and-pclmulgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1547880124458 56 445327 892 1716T:aes-ni-onlyclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1553560824368 56 444351 892 1716T:aes-ni-onlyclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1555917222077 48 443557 940 1716T:portableclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1556301824368 56 444351 892 1716T:aes-ni-onlyclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1588209121987 48 442581 940 1716T:portableclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1590231221987 48 442581 940 1716T:portableclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1723942813159 56 431710 908 1716T:aes-ni-onlygcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1736857920746 48 441629 940 1716T:portableclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1780494229507 56 449422 916 1748T:aes-ni-onlygcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1790088726659 48 447216 964 1748T:portablegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1803885910919 48 430096 956 1716T:portablegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1807230813768 56 432041 884 1716T:aes-ni-onlyclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
1852027229002 56 448518 916 1748T:aes-ni-onlygcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1870959826297 48 446472 964 1748T:portablegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
1975398711697 48 430607 932 1716T:portableclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021012920210114
2188361554987 48 477424 964 1748T:portablegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114
2195925658123 56 479942 916 1748T:aes-ni-onlygcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021012920210114

Compiler output

Implementation: T:aes-ni-and-pclmul
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.c: aes.c:9:4: error: "This code requries support for AES_NI and SSSE3"
aes.c: # error "This code requries support for AES_NI and SSSE3"
aes.c: ^
aes.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-and-pclmul T:aes-ni-only T:avx2 T:avx512 T:avx512-vpclmul

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:22:10: warning: implicit declaration of function '_mm512_loadu_si512' is invalid in C99 [-Wimplicit-function-declaration]
decode.c: va = LOAD(&a_qwords[i]);
decode.c: ^
decode.c: ./x86_64_intrinsic.h:40:27: note: expanded from macro 'LOAD'
decode.c: # define LOAD(mem) _mm512_loadu_si512((mem))
decode.c: ^
decode.c: In file included from decode.c:39:
decode.c: ./gf2x.h:22:8: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'
decode.c: va = LOAD(&a_qwords[i]);
decode.c: ^ ~~~~~~~~~~~~~~~~~~
decode.c: ./gf2x.h:23:8: error: assigning to '__m512i' (vector of 8 'long long' values) from incompatible type 'int'
decode.c: vb = LOAD(&b_qwords[i]);
decode.c: ^ ~~~~~~~~~~~~~~~~~~
decode.c: ./gf2x.h:25:5: warning: implicit declaration of function '_mm512_storeu_si512' is invalid in C99 [-Wimplicit-function-declaration]
decode.c: STORE(&c_qwords[i], va ^ vb);
decode.c: ^
decode.c: ./x86_64_intrinsic.h:41:27: note: expanded from macro 'STORE'
decode.c: # define STORE(mem, reg) _mm512_storeu_si512((mem), (reg))
decode.c: ^
decode.c: 2 warnings and 2 errors generated.

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

Compiler output

Implementation: T:avx512
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
decode.c: In file included from decode.c:39:0:
decode.c: gf2x.h: In function 'gf2x_mod_add':
decode.c: gf2x.h:22:8: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
decode.c: va = LOAD(&a_qwords[i]);
decode.c:
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/6/include/immintrin.h:45:0,
decode.c: from x86_64_intrinsic.h:20,
decode.c: from defs.h:103,
decode.c: from bike_defs.h:10,
decode.c: from types.h:13,
decode.c: from decode.h:10,
decode.c: from decode.c:37:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/6/include/avx512fintrin.h:5819:1: error: inlining failed in call to always_inline '_mm512_storeu_si512': target specific option mismatch
decode.c: _mm512_storeu_si512 (void *__P, __m512i __A)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: In file included from defs.h:103:0,
decode.c: from bike_defs.h:10,
decode.c: from types.h:13,
decode.c: from decode.h:10,
decode.c: from decode.c:37:
decode.c: x86_64_intrinsic.h:41:27: note: called from here
decode.c: # define STORE(mem, reg) _mm512_storeu_si512((mem), (reg))
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: gf2x.h:25:5: note: in expansion of macro 'STORE'
decode.c: STORE(&c_qwords[i], va ^ vb);
decode.c: ...

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

Namespace violations

Implementation: T:aes-ni-and-pclmul
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.o aes256_enc T
aes.o aes256_key_expansion T
aes_ctr_prf.o aes_ctr_prf T
aes_ctr_prf.o init_aes_ctr_prf_state T
decode.o compute_syndrome T
decode.o decode T
error.o bike_errno B
gf2x_inv.o gf2x_mod_inv T
gf2x_ksqr_portable.o k_squaring T
gf2x_mul.o gf2x_mod_mul T
gf2x_mul.o gf2x_mod_sqr_in_place T
gf2x_mul_pclmul.o gf2x_mul_base T
gf2x_mul_pclmul.o gf2x_sqr T
rotate_portable.o rotate_right T
sampling.o generate_error_vector T
sampling.o generate_indices_mod_z T
sampling.o generate_sparse_rep T
sampling.o get_seeds T
sampling.o sample_uniform_r_bits T
sampling.o sample_uniform_r_bits_with_fixed_prf_context T
sampling_portable.o secure_set_bits T
sha.o sha T
utilities.o r_bits_vector_weight T

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-and-pclmul
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-and-pclmul
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-and-pclmul
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-and-pclmul
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-and-pclmul
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-and-pclmul
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-and-pclmul
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-and-pclmul

Namespace violations

Implementation: T:aes-ni-only
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.o aes256_enc T
aes.o aes256_key_expansion T
aes_ctr_prf.o aes_ctr_prf T
aes_ctr_prf.o init_aes_ctr_prf_state T
decode.o compute_syndrome T
decode.o decode T
error.o bike_errno B
gf2x_inv.o gf2x_mod_inv T
gf2x_ksqr_portable.o k_squaring T
gf2x_mul.o gf2x_mod_mul T
gf2x_mul.o gf2x_mod_sqr_in_place T
gf2x_mul_portable.o gf2x_mul_base T
gf2x_mul_portable.o gf2x_sqr T
rotate_portable.o rotate_right T
sampling.o generate_error_vector T
sampling.o generate_indices_mod_z T
sampling.o generate_sparse_rep T
sampling.o get_seeds T
sampling.o sample_uniform_r_bits T
sampling.o sample_uniform_r_bits_with_fixed_prf_context T
sampling_portable.o secure_set_bits T
sha.o sha T
utilities.o r_bits_vector_weight T

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-only
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-only
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-only
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:aes-ni-only
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-only
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-only
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-only
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:aes-ni-only

Namespace violations

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes.o aes256_enc T
aes.o aes256_key_expansion T
aes_ctr_prf.o aes_ctr_prf T
aes_ctr_prf.o init_aes_ctr_prf_state T
decode.o compute_syndrome T
decode.o decode T
error.o bike_errno B
gf2x_inv.o gf2x_mod_inv T
gf2x_ksqr_avx2.o generate_map T
gf2x_ksqr_avx2.o k_squaring T
gf2x_mul.o gf2x_mod_mul T
gf2x_mul.o gf2x_mod_sqr_in_place T
gf2x_mul_pclmul.o gf2x_mul_base T
gf2x_mul_pclmul.o gf2x_sqr T
rotate_avx2.o rotate_right T
sampling.o generate_error_vector T
sampling.o generate_indices_mod_z T
sampling.o generate_sparse_rep T
sampling.o get_seeds T
sampling.o sample_uniform_r_bits T
sampling.o sample_uniform_r_bits_with_fixed_prf_context T
sampling_avx2.o secure_set_bits T
sha.o sha T
utilities.o r_bits_vector_weight T

Number of similar (compiler,implementation) pairs: 8, 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
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

Namespace violations

Implementation: T:portable
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
aes_ctr_prf.o aes_ctr_prf T
aes_ctr_prf.o init_aes_ctr_prf_state T
decode.o compute_syndrome T
decode.o decode T
error.o bike_errno B
gf2x_inv.o gf2x_mod_inv T
gf2x_ksqr_portable.o k_squaring T
gf2x_mul.o gf2x_mod_mul T
gf2x_mul.o gf2x_mod_sqr_in_place T
gf2x_mul_portable.o gf2x_mul_base T
gf2x_mul_portable.o gf2x_sqr T
rotate_portable.o rotate_right T
sampling.o generate_error_vector T
sampling.o generate_indices_mod_z T
sampling.o generate_sparse_rep T
sampling.o get_seeds T
sampling.o sample_uniform_r_bits T
sampling.o sample_uniform_r_bits_with_fixed_prf_context T
sampling_portable.o secure_set_bits T
utilities.o r_bits_vector_weight T

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