Implementation notes: amd64, hydra7, crypto_dh/curve2251

Computer: hydra7
Microarchitecture: amd64; Sandy Bridge+AES (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_dh
Primitive: curve2251
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
58519154467 385024 110475778 385908 2912T:relic/amd64-avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
58825741223 385024 110461274 385908 2912T:relic/amd64-avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
59160433943 385024 110453496 385900 2912T:relic/amd64-avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
61325730695 385024 110449306 385900 2912T:relic/amd64-avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
65480854443 385024 110475730 385908 2912T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
66000641199 385024 110461226 385908 2912T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
66155733919 385024 110453448 385900 2912T:relic/amd64-clmulgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
67770830671 385024 110449322 385900 2912T:relic/amd64-clmulgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
121549762739 385024 110483882 385908 2912T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
122444149495 385024 110469378 385908 2912T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
122995042215 385024 110461600 385900 2912T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
125783438967 385024 110457410 385900 2912T:relic/amd64-ssse3gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
301340912176 0 843697 884 1824T:mpfqgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
363288730911 0 864955 884 1824T:mpfqgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
378480818704 0 851147 884 1824T:mpfqgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
382843519168 0 852027 884 1824T:mpfqgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


curve2_251.c: curve2_251.c:36:13: warning: 'ECcopy' defined but not used [-Wunused-function]
curve2_251.c:    36 | static void ECcopy(Kfield K, dst_ECpoint Q, src_ECpoint P) {
curve2_251.c:       |             ^~~~~~
keysharing.c: In file included from mpfq_2_251.h:5,
keysharing.c:                  from field.h:1,
keysharing.c:                  from keysharing.c:3:
keysharing.c: keysharing.c: In function 'crypto_dh_curve2251_mpfq_timingleaks_keypair':
keysharing.c: x86_64/mpfq_2_251.h:16:25: warning: 'K' is used uninitialized [-Wuninitialized]
keysharing.c:    16 | #define MPFQ_(X)        mpfq_2_251_ ## X
keysharing.c:       |                         ^~~~~~~~~~~
keysharing.c: keysharing.c:58:10: note: 'K' was declared here
keysharing.c:    58 |   Kfield K;
keysharing.c:       |          ^
keysharing.c: keysharing.c: In function 'crypto_dh_curve2251_mpfq_timingleaks':
keysharing.c: keysharing.c:121:3: warning: 'K' is used uninitialized [-Wuninitialized]
keysharing.c:   121 |   ECmul(K, res, base_point, key);
keysharing.c:       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:mpfqgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:mpfqgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:mpfqgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:mpfqgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_avx_timingleaks_keypair':
curve2251.c: curve2251.c:21:13: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |         int l;
curve2251.c:       |             ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:15: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |         srand(time(NULL));
relic.c:       |               ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |         int i;
relic_eb.c:       |             ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |         int i;
relic_eb.c:       |             ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:19: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |         int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |                   ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:22: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                      ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:19: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                   ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:13: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |             ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_clmul_timingleaks_keypair':
curve2251.c: curve2251.c:21:13: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |         int l;
curve2251.c:       |             ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:15: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |         srand(time(NULL));
relic.c:       |               ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |         int i;
relic_eb.c:       |             ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |         int i;
relic_eb.c:       |             ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:19: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |         int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |                   ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:22: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                      ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:19: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                   ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:13: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |             ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-clmulgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-clmulgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-clmulgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-clmulgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


curve2251.c: curve2251.c: In function 'crypto_dh_curve2251_relic_amd64_ssse3_timingleaks_keypair':
curve2251.c: curve2251.c:21:13: warning: unused variable 'l' [-Wunused-variable]
curve2251.c:    21 |         int l;
curve2251.c:       |             ^
relic.c: In file included from relic.c:4:
relic.c: src/relic_rand.c: In function 'rand_init':
relic.c: src/relic_rand.c:117:15: warning: implicit declaration of function 'time' [-Wimplicit-function-declaration]
relic.c:   117 |         srand(time(NULL));
relic.c:       |               ^~~~
relic.c: In file included from relic.c:3:
relic.c: At top level:
relic.c: src/relic_bench.c:124:13: warning: 'empty' defined but not used [-Wunused-function]
relic.c:   124 | static void empty(int *a) {
relic.c:       |             ^~~~~
relic_eb.c: In file included from relic_eb.c:2:
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_init':
relic_eb.c: src/eb/relic_eb_curve.c:238:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   238 |         int i;
relic_eb.c:       |             ^
relic_eb.c: src/eb/relic_eb_curve.c: In function 'eb_curve_clean':
relic_eb.c: src/eb/relic_eb_curve.c:266:13: warning: unused variable 'i' [-Wunused-variable]
relic_eb.c:   266 |         int i;
relic_eb.c:       |             ^
relic_fb.c: In file included from relic_fb.c:11:
relic_fb.c: src/low/relic_fb_inv_low.c: In function 'fb_invn_low':
relic_fb.c: src/low/relic_fb_inv_low.c:43:19: warning: unused variable 'chain' [-Wunused-variable]
relic_fb.c:    43 |         int len, *chain = fb_poly_get_chain(&len);
relic_fb.c:       |                   ^~~~~
relic_fb.c: src/low/relic_fb_inv_low.c:40:22: warning: unused variable 'y' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                      ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:19: warning: unused variable 'x' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |                   ^
relic_fb.c: src/low/relic_fb_inv_low.c:40:13: warning: unused variable 'i' [-Wunused-variable]
relic_fb.c:    40 |         int i, j, x, y, u[11];
relic_fb.c:       |             ^
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
try.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
try.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE
measure.c: /usr/bin/ld: libcrypto_dh_curve2251.a(relic_low.o): warning: relocation in read-only section `.eh_frame'
measure.c: /usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:relic/amd64-ssse3gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-ssse3gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-ssse3gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:relic/amd64-ssse3gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)