Implementation notes: amd64, h8atom, crypto_kem/rolloii192

Computer: h8atom
Architecture: amd64
CPU ID: GenuineIntel-00030661-bfebfbff
SUPERCOP version: 20200618
Operation: crypto_kem
Primitive: rolloii192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1776212936413 0 28112051 896 3712refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060320200603
2253073226253 0 2899643 896 3712refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060320200603
2428602430194 0 25104827 888 3664refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060320200603
2446416729994 0 25104763 888 3664refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060320200603
2464164528058 0 25101467 888 3664refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060320200603
2468313428058 0 25101467 888 3664refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060320200603
2484874025597 0 2898611 896 3712refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060320200603
2818548621826 0 2893675 888 3680refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020060320200603
3925893321259 0 2592751 872 3664refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020060320200603

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rbc_elt.c: rbc_elt.c:467: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:469: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:470: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:472: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: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx

Compiler output

Implementation: avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
rbc_elt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
rbc_elt.c: from rbc.h:11,
rbc_elt.c: from rbc_elt.c:6:
rbc_elt.c: rbc_elt.c: In function 'rbc_elt_ur_mul':
rbc_elt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
rbc_elt.c: _mm_extract_epi64 (__m128i __X, const int __N)
rbc_elt.c: ^~~~~~~~~~~~~~~~~
rbc_elt.c: rbc_elt.c:479:10: note: called from here
rbc_elt.c: o[3] = _mm_extract_epi64(a1_b1, 1);
rbc_elt.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~
rbc_elt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
rbc_elt.c: from rbc.h:11,
rbc_elt.c: from rbc_elt.c:6:
rbc_elt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
rbc_elt.c: _mm_extract_epi64 (__m128i __X, const int __N)
rbc_elt.c: ^~~~~~~~~~~~~~~~~
rbc_elt.c: rbc_elt.c:478:40: note: called from here
rbc_elt.c: o[2] = _mm_extract_epi64(a1_b1, 0) ^ _mm_extract_epi64(c1, 1);
rbc_elt.c: ^~~~~~~~~~~~~~~~~~~~~~~~
rbc_elt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
rbc_elt.c: from rbc.h:11,
rbc_elt.c: from rbc_elt.c:6:
rbc_elt.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:454:1: error: inlining failed in call to always_inline '_mm_extract_epi64': target specific option mismatch
rbc_elt.c: _mm_extract_epi64 (__m128i __X, const int __N)
rbc_elt.c: ^~~~~~~~~~~~~~~~~
rbc_elt.c: ...

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

Namespace violations

Implementation: ref
Security model: unknown
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 rolloII_ciphertext_from_string T
parsing.o rolloII_ciphertext_to_string T
parsing.o rolloII_public_key_from_string T
parsing.o rolloII_public_key_to_string T
parsing.o rolloII_secret_key_from_string T
parsing.o rolloII_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 ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref