Implementation notes: amd64, hiphop, crypto_dh/ecfp256h

Computer: hiphop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20231107
Operation: crypto_dh
Primitive: ecfp256h
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
607257206362 0 8221275 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
611309114618 0 8130011 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
615433179799 0 8194755 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
617156140486 0 8155355 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
618748114214 0 8129219 844 1824T:v01/w8s4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
62112381870 0 897259 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
622176107726 0 8122619 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
622442171039 0 8185107 836 1792T:v01/w8s8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
623035105503 0 8119571 836 1792T:v01/w8s4gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
626745180186 0 8195547 844 1824T:v01/w8s8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
63372881507 0 896459 844 1824T:v01/w8s2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
64192791089 0 8105963 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
64457972766 0 886811 836 1792T:v01/w8s2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
64772265377 0 880731 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
65480865048 0 880003 844 1824T:v01/w8s1gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
66080956229 0 870283 836 1792T:v01/w8s1gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
101545773500 0 888387 844 1824T:v01/vargcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
101830948688 0 864051 844 1824T:v01/vargcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
102532048470 0 863451 844 1824T:v01/vargcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107
103705640010 0 854067 836 1792T:v01/vargcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110720231107

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