Implementation notes: amd64, intelnuci8, crypto_kem/rqc192

Computer: intelnuci8
Architecture: amd64
CPU ID: GenuineIntel-000906e9-bfebfbff
SUPERCOP version: 20191221
Operation: crypto_kem
Primitive: rqc192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
356929333677 0 457384 880 1656optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
357492831513 0 455224 880 1656optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
363824731513 0 455224 880 1656optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
366384339087 0 464108 888 1720optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
376941225308 0 445340 864 1656optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
380519630017 0 451628 888 1720optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
415147428535 0 449812 888 1720optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
772537532471 0 456264 880 3720refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
776653232471 0 456264 880 3720refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
788356134635 0 458424 880 3720refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
812955534677 0 457584 880 3720refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221
915547442507 0 467548 888 3800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
1001634030689 0 452316 888 3800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
1297343525723 0 446012 880 3768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
1450783829179 0 450484 888 3800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020011720191221
2927757825996 0 446028 864 3720refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020011720191221

Test failure

Implementation: opt
Security model: unknown
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 opt

Compiler output

Implementation: opt
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
ffi_elt.c: ffi_elt.c:404:17: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
ffi_elt.c: __m128i c1 = AVX_CLMUL(a, b, 0x00);
ffi_elt.c: ^
ffi_elt.c: ./ffi.h:66:23: note: expanded from macro 'AVX_CLMUL'
ffi_elt.c: #define AVX_CLMUL _mm_clmulepi64_si128
ffi_elt.c: ^
ffi_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'
ffi_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
ffi_elt.c: ^
ffi_elt.c: ffi_elt.c:405:17: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
ffi_elt.c: __m128i c2 = AVX_CLMUL(a, b, 0x01);
ffi_elt.c: ^
ffi_elt.c: ./ffi.h:66:23: note: expanded from macro 'AVX_CLMUL'
ffi_elt.c: #define AVX_CLMUL _mm_clmulepi64_si128
ffi_elt.c: ^
ffi_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'
ffi_elt.c: ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(__X), \
ffi_elt.c: ^
ffi_elt.c: ffi_elt.c:406:17: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
ffi_elt.c: __m128i c3 = AVX_CLMUL(a, b, 0x10);
ffi_elt.c: ^
ffi_elt.c: ./ffi.h:66:23: note: expanded from macro 'AVX_CLMUL'
ffi_elt.c: #define AVX_CLMUL _mm_clmulepi64_si128
ffi_elt.c: ^
ffi_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'
ffi_elt.c: ...

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

Namespace violations

