Implementation notes: amd64, hiphop, crypto_kem/rqc128

Computer: hiphop
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20210423
Operation: crypto_kem
Primitive: rqc128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
377879138424 0 24129597 908 1712T:avxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
381970535960 0 24127133 908 1712T:avxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
383443335960 0 24127133 908 1712T:avxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
402022227994 0 24115241 892 1712T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
409754544221 0 24136381 916 1776T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
418612133823 0 24122901 916 1776T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
468964132312 0 24120917 916 1776T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
1340475039584 0 25130789 908 3792T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
1349466737152 0 25128325 908 3792T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
1351501937152 0 25128325 908 3792T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
1463262639328 0 25129717 908 3792T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
1731184047053 0 28139165 916 3840T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
2113654228499 0 25115697 892 3792T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021011920210114
2136744934327 0 28123309 916 3840T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
2217738132942 0 28121413 916 3840T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114
2233435128705 0 28116229 908 3808T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021011920210114

Test failure

Implementation: T:avx
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx

Compiler output

Implementation: T:avx
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rbc_elt.c: rbc_elt.c:466:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a0_b0 = _mm_clmulepi64_si128(a, b, 0x00);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/__wmmintrin_pclmul.h:54:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:468:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a0_b1 = _mm_clmulepi64_si128(a, b, 0x10);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/__wmmintrin_pclmul.h:54:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:469:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a1_b0 = _mm_clmulepi64_si128(a, b, 0x01);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/__wmmintrin_pclmul.h:54:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: rbc_elt.c:471:19: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
rbc_elt.c: __m128i a1_b1 = _mm_clmulepi64_si128(a, b, 0x11);
rbc_elt.c: ^
rbc_elt.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/__wmmintrin_pclmul.h:54:13: note: expanded from macro '_mm_clmulepi64_si128'
rbc_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
rbc_elt.c: ^
rbc_elt.c: 4 errors generated.

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

Namespace violations

