Implementation notes: amd64, hydra5, crypto_dh/ecfp256h

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240107
Operation: crypto_dh
Primitive: ecfp256h
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
828589228689 0 8244163 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
835211162797 0 8178243 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
839885180904 0 8195483 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
847070115288 0 8129883 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
848709130023 0 8145507 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
849991179929 0 8193523 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
856306114335 0 8127923 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
85991082599 0 897195 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
865893171144 0 8183667 836 1792T:v01/w8s8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
87012181645 0 895227 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
874734105608 0 8118131 836 1792T:v01/w8s4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
879466113325 0 8128787 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
88728872871 0 885371 836 1792T:v01/w8s2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
89090566074 0 880667 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
90239065161 0 878771 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
91916556330 0 868843 836 1792T:v01/w8s1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
135516495795 0 8111275 844 1824T:v01/vargcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
136984649401 0 863987 844 1824T:v01/vargcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
138824848600 0 862219 844 1824T:v01/vargcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
140888640114 0 852627 836 1792T:v01/vargcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212

Compiler output

Implementation: T:v01/var
Security model: timingleaks
Compiler: clang -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: 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: 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: 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: 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: kn_exit("kn_kill", ERR_INVALID_MEMORY);
alloc.c: ^~~~~~~~~
alloc.c: ./_core.h:132:21: note: passing argument to parameter 's' here
alloc.c: 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: 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: 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: 25, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/var
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s1
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s2
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s4
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:v01/w8s8
clang -mcpu=native -O3 -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: 4, 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 -O -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: 4, 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 -O -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: 4, 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 -O -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: 4, 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 -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:v01/w8s8