Implementation notes: amd64, wyvern1, crypto_dh/curve2251

Computer: wyvern1
Architecture: amd64
CPU ID: GenuineIntel-000306f2-bfebfbff
SUPERCOP version: 20191221
Operation: crypto_dh
Primitive: curve2251
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
39461329613 385024 107250779 385808 2728relic/amd64-clmulgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
39705529637 385024 107250803 385808 2728relic/amd64-avxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40159232167 385024 107254103 385816 2728relic/amd64-clmulgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40278038070 385024 107260519 385816 2728relic/amd64-clmulgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40338854499 385024 107280121 385824 2728relic/amd64-clmulgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40403238094 385024 107260543 385816 2728relic/amd64-avxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40413654523 385024 107280145 385824 2728relic/amd64-avxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
40561532191 385024 107254127 385816 2728relic/amd64-avxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
106225846366 385024 107268815 385816 2728relic/amd64-ssse3gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
107488062795 385024 107288417 385824 2728relic/amd64-ssse3gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
108104237909 385024 107259075 385808 2728relic/amd64-ssse3gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
110730640463 385024 107262399 385816 2728relic/amd64-ssse3gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
315509128098 0 066591 816 1648mpfqgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
322639728083 0 063007 816 1648mpfqgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
323982426109 0 061447 816 1648mpfqgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221
346470414120 0 048300 816 1648mpfqgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019122220191221

Compiler output

Implementation: relic/amd64-avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
relic.c: In file included from relic.c:4:0:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:8: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c: srand(time(NULL));
relic.c: ^

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

Namespace violations

Implementation: mpfq
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
curve2_251.o ECmul T
curve2_251.o ECprint T
curve2_251.o K C
mpfq_2_251.o mpfq_2_251_print T

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

Namespace violations

