Implementation notes: amd64, speed2supercop, crypto_dh/curve25519

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_dh
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
600760161 0 041909 760 1632T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
600788140 0 038581 752 1600T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
600856164 0 039589 760 1632T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
600920161 0 039909 760 1632T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
600972155 0 043326 800 1600T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
600988155 0 042238 800 1568T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
602084155 0 039446 800 1568T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
604628151 0 040287 792 1632T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
605816155 0 043502 800 1600T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
99901616796 0 0186651 1080 1672T:mpfqgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
101584820386 0 0192770 1128 1608T:mpfqclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
105111625976 0 0198091 1080 1672T:mpfqgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
110136015860 0 0186322 1112 1672T:mpfqclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
110213221617 0 0195074 1128 1640T:mpfqclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
110239212694 0 0182875 1080 1672T:mpfqgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
110778821601 0 0195234 1128 1640T:mpfqclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
111232016101 0 0185610 1128 1608T:mpfqclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
11539528208 0 0177179 1080 1640T:mpfqgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Compiler output


curve25519.c: In file included from curve25519.c:20:
curve25519.c: In file included from ./mpfq_p_25519.h:5:
curve25519.c: In file included from ./x86_64/mpfq_p_25519.h:10:
curve25519.c: In file included from ./fixmp.h:281:
curve25519.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2587:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ./fixmp_longlong.h:2599:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:   int i;
curve25519.c:       ^
curve25519.c: ...
keysharing.c: In file included from keysharing.c:4:
keysharing.c: In file included from ./mpfq_p_25519.h:5:
keysharing.c: In file included from ./x86_64/mpfq_p_25519.h:10:
keysharing.c: In file included from ./fixmp.h:281:
keysharing.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2587:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ./fixmp_longlong.h:2599:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:   int i;
keysharing.c:       ^
keysharing.c: ...
mpfq_p_25519.c: In file included from mpfq_p_25519.c:1:
mpfq_p_25519.c: In file included from ./mpfq_p_25519.h:5:
mpfq_p_25519.c: In file included from ./x86_64/mpfq_p_25519.h:10:
mpfq_p_25519.c: In file included from ./fixmp.h:281:
mpfq_p_25519.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2587:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ./fixmp_longlong.h:2599:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:   int i;
mpfq_p_25519.c:       ^
mpfq_p_25519.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:mpfqclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:mpfqclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:mpfqclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:mpfqclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:mpfqclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


curve25519.c: In file included from ./fixmp.h:281,
curve25519.c:                  from x86_64/mpfq_p_25519.h:10,
curve25519.c:                  from mpfq_p_25519.h:5,
curve25519.c:                  from curve25519.c:20:
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_1':
curve25519.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:  2527 |   int i;
curve25519.c:       |       ^
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_2':
curve25519.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:  2539 |   int i;
curve25519.c:       |       ^
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_3':
curve25519.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:  2551 |   int i;
curve25519.c:       |       ^
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_4':
curve25519.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:  2563 |   int i;
curve25519.c:       |       ^
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_5':
curve25519.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
curve25519.c:  2575 |   int i;
curve25519.c:       |       ^
curve25519.c: ./fixmp_longlong.h: In function 'mgy_decode_6':
curve25519.c: ...
keysharing.c: In file included from ./fixmp.h:281,
keysharing.c:                  from x86_64/mpfq_p_25519.h:10,
keysharing.c:                  from mpfq_p_25519.h:5,
keysharing.c:                  from keysharing.c:4:
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_1':
keysharing.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:  2527 |   int i;
keysharing.c:       |       ^
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_2':
keysharing.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:  2539 |   int i;
keysharing.c:       |       ^
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_3':
keysharing.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:  2551 |   int i;
keysharing.c:       |       ^
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_4':
keysharing.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:  2563 |   int i;
keysharing.c:       |       ^
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_5':
keysharing.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
keysharing.c:  2575 |   int i;
keysharing.c:       |       ^
keysharing.c: ./fixmp_longlong.h: In function 'mgy_decode_6':
keysharing.c: ...
mpfq_p_25519.c: In file included from ./fixmp.h:281,
mpfq_p_25519.c:                  from x86_64/mpfq_p_25519.h:10,
mpfq_p_25519.c:                  from mpfq_p_25519.h:5,
mpfq_p_25519.c:                  from mpfq_p_25519.c:1:
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_1':
mpfq_p_25519.c: ./fixmp_longlong.h:2527:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:  2527 |   int i;
mpfq_p_25519.c:       |       ^
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_2':
mpfq_p_25519.c: ./fixmp_longlong.h:2539:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:  2539 |   int i;
mpfq_p_25519.c:       |       ^
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_3':
mpfq_p_25519.c: ./fixmp_longlong.h:2551:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:  2551 |   int i;
mpfq_p_25519.c:       |       ^
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_4':
mpfq_p_25519.c: ./fixmp_longlong.h:2563:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:  2563 |   int i;
mpfq_p_25519.c:       |       ^
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_5':
mpfq_p_25519.c: ./fixmp_longlong.h:2575:7: warning: unused variable 'i' [-Wunused-variable]
mpfq_p_25519.c:  2575 |   int i;
mpfq_p_25519.c:       |       ^
mpfq_p_25519.c: ./fixmp_longlong.h: In function 'mgy_decode_6':
mpfq_p_25519.c: ...

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