Implementation: T:avx
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gabidulin.o rbc_gabidulin_decode T
gabidulin.o rbc_gabidulin_encode T
gabidulin.o rbc_gabidulin_init T
parsing.o rqc_kem_ciphertext_from_string T
parsing.o rqc_kem_ciphertext_to_string T
parsing.o rqc_public_key_from_string T
parsing.o rqc_public_key_to_string T
parsing.o rqc_secret_key_from_string T
parsing.o rqc_secret_key_to_string T
qpoly.o rbc_qpoly_add T
qpoly.o rbc_qpoly_clear T
qpoly.o rbc_qpoly_evaluate T
qpoly.o rbc_qpoly_init T
qpoly.o rbc_qpoly_is_zero T
qpoly.o rbc_qpoly_left_div T
qpoly.o rbc_qpoly_left_div2 T
qpoly.o rbc_qpoly_mul T
qpoly.o rbc_qpoly_mul2 T
qpoly.o rbc_qpoly_print T
qpoly.o rbc_qpoly_qexp T
qpoly.o rbc_qpoly_scalar_mul T
qpoly.o rbc_qpoly_set T
qpoly.o rbc_qpoly_set_interpolate_vect_and_zero T
qpoly.o rbc_qpoly_set_mask T
qpoly.o rbc_qpoly_set_one T
qpoly.o rbc_qpoly_set_zero T
qpoly.o rbc_qpoly_update_degree T
rbc_elt.o rbc_elt_add T
rbc_elt.o rbc_elt_get_coefficient T
rbc_elt.o rbc_elt_get_degree T
rbc_elt.o rbc_elt_inv T
rbc_elt.o rbc_elt_is_equal_to T
rbc_elt.o rbc_elt_is_greater_than T
rbc_elt.o rbc_elt_is_zero T
rbc_elt.o rbc_elt_mul T
rbc_elt.o rbc_elt_nth_root T
rbc_elt.o rbc_elt_print T
rbc_elt.o rbc_elt_reduce T
rbc_elt.o rbc_elt_set T
rbc_elt.o rbc_elt_set_coefficient T
rbc_elt.o rbc_elt_set_from_uint64 T
rbc_elt.o rbc_elt_set_mask1 T
rbc_elt.o rbc_elt_set_mask2 T
rbc_elt.o rbc_elt_set_one T
rbc_elt.o rbc_elt_set_random T
rbc_elt.o rbc_elt_set_random2 T
rbc_elt.o rbc_elt_set_zero T
rbc_elt.o rbc_elt_sqr T
rbc_elt.o rbc_elt_ur_mul T
rbc_elt.o rbc_elt_ur_print T
rbc_elt.o rbc_elt_ur_set_from_uint64 T
rbc_elt.o rbc_elt_ur_set_zero T
rbc_elt.o rbc_elt_ur_sqr T
rbc_elt.o rbc_field_init T
rbc_poly.o rbc_kar_fold T
rbc_poly.o rbc_kar_mul T
rbc_poly.o rbc_plain_mul T
rbc_poly.o rbc_poly_add T
rbc_poly.o rbc_poly_add2 T
rbc_poly.o rbc_poly_clear T
rbc_poly.o rbc_poly_div T
rbc_poly.o rbc_poly_from_string T
rbc_poly.o rbc_poly_init T
rbc_poly.o rbc_poly_inv T
rbc_poly.o rbc_poly_is_equal_to T
rbc_poly.o rbc_poly_mul T
rbc_poly.o rbc_poly_mul2 T
rbc_poly.o rbc_poly_mulmod_sparse T
rbc_poly.o rbc_poly_print T
rbc_poly.o rbc_poly_resize T
rbc_poly.o rbc_poly_set T
rbc_poly.o rbc_poly_set_random T
rbc_poly.o rbc_poly_set_random2 T
rbc_poly.o rbc_poly_set_random_from_support T
rbc_poly.o rbc_poly_set_random_full_rank T
rbc_poly.o rbc_poly_set_random_full_rank_with_one T
rbc_poly.o rbc_poly_set_random_pair_from_support T
rbc_poly.o rbc_poly_set_random_pair_from_support2 T
rbc_poly.o rbc_poly_set_zero T
rbc_poly.o rbc_poly_sparse_clear T
rbc_poly.o rbc_poly_sparse_init T
rbc_poly.o rbc_poly_sparse_print T
rbc_poly.o rbc_poly_to_string T
rbc_poly.o rbc_poly_update_degree T
rbc_qre.o rbc_qre_add T
rbc_qre.o rbc_qre_clear T
rbc_qre.o rbc_qre_clear_modulus T
rbc_qre.o rbc_qre_div T
rbc_qre.o rbc_qre_from_string T
rbc_qre.o rbc_qre_get_modulus T
rbc_qre.o rbc_qre_init T
rbc_qre.o rbc_qre_init_modulus T
rbc_qre.o rbc_qre_inv T
rbc_qre.o rbc_qre_is_equal_to T
rbc_qre.o rbc_qre_mul T
rbc_qre.o rbc_qre_print T
rbc_qre.o rbc_qre_set_random T
rbc_qre.o rbc_qre_set_random2 T
rbc_qre.o rbc_qre_set_random_from_support T
rbc_qre.o rbc_qre_set_random_full_rank T
rbc_qre.o rbc_qre_set_random_full_rank_with_one T
rbc_qre.o rbc_qre_set_random_pair_from_support T
rbc_qre.o rbc_qre_set_random_pair_from_support2 T
rbc_qre.o rbc_qre_set_zero T
rbc_qre.o rbc_qre_to_string T
rbc_vec.o rbc_vec_add T
rbc_vec.o rbc_vec_clear T
rbc_vec.o rbc_vec_echelonize T
rbc_vec.o rbc_vec_from_string T
rbc_vec.o rbc_vec_gauss T
rbc_vec.o rbc_vec_gauss_constant_time T
rbc_vec.o rbc_vec_gauss_other_matrices T
rbc_vec.o rbc_vec_get_rank T
rbc_vec.o rbc_vec_init T
rbc_vec.o rbc_vec_print T
rbc_vec.o rbc_vec_scalar_mul T
rbc_vec.o rbc_vec_set T
rbc_vec.o rbc_vec_set_random T
rbc_vec.o rbc_vec_set_random2 T
rbc_vec.o rbc_vec_set_random_from_support T
rbc_vec.o rbc_vec_set_random_full_rank T
rbc_vec.o rbc_vec_set_random_full_rank2 T
rbc_vec.o rbc_vec_set_random_full_rank_with_one T
rbc_vec.o rbc_vec_set_random_pair_from_support T
rbc_vec.o rbc_vec_set_random_pair_from_support2 T
rbc_vec.o rbc_vec_set_zero T
rbc_vec.o rbc_vec_to_string T
rbc_vspace.o rbc_vspace_clear T
rbc_vspace.o rbc_vspace_directsum T
rbc_vspace.o rbc_vspace_init T
rbc_vspace.o rbc_vspace_intersection T
rbc_vspace.o rbc_vspace_intersection_constant_time T
rbc_vspace.o rbc_vspace_print T
rbc_vspace.o rbc_vspace_product T
rbc_vspace.o rbc_vspace_set T
rbc_vspace.o rbc_vspace_set_random_full_rank T
rbc_vspace.o rbc_vspace_set_random_full_rank2 T
rbc_vspace.o rbc_vspace_set_random_full_rank_with_one T
rbc_vspace.o rbc_vspace_set_zero T
rqc.o rqc_pke_decrypt T
rqc.o rqc_pke_encrypt T
rqc.o rqc_pke_keygen T
seedexpander.o seedexpander T
seedexpander.o seedexpander_init T

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