Implementation: relic/amd64-avx
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
relic.o SHA1FinalBits T
relic.o SHA1Input T
relic.o SHA1Reset T
relic.o SHA1Result T
relic.o bench_after T
relic.o bench_before T
relic.o bench_compute T
relic.o bench_print T
relic.o bench_reset T
relic.o bench_total T
relic.o core_clean T
relic.o core_ctx C
relic.o core_init T
relic.o dv_copy T
relic.o dv_print T
relic.o dv_zero T
relic.o md_map_shone T
relic.o md_map_shone_final T
relic.o md_map_shone_init T
relic.o md_map_shone_state T
relic.o md_map_shone_update T
relic.o rand_bytes T
relic.o rand_clean T
relic.o rand_init T
relic.o rand_seed T
relic.o util_bits_dig T
relic.o util_conv_big T
relic.o util_conv_char T
relic.o util_conv_endian T
relic.o util_conv_little T
relic.o util_printf T
relic_bn.o bn_abs T
relic_bn.o bn_add T
relic_bn.o bn_add1_low T
relic_bn.o bn_add_dig T
relic_bn.o bn_addn_low T
relic_bn.o bn_bits T
relic_bn.o bn_clean T
relic_bn.o bn_cmp T
relic_bn.o bn_cmp1_low T
relic_bn.o bn_cmp_abs T
relic_bn.o bn_cmp_dig T
relic_bn.o bn_cmpn_low T
relic_bn.o bn_copy T
relic_bn.o bn_dbl T
relic_bn.o bn_get_bit T
relic_bn.o bn_get_dig T
relic_bn.o bn_grow T
relic_bn.o bn_ham T
relic_bn.o bn_hlv T
relic_bn.o bn_init T
relic_bn.o bn_is_even T
relic_bn.o bn_is_zero T
relic_bn.o bn_lsh T
relic_bn.o bn_lsh1_low T
relic_bn.o bn_lshb_low T
relic_bn.o bn_lshd_low T
relic_bn.o bn_neg T
relic_bn.o bn_print T
relic_bn.o bn_rand T
relic_bn.o bn_read_bin T
relic_bn.o bn_read_raw T
relic_bn.o bn_rsh T
relic_bn.o bn_rsh1_low T
relic_bn.o bn_rshb_low T
relic_bn.o bn_rshd_low T
relic_bn.o bn_set_2b T
relic_bn.o bn_set_bit T
relic_bn.o bn_set_dig T
relic_bn.o bn_sign T
relic_bn.o bn_size_bin T
relic_bn.o bn_size_raw T
relic_bn.o bn_sub T
relic_bn.o bn_sub1_low T
relic_bn.o bn_sub_dig T
relic_bn.o bn_subn_low T
relic_bn.o bn_test_bit T
relic_bn.o bn_trim T
relic_bn.o bn_write_bin T
relic_bn.o bn_write_raw T
relic_bn.o bn_zero T
relic_eb.o eb_add_projc T
relic_eb.o eb_cmp T
relic_eb.o eb_copy T
relic_eb.o eb_curve_clean T
relic_eb.o eb_curve_get_a T
relic_eb.o eb_curve_get_b T
relic_eb.o eb_curve_get_c T
relic_eb.o eb_curve_get_cof T
relic_eb.o eb_curve_get_gen T
relic_eb.o eb_curve_get_ord T
relic_eb.o eb_curve_get_s0 T
relic_eb.o eb_curve_get_s1 T
relic_eb.o eb_curve_get_vm T
relic_eb.o eb_curve_init T
relic_eb.o eb_curve_is_kbltz T
relic_eb.o eb_curve_is_super T
relic_eb.o eb_curve_opt_a T
relic_eb.o eb_curve_opt_b T
relic_eb.o eb_curve_opt_c T
relic_eb.o eb_curve_set_kbltz T
relic_eb.o eb_curve_set_ordin T
relic_eb.o eb_curve_set_super T
relic_eb.o eb_dbl_projc T
relic_eb.o eb_is_infty T
relic_eb.o eb_mul_fix_combd T
relic_eb.o eb_mul_lodah T
relic_eb.o eb_mul_pre_combd T
relic_eb.o eb_norm T
relic_eb.o eb_norm_sim T
relic_eb.o eb_print T
relic_eb.o eb_set_infty T
relic_eb.o gen_tab D
relic_fb.o fb_add T
relic_fb.o fb_add_dig T
relic_fb.o fb_bits T
relic_fb.o fb_cmp T
relic_fb.o fb_cmp1_low T
relic_fb.o fb_cmp_dig T
relic_fb.o fb_cmpn_low T
relic_fb.o fb_copy T
relic_fb.o fb_get_bit T
relic_fb.o fb_inv_lower T
relic_fb.o fb_inv_sim T
relic_fb.o fb_invn_low T
relic_fb.o fb_is_zero T
relic_fb.o fb_itr_basic T
relic_fb.o fb_itr_pre_quick T
relic_fb.o fb_itr_quick T
relic_fb.o fb_lsh T
relic_fb.o fb_lsh1_low T
relic_fb.o fb_lshadd_low T
relic_fb.o fb_lshb_low T
relic_fb.o fb_lshd_low T
relic_fb.o fb_mul_dig T
relic_fb.o fb_mul_integ T
relic_fb.o fb_neg T
relic_fb.o fb_poly_add T
relic_fb.o fb_poly_clean T
relic_fb.o fb_poly_get T
relic_fb.o fb_poly_get_chain T
relic_fb.o fb_poly_get_rdc T
relic_fb.o fb_poly_get_slv T
relic_fb.o fb_poly_get_srz T
relic_fb.o fb_poly_get_trc T
relic_fb.o fb_poly_init T
relic_fb.o fb_poly_set_dense T
relic_fb.o fb_poly_set_penta T
relic_fb.o fb_poly_set_trino T
relic_fb.o fb_poly_sub T
relic_fb.o fb_poly_tab_sqr T
relic_fb.o fb_poly_tab_srz T
relic_fb.o fb_print T
relic_fb.o fb_rand T
relic_fb.o fb_rdc1_low T
relic_fb.o fb_read T
relic_fb.o fb_rsh T
relic_fb.o fb_rsh1_low T
relic_fb.o fb_rshb_low T
relic_fb.o fb_rshd_low T
relic_fb.o fb_set_bit T
relic_fb.o fb_set_dig T
relic_fb.o fb_size T
relic_fb.o fb_sqr_integ T
relic_fb.o fb_sub T
relic_fb.o fb_sub_dig T
relic_fb.o fb_test_bit T
relic_fb.o fb_write T
relic_fb.o fb_zero T
relic_fb.o inv_tab D
relic_low.o fb_add1_low T
relic_low.o fb_add2_low T
relic_low.o fb_addd_low T
relic_low.o fb_addn_low T
relic_low.o fb_itrn_low T
relic_low.o fb_mul1_low T
relic_low.o fb_muld_low T
relic_low.o fb_mulm_low T
relic_low.o fb_muln_low T
relic_low.o fb_rdcn_low2 T
relic_low.o fb_sqrl_low T
relic_low.o fb_sqrm_low T
relic_low.o fb_sqrn_low T

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

