Implementation notes: amd64, colossus6, crypto_kem/rolloi128

Computer: colossus6
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20210125
Operation: crypto_kem
Primitive: rolloi128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
99117024723 0 2446108 888 1632T:avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
101322032331 0 2455876 888 1632T:avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
101740525760 0 2448311 896 1568T:avxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
101850727728 0 2450327 896 1568T:avxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
104242525760 0 2448311 896 1568T:avxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
106868223090 0 2443852 888 1632T:avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
110972319741 0 2439291 880 1568T:avxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
152892028416 0 2551063 896 3648T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
154791026480 0 2549111 896 3648T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
155049826480 0 2549111 896 3648T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
157056833811 0 2857356 888 3680T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
160861528832 0 2551583 896 3648T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125
165204025107 0 2846476 888 3680T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
170862723642 0 2844412 888 3680T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
185040020879 0 2840620 880 3648T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
316575020280 0 2539859 880 3648T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021031020210125

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
lrpc.o rbc_lrpc_RSR T
lrpc.o rbc_lrpc_RSR_constant_time T
parsing.o rolloI_public_key_from_string T
parsing.o rolloI_public_key_to_string T
parsing.o rolloI_rolloI_ciphertext_from_string T
parsing.o rolloI_rolloI_ciphertext_to_string T
parsing.o rolloI_secret_key_from_string T
parsing.o rolloI_secret_key_to_string 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
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
kem.o RBC_SQR_LOOKUP_TABLE C
lrpc.o RBC_SQR_LOOKUP_TABLE C
lrpc.o rbc_lrpc_RSR T
lrpc.o rbc_lrpc_RSR_constant_time T
parsing.o RBC_SQR_LOOKUP_TABLE C
parsing.o rolloI_public_key_from_string T
parsing.o rolloI_public_key_to_string T
parsing.o rolloI_rolloI_ciphertext_from_string T
parsing.o rolloI_rolloI_ciphertext_to_string T
parsing.o rolloI_secret_key_from_string T
parsing.o rolloI_secret_key_to_string 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
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