Implementation: opt
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
ffi_elt.o ffi_elt_add T
ffi_elt.o ffi_elt_get_coefficient T
ffi_elt.o ffi_elt_get_degree T
ffi_elt.o ffi_elt_inv T
ffi_elt.o ffi_elt_is_equal_to T
ffi_elt.o ffi_elt_is_greater_than T
ffi_elt.o ffi_elt_is_zero T
ffi_elt.o ffi_elt_mul T
ffi_elt.o ffi_elt_nth_root T
ffi_elt.o ffi_elt_print T
ffi_elt.o ffi_elt_reduce T
ffi_elt.o ffi_elt_set T
ffi_elt.o ffi_elt_set_coefficient T
ffi_elt.o ffi_elt_set_one T
ffi_elt.o ffi_elt_set_random T
ffi_elt.o ffi_elt_set_random2 T
ffi_elt.o ffi_elt_set_zero T
ffi_elt.o ffi_elt_sqr T
ffi_elt.o ffi_elt_ur_mul T
ffi_elt.o ffi_elt_ur_print T
ffi_elt.o ffi_elt_ur_sqr T
ffi_poly.o ffi_poly_add T
ffi_poly.o ffi_poly_clear T
ffi_poly.o ffi_poly_div T
ffi_poly.o ffi_poly_from_string T
ffi_poly.o ffi_poly_from_string_compact T
ffi_poly.o ffi_poly_init T
ffi_poly.o ffi_poly_inv T
ffi_poly.o ffi_poly_is_equal_to T
ffi_poly.o ffi_poly_mul T
ffi_poly.o ffi_poly_mulmod T
ffi_poly.o ffi_poly_mulmod_sparse T
ffi_poly.o ffi_poly_print T
ffi_poly.o ffi_poly_resize T
ffi_poly.o ffi_poly_set T
ffi_poly.o ffi_poly_set_random T
ffi_poly.o ffi_poly_set_random2 T
ffi_poly.o ffi_poly_set_random_from_support T
ffi_poly.o ffi_poly_set_random_from_support2 T
ffi_poly.o ffi_poly_set_random_full_rank T
ffi_poly.o ffi_poly_set_random_full_rank_with_one T
ffi_poly.o ffi_poly_set_zero T
ffi_poly.o ffi_poly_sparse_clear T
ffi_poly.o ffi_poly_sparse_init T
ffi_poly.o ffi_poly_sparse_print T
ffi_poly.o ffi_poly_to_string T
ffi_poly.o ffi_poly_to_string_compact T
ffi_poly.o ffi_poly_update_degree T
ffi_poly.o kar_fold T
ffi_poly.o kar_mul T
ffi_poly.o plain_mul T
ffi_qre.o QRE_DEG C
ffi_qre.o ffi_qre_add T
ffi_qre.o ffi_qre_clear T
ffi_qre.o ffi_qre_clear_modulus T
ffi_qre.o ffi_qre_div T
ffi_qre.o ffi_qre_from_string T
ffi_qre.o ffi_qre_from_string_compact T
ffi_qre.o ffi_qre_get_modulus T
ffi_qre.o ffi_qre_init T
ffi_qre.o ffi_qre_init_modulus T
ffi_qre.o ffi_qre_inv T
ffi_qre.o ffi_qre_is_equal_to T
ffi_qre.o ffi_qre_mul T
ffi_qre.o ffi_qre_print T
ffi_qre.o ffi_qre_set_random T
ffi_qre.o ffi_qre_set_random2 T
ffi_qre.o ffi_qre_set_random_from_support T
ffi_qre.o ffi_qre_set_random_from_support2 T
ffi_qre.o ffi_qre_set_random_full_rank T
ffi_qre.o ffi_qre_set_random_full_rank_with_one T
ffi_qre.o ffi_qre_set_zero T
ffi_qre.o ffi_qre_to_string T
ffi_qre.o ffi_qre_to_string_compact T
ffi_qre.o modulus C
ffi_qre.o modulusInv C
ffi_vec.o ffi_vec_add T
ffi_vec.o ffi_vec_clear T
ffi_vec.o ffi_vec_echelonize T
ffi_vec.o ffi_vec_from_string T
ffi_vec.o ffi_vec_from_string_compact T
ffi_vec.o ffi_vec_gauss T
ffi_vec.o ffi_vec_get_rank T
ffi_vec.o ffi_vec_init T
ffi_vec.o ffi_vec_print T
ffi_vec.o ffi_vec_scalar_mul T
ffi_vec.o ffi_vec_set T
ffi_vec.o ffi_vec_set_random T
ffi_vec.o ffi_vec_set_random2 T
ffi_vec.o ffi_vec_set_random_from_support T
ffi_vec.o ffi_vec_set_random_from_support2 T
ffi_vec.o ffi_vec_set_random_full_rank T
ffi_vec.o ffi_vec_set_random_full_rank2 T
ffi_vec.o ffi_vec_set_random_full_rank_with_one T
ffi_vec.o ffi_vec_set_zero T
ffi_vec.o ffi_vec_to_string T
ffi_vec.o ffi_vec_to_string_compact T
ffi_vspace.o ffi_vspace_clear T
ffi_vspace.o ffi_vspace_directsum T
ffi_vspace.o ffi_vspace_init T
ffi_vspace.o ffi_vspace_intersection T
ffi_vspace.o ffi_vspace_print T
ffi_vspace.o ffi_vspace_product T
ffi_vspace.o ffi_vspace_set T
ffi_vspace.o ffi_vspace_set_random_full_rank T
ffi_vspace.o ffi_vspace_set_random_full_rank2 T
ffi_vspace.o ffi_vspace_set_random_full_rank_with_one T
ffi_vspace.o ffi_vspace_set_zero T
gabidulin.o QRE_DEG C
gabidulin.o gabidulin_code_decode T
gabidulin.o gabidulin_code_encode T
gabidulin.o gabidulin_code_init T
gabidulin.o modulus C
gabidulin.o modulusInv C
kem.o QRE_DEG C
kem.o modulus C
kem.o modulusInv C
parsing.o QRE_DEG C
parsing.o modulus C
parsing.o modulusInv 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
q_polynomial.o q_polynomial_add T
q_polynomial.o q_polynomial_clear T
q_polynomial.o q_polynomial_evaluate T
q_polynomial.o q_polynomial_init T
q_polynomial.o q_polynomial_is_zero T
q_polynomial.o q_polynomial_left_div T
q_polynomial.o q_polynomial_mul T
q_polynomial.o q_polynomial_print T
q_polynomial.o q_polynomial_qexp T
q_polynomial.o q_polynomial_scalar_mul T
q_polynomial.o q_polynomial_set T
q_polynomial.o q_polynomial_set_interpolate_vect_and_zero T
q_polynomial.o q_polynomial_set_one T
q_polynomial.o q_polynomial_set_zero T
q_polynomial.o q_polynomial_update_degree T
rng.o AES256_ECB T
rng.o DRBG_ctx C
rng.o handleErrors T
rng.o seedexpander T
rng.o seedexpander_init T
rqc.o QRE_DEG C
rqc.o modulus C
rqc.o modulusInv C
rqc.o rqc_pke_decrypt T
rqc.o rqc_pke_encrypt T
rqc.o rqc_pke_keygen T

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
ffi_elt.o SQR_LOOKUP_TABLE C
ffi_elt.o ffi_elt_add T
ffi_elt.o ffi_elt_get_coefficient T
ffi_elt.o ffi_elt_get_degree T
ffi_elt.o ffi_elt_inv T
ffi_elt.o ffi_elt_is_equal_to T
ffi_elt.o ffi_elt_is_greater_than T
ffi_elt.o ffi_elt_is_zero T
ffi_elt.o ffi_elt_mul T
ffi_elt.o ffi_elt_nth_root T
ffi_elt.o ffi_elt_print T
ffi_elt.o ffi_elt_reduce T
ffi_elt.o ffi_elt_set T
ffi_elt.o ffi_elt_set_coefficient T
ffi_elt.o ffi_elt_set_one T
ffi_elt.o ffi_elt_set_random T
ffi_elt.o ffi_elt_set_random2 T
ffi_elt.o ffi_elt_set_zero T
ffi_elt.o ffi_elt_sqr T
ffi_elt.o ffi_elt_ur_mul T
ffi_elt.o ffi_elt_ur_print T
ffi_elt.o ffi_elt_ur_set_zero T
ffi_elt.o ffi_elt_ur_sqr T
ffi_elt.o ffi_field_init T
ffi_poly.o SQR_LOOKUP_TABLE C
ffi_poly.o ffi_poly_add T
ffi_poly.o ffi_poly_clear T
ffi_poly.o ffi_poly_div T
ffi_poly.o ffi_poly_from_string T
ffi_poly.o ffi_poly_from_string_compact T
ffi_poly.o ffi_poly_init T
ffi_poly.o ffi_poly_inv T
ffi_poly.o ffi_poly_is_equal_to T
ffi_poly.o ffi_poly_mul T
ffi_poly.o ffi_poly_mulmod T
ffi_poly.o ffi_poly_mulmod_sparse T
ffi_poly.o ffi_poly_print T
ffi_poly.o ffi_poly_resize T
ffi_poly.o ffi_poly_set T
ffi_poly.o ffi_poly_set_random T
ffi_poly.o ffi_poly_set_random2 T
ffi_poly.o ffi_poly_set_random_from_support T
ffi_poly.o ffi_poly_set_random_from_support2 T
ffi_poly.o ffi_poly_set_random_full_rank T
ffi_poly.o ffi_poly_set_random_full_rank_with_one T
ffi_poly.o ffi_poly_set_zero T
ffi_poly.o ffi_poly_sparse_clear T
ffi_poly.o ffi_poly_sparse_init T
ffi_poly.o ffi_poly_sparse_print T
ffi_poly.o ffi_poly_to_string T
ffi_poly.o ffi_poly_to_string_compact T
ffi_poly.o ffi_poly_update_degree T
ffi_poly.o kar_fold T
ffi_poly.o kar_mul T
ffi_poly.o plain_mul T
ffi_qre.o QRE_DEG C
ffi_qre.o SQR_LOOKUP_TABLE C
ffi_qre.o ffi_qre_add T
ffi_qre.o ffi_qre_clear T
ffi_qre.o ffi_qre_clear_modulus T
ffi_qre.o ffi_qre_div T
ffi_qre.o ffi_qre_from_string T
ffi_qre.o ffi_qre_from_string_compact T
ffi_qre.o ffi_qre_get_modulus T
ffi_qre.o ffi_qre_init T
ffi_qre.o ffi_qre_init_modulus T
ffi_qre.o ffi_qre_inv T
ffi_qre.o ffi_qre_is_equal_to T
ffi_qre.o ffi_qre_mul T
ffi_qre.o ffi_qre_print T
ffi_qre.o ffi_qre_set_random T
ffi_qre.o ffi_qre_set_random2 T
ffi_qre.o ffi_qre_set_random_from_support T
ffi_qre.o ffi_qre_set_random_from_support2 T
ffi_qre.o ffi_qre_set_random_full_rank T
ffi_qre.o ffi_qre_set_random_full_rank_with_one T
ffi_qre.o ffi_qre_set_zero T
ffi_qre.o ffi_qre_to_string T
ffi_qre.o ffi_qre_to_string_compact T
ffi_qre.o modulus C
ffi_qre.o modulusInv C
ffi_vec.o SQR_LOOKUP_TABLE C
ffi_vec.o ffi_vec_add T
ffi_vec.o ffi_vec_clear T
ffi_vec.o ffi_vec_echelonize T
ffi_vec.o ffi_vec_from_string T
ffi_vec.o ffi_vec_from_string_compact T
ffi_vec.o ffi_vec_gauss T
ffi_vec.o ffi_vec_get_rank T
ffi_vec.o ffi_vec_init T
ffi_vec.o ffi_vec_print T
ffi_vec.o ffi_vec_scalar_mul T
ffi_vec.o ffi_vec_set T
ffi_vec.o ffi_vec_set_random T
ffi_vec.o ffi_vec_set_random2 T
ffi_vec.o ffi_vec_set_random_from_support T
ffi_vec.o ffi_vec_set_random_from_support2 T
ffi_vec.o ffi_vec_set_random_full_rank T
ffi_vec.o ffi_vec_set_random_full_rank2 T
ffi_vec.o ffi_vec_set_random_full_rank_with_one T
ffi_vec.o ffi_vec_set_zero T
ffi_vec.o ffi_vec_to_string T
ffi_vec.o ffi_vec_to_string_compact T
ffi_vspace.o SQR_LOOKUP_TABLE C
ffi_vspace.o ffi_vspace_clear T
ffi_vspace.o ffi_vspace_directsum T
ffi_vspace.o ffi_vspace_init T
ffi_vspace.o ffi_vspace_intersection T
ffi_vspace.o ffi_vspace_print T
ffi_vspace.o ffi_vspace_product T
ffi_vspace.o ffi_vspace_set T
ffi_vspace.o ffi_vspace_set_random_full_rank T
ffi_vspace.o ffi_vspace_set_random_full_rank2 T
ffi_vspace.o ffi_vspace_set_random_full_rank_with_one T
ffi_vspace.o ffi_vspace_set_zero T
gabidulin.o QRE_DEG C
gabidulin.o SQR_LOOKUP_TABLE C
gabidulin.o gabidulin_code_decode T
gabidulin.o gabidulin_code_encode T
gabidulin.o gabidulin_code_init T
gabidulin.o modulus C
gabidulin.o modulusInv C
kem.o QRE_DEG C
kem.o SQR_LOOKUP_TABLE C
kem.o modulus C
kem.o modulusInv C
parsing.o QRE_DEG C
parsing.o SQR_LOOKUP_TABLE C
parsing.o modulus C
parsing.o modulusInv 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
q_polynomial.o SQR_LOOKUP_TABLE C
q_polynomial.o q_polynomial_add T
q_polynomial.o q_polynomial_clear T
q_polynomial.o q_polynomial_evaluate T
q_polynomial.o q_polynomial_init T
q_polynomial.o q_polynomial_is_zero T
q_polynomial.o q_polynomial_left_div T
q_polynomial.o q_polynomial_mul T
q_polynomial.o q_polynomial_print T
q_polynomial.o q_polynomial_qexp T
q_polynomial.o q_polynomial_scalar_mul T
q_polynomial.o q_polynomial_set T
q_polynomial.o q_polynomial_set_interpolate_vect_and_zero T
q_polynomial.o q_polynomial_set_one T
q_polynomial.o q_polynomial_set_zero T
q_polynomial.o q_polynomial_update_degree T
rng.o AES256_ECB T
rng.o DRBG_ctx C
rng.o handleErrors T
rng.o seedexpander T
rng.o seedexpander_init T
rqc.o QRE_DEG C
rqc.o SQR_LOOKUP_TABLE C
rqc.o modulus C
rqc.o modulusInv C
rqc.o rqc_pke_decrypt T
rqc.o rqc_pke_encrypt T
rqc.o rqc_pke_keygen 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