Implementation notes: amd64, gsm2, crypto_dh/curve25519

Computer: gsm2
Architecture: amd64
CPU ID: GenuineIntel-000306e4-bfebfbff
SUPERCOP version: 20170725
Operation: crypto_dh
Primitive: curve25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
604260? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017080620170725
608956? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017080620170725
942240? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017080620170725
945344? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017080620170725
945656? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017080620170725
961220? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017080620170725
1004176? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017080620170725
1018576? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017080620170725
1025816? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017080620170725
1037200? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017080620170725
1038316? ? ?? ? ?refgcc_-funroll-loops2017080620170725
1046332? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017080620170725
1065500? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017080620170725
1068976? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017080620170725
1069092? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017080620170725
1069092? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017080620170725
1069692? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017080620170725
1071804? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017080620170725
1071860? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017080620170725
1077460? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017080620170725
1077568? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017080620170725
1077632? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017080620170725
1078372? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017080620170725
1079424? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017080620170725
1081128? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017080620170725
1082304? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017080620170725
1082632? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017080620170725
1084096? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017080620170725
1084468? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017080620170725
1084660? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017080620170725
1085052? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017080620170725
1085688? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017080620170725
1086476? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017080620170725
1086560? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017080620170725
1088172? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017080620170725
1088688? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017080620170725
1090528? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017080620170725
1092264? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017080620170725
1093168? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017080620170725
1093980? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017080620170725
1094936? ? ?? ? ?refcc2017080620170725
1095548? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017080620170725
1098644? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017080620170725
1102044? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017080620170725
1102436? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017080620170725
1102480? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017080620170725
1102804? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017080620170725
1103188? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017080620170725
1104116? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017080620170725
1104696? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017080620170725
1105300? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017080620170725
1106892? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017080620170725
1107032? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017080620170725
1107776? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017080620170725
1107868? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017080620170725
1108332? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017080620170725
1108784? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017080620170725
1114984? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017080620170725
1115912? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017080620170725
1116152? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017080620170725
1117680? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017080620170725
1118044? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017080620170725
1121840? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017080620170725
1126092? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017080620170725
1129848? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017080620170725
1133712? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017080620170725
1134904? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017080620170725
1136588? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017080620170725
1138156? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017080620170725
1140372? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017080620170725
1141300? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017080620170725
1145432? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017080620170725
1148060? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017080620170725
1150944? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017080620170725
1162952? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017080620170725
1164992? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017080620170725
1165764? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017080620170725
1166752? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017080620170725
1167040? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017080620170725
1168592? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017080620170725
1169448? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017080620170725
1170076? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017080620170725
1170452? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017080620170725
1170680? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017080620170725
1171124? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017080620170725
1171352? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017080620170725
1171676? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017080620170725
1171704? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017080620170725
1173216? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017080620170725
1173592? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017080620170725
1173628? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017080620170725
1173728? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017080620170725
1173756? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017080620170725
1174440? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017080620170725
1174460? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017080620170725
1174836? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017080620170725
1175788? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017080620170725
1176460? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017080620170725
1176932? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017080620170725
1176960? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017080620170725
1177460? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017080620170725
1177500? ? ?? ? ?refgcc2017080620170725
1177724? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017080620170725
1178776? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017080620170725
1180488? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017080620170725
1181652? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017080620170725
1182044? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017080620170725

Test failure

Implementation: crypto_dh/curve25519/ref
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/curve25519/mpfq
Compiler: cc
curve25519.c: In file included from x86_64/mpfq_p_25519.h:10:0,
curve25519.c: from mpfq_p_25519.h:5,
curve25519.c: from curve25519.c:20:
curve25519.c: ./fixmp.h:15:22: fatal error: gmp-impl.h: No such file or directory
curve25519.c: #include <gmp-impl.h>
curve25519.c: ^
curve25519.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 106, namely:
CompilerImplementations
cc mpfq
gcc mpfq
gcc -O2 -fomit-frame-pointer mpfq
gcc -O3 -fomit-frame-pointer mpfq
gcc -O -fomit-frame-pointer mpfq
gcc -Os -fomit-frame-pointer mpfq
gcc -fno-schedule-insns -O2 -fomit-frame-pointer mpfq
gcc -fno-schedule-insns -O3 -fomit-frame-pointer mpfq
gcc -fno-schedule-insns -O -fomit-frame-pointer mpfq
gcc -fno-schedule-insns -Os -fomit-frame-pointer mpfq
gcc -funroll-loops mpfq
gcc -funroll-loops -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -O -fomit-frame-pointer mpfq
gcc -funroll-loops -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer mpfq
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -O -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer mpfq
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer mpfq
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer mpfq
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer mpfq
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer mpfq
gcc -m64 -O2 -fomit-frame-pointer mpfq
gcc -m64 -O3 -fomit-frame-pointer mpfq
gcc -m64 -O -fomit-frame-pointer mpfq
gcc -m64 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer mpfq
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer mpfq
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -O -fomit-frame-pointer mpfq
gcc -m64 -march=corei7 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=k8 -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=k8 -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=k8 -O -fomit-frame-pointer mpfq
gcc -m64 -march=k8 -Os -fomit-frame-pointer mpfq
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer mpfq
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer mpfq
gcc -m64 -march=nocona -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=nocona -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=nocona -O -fomit-frame-pointer mpfq
gcc -m64 -march=nocona -Os -fomit-frame-pointer mpfq
gcc -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -march=barcelona -O -fomit-frame-pointer mpfq
gcc -march=barcelona -Os -fomit-frame-pointer mpfq
gcc -march=k8 -O2 -fomit-frame-pointer mpfq
gcc -march=k8 -O3 -fomit-frame-pointer mpfq
gcc -march=k8 -O -fomit-frame-pointer mpfq
gcc -march=k8 -Os -fomit-frame-pointer mpfq
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv mpfq
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv mpfq
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv mpfq
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv mpfq
gcc -march=nocona -O2 -fomit-frame-pointer mpfq
gcc -march=nocona -O3 -fomit-frame-pointer mpfq
gcc -march=nocona -O -fomit-frame-pointer mpfq
gcc -march=nocona -Os -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/curve25519/mpfq
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
curve25519.c: In file included from x86_64/mpfq_p_25519.h:10:0,
curve25519.c: from mpfq_p_25519.h:5,
curve25519.c: from curve25519.c:20:
curve25519.c: ./fixmp.h:15:22: fatal error: gmp-impl.h: No such file or directory
curve25519.c: #include <gmp-impl.h>
curve25519.c: ^
curve25519.c: compilation terminated.
curve25519.c: In file included from x86_64/mpfq_p_25519.h:10:0,
curve25519.c: from mpfq_p_25519.h:5,
curve25519.c: from curve25519.c:20:
curve25519.c: ./fixmp.h:15:22: fatal error: gmp-impl.h: No such file or directory
curve25519.c: #include <gmp-impl.h>
curve25519.c: ^
curve25519.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer mpfq
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer mpfq
gcc -m64 -march=barcelona -O -fomit-frame-pointer mpfq
gcc -m64 -march=barcelona -Os -fomit-frame-pointer mpfq