Implementation notes: amd64, hertz, crypto_dh/ecfp256h

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240107
Operation: crypto_dh
Primitive: ecfp256h
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
398282222643 0 8235587 844 1928T:v01/w8s8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
401393183231 0 8198211 844 1864T:v01/w8s8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
401736156707 0 8169651 844 1928T:v01/w8s4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
404322117652 0 8132643 844 1864T:v01/w8s4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
410368123950 0 8136883 844 1928T:v01/w8s2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
41202584940 0 899923 844 1864T:v01/w8s2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
413269170654 0 8184395 836 1832T:v01/w8s8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
417464105118 0 8118859 836 1832T:v01/w8s4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
424588107301 0 8120243 844 1928T:v01/w8s1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
42560172377 0 886115 836 1832T:v01/w8s2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
42749268426 0 883411 844 1864T:v01/w8s1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
43901655866 0 869603 836 1832T:v01/w8s1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
66649689678 0 8102603 844 1928T:v01/vargcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
67248151718 0 866699 844 1864T:v01/vargcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
69379939679 0 853403 836 1832T:v01/vargcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217

Compiler output

Implementation: T:v01/var
Security model: timingleaks
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
alloc.c: alloc.c:79:11: warning: passing 'char[13]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
alloc.c: 79 | kn_exit("kn_init_fast", ERR_OUT_OF_MEMORY);
alloc.c: | ^~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: 132 | void kn_exit(sic_t *s, uni_t code);
alloc.c: | ^
alloc.c: alloc.c:94:11: warning: passing 'char[13]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
alloc.c: 94 | kn_exit("kn_free_fast", ERR_INVALID_MEMORY);
alloc.c: | ^~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: 132 | void kn_exit(sic_t *s, uni_t code);
alloc.c: | ^
alloc.c: alloc.c:110:11: warning: passing 'char[8]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
alloc.c: 110 | kn_exit("kn_kill", ERR_INVALID_MEMORY);
alloc.c: | ^~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: 132 | void kn_exit(sic_t *s, uni_t code);
alloc.c: | ^
alloc.c: alloc.c:133:11: warning: passing 'char[33]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
alloc.c: 133 | kn_exit("kn_alloc: cannot allocate memory", 0);
alloc.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: 132 | void kn_exit(sic_t *s, uni_t code);
alloc.c: | ^
alloc.c: alloc.c:154:12: warning: passing 'char[8]' to parameter of type 'sic_t *' (aka 'signed char *') converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
alloc.c: ...

Number of similar (compiler,implementation) pairs: 15, namely:
CompilerImplementations
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8

Compiler output

Implementation: T:v01/w8s1
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try_ec_fp_256h.c: try_ec_fp_256h.c: In function 'crypto_dh_ecfp256h_v01_w8s1_timingleaks_keypair':
try_ec_fp_256h.c: try_ec_fp_256h.c:39:9: warning: implicit declaration of function 'ec_fp_smulbase_256h'; did you mean 'ec_fp_smulbase_256i'? [-Wimplicit-function-declaration]
try_ec_fp_256h.c: 39 | ec_fp_smulbase_256h((uni)pk, (uni)(pk + (PUBLICKEY_BYTES/2)), (uni)zzn, (uni)sk, (uni *)xn0, (uni *)yn0);
try_ec_fp_256h.c: | ^~~~~~~~~~~~~~~~~~~
try_ec_fp_256h.c: | ec_fp_smulbase_256i

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s1
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s1
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s1

Compiler output

Implementation: T:v01/w8s2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try_ec_fp_256h.c: try_ec_fp_256h.c: In function 'crypto_dh_ecfp256h_v01_w8s2_timingleaks_keypair':
try_ec_fp_256h.c: try_ec_fp_256h.c:39:9: warning: implicit declaration of function 'ec_fp_smulbase_256h'; did you mean 'ec_fp_smulbase_256i'? [-Wimplicit-function-declaration]
try_ec_fp_256h.c: 39 | ec_fp_smulbase_256h((uni)pk, (uni)(pk + (PUBLICKEY_BYTES/2)), (uni)zzn, (uni)sk, (uni *)xn0, (uni *)yn0);
try_ec_fp_256h.c: | ^~~~~~~~~~~~~~~~~~~
try_ec_fp_256h.c: | ec_fp_smulbase_256i

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s2

Compiler output

Implementation: T:v01/w8s4
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try_ec_fp_256h.c: try_ec_fp_256h.c: In function 'crypto_dh_ecfp256h_v01_w8s4_timingleaks_keypair':
try_ec_fp_256h.c: try_ec_fp_256h.c:39:9: warning: implicit declaration of function 'ec_fp_smulbase_256h'; did you mean 'ec_fp_smulbase_256i'? [-Wimplicit-function-declaration]
try_ec_fp_256h.c: 39 | ec_fp_smulbase_256h((uni)pk, (uni)(pk + (PUBLICKEY_BYTES/2)), (uni)zzn, (uni)sk, (uni *)xn0, (uni *)yn0);
try_ec_fp_256h.c: | ^~~~~~~~~~~~~~~~~~~
try_ec_fp_256h.c: | ec_fp_smulbase_256i

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s4
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s4
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s4

Compiler output

Implementation: T:v01/w8s8
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try_ec_fp_256h.c: try_ec_fp_256h.c: In function 'crypto_dh_ecfp256h_v01_w8s8_timingleaks_keypair':
try_ec_fp_256h.c: try_ec_fp_256h.c:39:9: warning: implicit declaration of function 'ec_fp_smulbase_256h'; did you mean 'ec_fp_smulbase_256i'? [-Wimplicit-function-declaration]
try_ec_fp_256h.c: 39 | ec_fp_smulbase_256h((uni)pk, (uni)(pk + (PUBLICKEY_BYTES/2)), (uni)zzn, (uni)sk, (uni *)xn0, (uni *)yn0);
try_ec_fp_256h.c: | ^~~~~~~~~~~~~~~~~~~
try_ec_fp_256h.c: | ec_fp_smulbase_256i

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s8