Namespace violations

Implementation: relic/amd64-ssse3
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
relic.o SHA1FinalBits T
relic.o SHA1Input T
relic.o SHA1Reset T
relic.o SHA1Result T
relic.o bench_after T
relic.o bench_before T
relic.o bench_compute T
relic.o bench_print T
relic.o bench_reset T
relic.o bench_total T
relic.o core_clean T
relic.o core_ctx C
relic.o core_init T
relic.o dv_copy T
relic.o dv_print T
relic.o dv_zero T
relic.o md_map_shone T
relic.o md_map_shone_final T
relic.o md_map_shone_init T
relic.o md_map_shone_state T
relic.o md_map_shone_update T
relic.o rand_bytes T
relic.o rand_clean T
relic.o rand_init T
relic.o rand_seed T
relic.o util_bits_dig T
relic.o util_conv_big T
relic.o util_conv_char T
relic.o util_conv_endian T
relic.o util_conv_little T
relic.o util_printf T
relic_bn.o bn_abs T
relic_bn.o bn_add T
relic_bn.o bn_add1_low T
relic_bn.o bn_add_dig T
relic_bn.o bn_addn_low T
relic_bn.o bn_bits T
relic_bn.o bn_clean T
relic_bn.o bn_cmp T
relic_bn.o bn_cmp1_low T
relic_bn.o bn_cmp_abs T
relic_bn.o bn_cmp_dig T
relic_bn.o bn_cmpn_low T
relic_bn.o bn_copy T
relic_bn.o bn_dbl T
relic_bn.o bn_get_bit T
relic_bn.o bn_get_dig T
relic_bn.o bn_grow T
relic_bn.o bn_ham T
relic_bn.o bn_hlv T
relic_bn.o bn_init T
relic_bn.o bn_is_even T
relic_bn.o bn_is_zero T
relic_bn.o bn_lsh T
relic_bn.o bn_lsh1_low T
relic_bn.o bn_lshb_low T
relic_bn.o bn_lshd_low T
relic_bn.o bn_neg T
relic_bn.o bn_print T
relic_bn.o bn_rand T
relic_bn.o bn_read_bin T
relic_bn.o bn_read_raw T
relic_bn.o bn_rsh T
relic_bn.o bn_rsh1_low T
relic_bn.o bn_rshb_low T
relic_bn.o bn_rshd_low T
relic_bn.o bn_set_2b T
relic_bn.o bn_set_bit T
relic_bn.o bn_set_dig T
relic_bn.o bn_sign T
relic_bn.o bn_size_bin T
relic_bn.o bn_size_raw T
relic_bn.o bn_sub T
relic_bn.o bn_sub1_low T
relic_bn.o bn_sub_dig T
relic_bn.o bn_subn_low T
relic_bn.o bn_test_bit T
relic_bn.o bn_trim T
relic_bn.o bn_write_bin T
relic_bn.o bn_write_raw T
relic_bn.o bn_zero T
relic_eb.o eb_add_projc T
relic_eb.o eb_cmp T
relic_eb.o eb_copy T
relic_eb.o eb_curve_clean T
relic_eb.o eb_curve_get_a T
relic_eb.o eb_curve_get_b T
relic_eb.o eb_curve_get_c T
relic_eb.o eb_curve_get_cof T
relic_eb.o eb_curve_get_gen T
relic_eb.o eb_curve_get_ord T
relic_eb.o eb_curve_get_s0 T
relic_eb.o eb_curve_get_s1 T
relic_eb.o eb_curve_get_vm T
relic_eb.o eb_curve_init T
relic_eb.o eb_curve_is_kbltz T
relic_eb.o eb_curve_is_super T
relic_eb.o eb_curve_opt_a T
relic_eb.o eb_curve_opt_b T
relic_eb.o eb_curve_opt_c T
relic_eb.o eb_curve_set_kbltz T
relic_eb.o eb_curve_set_ordin T
relic_eb.o eb_curve_set_super T
relic_eb.o eb_dbl_projc T
relic_eb.o eb_is_infty T
relic_eb.o eb_mul_fix_combd T
relic_eb.o eb_mul_lodah T
relic_eb.o eb_mul_pre_combd T
relic_eb.o eb_norm T
relic_eb.o eb_norm_sim T
relic_eb.o eb_print T
relic_eb.o eb_set_infty T
relic_eb.o gen_tab D
relic_fb.o fb_add T
relic_fb.o fb_add_dig T
relic_fb.o fb_bits T
relic_fb.o fb_cmp T
relic_fb.o fb_cmp1_low T
relic_fb.o fb_cmp_dig T
relic_fb.o fb_cmpn_low T
relic_fb.o fb_copy T
relic_fb.o fb_get_bit T
relic_fb.o fb_inv_lower T
relic_fb.o fb_inv_sim T
relic_fb.o fb_invn_low T
relic_fb.o fb_is_zero T
relic_fb.o fb_itr_basic T
relic_fb.o fb_itr_pre_quick T
relic_fb.o fb_itr_quick T
relic_fb.o fb_lsh T
relic_fb.o fb_lsh1_low T
relic_fb.o fb_lshadd_low T
relic_fb.o fb_lshb_low T
relic_fb.o fb_lshd_low T
relic_fb.o fb_mul_dig T
relic_fb.o fb_mul_integ T
relic_fb.o fb_neg T
relic_fb.o fb_poly_add T
relic_fb.o fb_poly_clean T
relic_fb.o fb_poly_get T
relic_fb.o fb_poly_get_chain T
relic_fb.o fb_poly_get_rdc T
relic_fb.o fb_poly_get_slv T
relic_fb.o fb_poly_get_srz T
relic_fb.o fb_poly_get_trc T
relic_fb.o fb_poly_init T
relic_fb.o fb_poly_set_dense T
relic_fb.o fb_poly_set_penta T
relic_fb.o fb_poly_set_trino T
relic_fb.o fb_poly_sub T
relic_fb.o fb_poly_tab_sqr T
relic_fb.o fb_poly_tab_srz T
relic_fb.o fb_print T
relic_fb.o fb_rand T
relic_fb.o fb_rdc1_low T
relic_fb.o fb_read T
relic_fb.o fb_rsh T
relic_fb.o fb_rsh1_low T
relic_fb.o fb_rshb_low T
relic_fb.o fb_rshd_low T
relic_fb.o fb_set_bit T
relic_fb.o fb_set_dig T
relic_fb.o fb_size T
relic_fb.o fb_sqr_integ T
relic_fb.o fb_sub T
relic_fb.o fb_sub_dig T
relic_fb.o fb_test_bit T
relic_fb.o fb_write T
relic_fb.o fb_zero T
relic_fb.o inv_tab D
relic_low.o fb_add1_low T
relic_low.o fb_add2_low T
relic_low.o fb_addd_low T
relic_low.o fb_addn_low T
relic_low.o fb_itrn_low T
relic_low.o fb_mul1_low T
relic_low.o fb_muld_low T
relic_low.o fb_mulm_low T
relic_low.o fb_muln_low T
relic_low.o fb_sqrl_low T
relic_low.o fb_sqrm_low T
relic_low.o fb_sqrn_low T

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