Namespace violations

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gabidulin.o RBC_SQR_LOOKUP_TABLE C
gabidulin.o rbc_gabidulin_decode T
gabidulin.o rbc_gabidulin_encode T
gabidulin.o rbc_gabidulin_init T
kem.o RBC_SQR_LOOKUP_TABLE C
parsing.o RBC_SQR_LOOKUP_TABLE C
parsing.o rqc_kem_ciphertext_from_string T
parsing.o rqc_kem_ciphertext_to_string T
parsing.o rqc_public_key_from_string T
parsing.o rqc_public_key_to_string T
parsing.o rqc_secret_key_from_string T
parsing.o rqc_secret_key_to_string T
qpoly.o RBC_SQR_LOOKUP_TABLE C
qpoly.o rbc_qpoly_add T
qpoly.o rbc_qpoly_clear T
qpoly.o rbc_qpoly_evaluate T
qpoly.o rbc_qpoly_init T
qpoly.o rbc_qpoly_is_zero T
qpoly.o rbc_qpoly_left_div T
qpoly.o rbc_qpoly_left_div2 T
qpoly.o rbc_qpoly_mul T
qpoly.o rbc_qpoly_mul2 T
qpoly.o rbc_qpoly_print T
qpoly.o rbc_qpoly_qexp T
qpoly.o rbc_qpoly_scalar_mul T
qpoly.o rbc_qpoly_set T
qpoly.o rbc_qpoly_set_interpolate_vect_and_zero T
qpoly.o rbc_qpoly_set_mask T
qpoly.o rbc_qpoly_set_one T
qpoly.o rbc_qpoly_set_zero T
qpoly.o rbc_qpoly_update_degree T
rbc_elt.o RBC_SQR_LOOKUP_TABLE C
rbc_elt.o rbc_elt_add T
rbc_elt.o rbc_elt_get_coefficient T
rbc_elt.o rbc_elt_get_degree T
rbc_elt.o rbc_elt_inv T
rbc_elt.o rbc_elt_is_equal_to T
rbc_elt.o rbc_elt_is_greater_than T
rbc_elt.o rbc_elt_is_zero T
rbc_elt.o rbc_elt_mul T
rbc_elt.o rbc_elt_nth_root T
rbc_elt.o rbc_elt_print T
rbc_elt.o rbc_elt_reduce T
rbc_elt.o rbc_elt_set T
rbc_elt.o rbc_elt_set_coefficient T
rbc_elt.o rbc_elt_set_from_uint64 T
rbc_elt.o rbc_elt_set_mask1 T
rbc_elt.o rbc_elt_set_mask2 T
rbc_elt.o rbc_elt_set_one T
rbc_elt.o rbc_elt_set_random T
rbc_elt.o rbc_elt_set_random2 T
rbc_elt.o rbc_elt_set_zero T
rbc_elt.o rbc_elt_sqr T
rbc_elt.o rbc_elt_ur_mul T
rbc_elt.o rbc_elt_ur_print T
rbc_elt.o rbc_elt_ur_set_from_uint64 T
rbc_elt.o rbc_elt_ur_set_zero T
rbc_elt.o rbc_elt_ur_sqr T
rbc_elt.o rbc_field_init T
rbc_poly.o RBC_SQR_LOOKUP_TABLE C
rbc_poly.o rbc_kar_fold T
rbc_poly.o rbc_kar_mul T
rbc_poly.o rbc_plain_mul T
rbc_poly.o rbc_poly_add T
rbc_poly.o rbc_poly_add2 T
rbc_poly.o rbc_poly_clear T
rbc_poly.o rbc_poly_div T
rbc_poly.o rbc_poly_from_string T
rbc_poly.o rbc_poly_init T
rbc_poly.o rbc_poly_inv T
rbc_poly.o rbc_poly_is_equal_to T
rbc_poly.o rbc_poly_mul T
rbc_poly.o rbc_poly_mul2 T
rbc_poly.o rbc_poly_mulmod_sparse T
rbc_poly.o rbc_poly_print T
rbc_poly.o rbc_poly_resize T
rbc_poly.o rbc_poly_set T
rbc_poly.o rbc_poly_set_random T
rbc_poly.o rbc_poly_set_random2 T
rbc_poly.o rbc_poly_set_random_from_support T
rbc_poly.o rbc_poly_set_random_full_rank T
rbc_poly.o rbc_poly_set_random_full_rank_with_one T
rbc_poly.o rbc_poly_set_random_pair_from_support T
rbc_poly.o rbc_poly_set_random_pair_from_support2 T
rbc_poly.o rbc_poly_set_zero T
rbc_poly.o rbc_poly_sparse_clear T
rbc_poly.o rbc_poly_sparse_init T
rbc_poly.o rbc_poly_sparse_print T
rbc_poly.o rbc_poly_to_string T
rbc_poly.o rbc_poly_update_degree T
rbc_qre.o RBC_SQR_LOOKUP_TABLE C
rbc_qre.o rbc_qre_add T
rbc_qre.o rbc_qre_clear T
rbc_qre.o rbc_qre_clear_modulus T
rbc_qre.o rbc_qre_div T
rbc_qre.o rbc_qre_from_string T
rbc_qre.o rbc_qre_get_modulus T
rbc_qre.o rbc_qre_init T
rbc_qre.o rbc_qre_init_modulus T
rbc_qre.o rbc_qre_inv T
rbc_qre.o rbc_qre_is_equal_to T
rbc_qre.o rbc_qre_mul T
rbc_qre.o rbc_qre_print T
rbc_qre.o rbc_qre_set_random T
rbc_qre.o rbc_qre_set_random2 T
rbc_qre.o rbc_qre_set_random_from_support T
rbc_qre.o rbc_qre_set_random_full_rank T
rbc_qre.o rbc_qre_set_random_full_rank_with_one T
rbc_qre.o rbc_qre_set_random_pair_from_support T
rbc_qre.o rbc_qre_set_random_pair_from_support2 T
rbc_qre.o rbc_qre_set_zero T
rbc_qre.o rbc_qre_to_string T
rbc_vec.o RBC_SQR_LOOKUP_TABLE C
rbc_vec.o rbc_vec_add T
rbc_vec.o rbc_vec_clear T
rbc_vec.o rbc_vec_echelonize T
rbc_vec.o rbc_vec_from_string T
rbc_vec.o rbc_vec_gauss T
rbc_vec.o rbc_vec_gauss_constant_time T
rbc_vec.o rbc_vec_gauss_other_matrices T
rbc_vec.o rbc_vec_get_rank T
rbc_vec.o rbc_vec_init T
rbc_vec.o rbc_vec_print T
rbc_vec.o rbc_vec_scalar_mul T
rbc_vec.o rbc_vec_set T
rbc_vec.o rbc_vec_set_random T
rbc_vec.o rbc_vec_set_random2 T
rbc_vec.o rbc_vec_set_random_from_support T
rbc_vec.o rbc_vec_set_random_full_rank T
rbc_vec.o rbc_vec_set_random_full_rank2 T
rbc_vec.o rbc_vec_set_random_full_rank_with_one T
rbc_vec.o rbc_vec_set_random_pair_from_support T
rbc_vec.o rbc_vec_set_random_pair_from_support2 T
rbc_vec.o rbc_vec_set_zero T
rbc_vec.o rbc_vec_to_string T
rbc_vspace.o RBC_SQR_LOOKUP_TABLE C
rbc_vspace.o rbc_vspace_clear T
rbc_vspace.o rbc_vspace_directsum T
rbc_vspace.o rbc_vspace_init T
rbc_vspace.o rbc_vspace_intersection T
rbc_vspace.o rbc_vspace_intersection_constant_time T
rbc_vspace.o rbc_vspace_print T
rbc_vspace.o rbc_vspace_product T
rbc_vspace.o rbc_vspace_set T
rbc_vspace.o rbc_vspace_set_random_full_rank T
rbc_vspace.o rbc_vspace_set_random_full_rank2 T
rbc_vspace.o rbc_vspace_set_random_full_rank_with_one T
rbc_vspace.o rbc_vspace_set_zero T
rqc.o RBC_SQR_LOOKUP_TABLE C
rqc.o rqc_pke_decrypt T
rqc.o rqc_pke_encrypt T
rqc.o rqc_pke_keygen T
seedexpander.o seedexpander T
seedexpander.o seedexpander_init T

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