Implementation notes: amd64, glyme, crypto_dh/curve25519

Computer: glyme
Architecture: amd64
CPU ID: GenuineIntel-00020652-bfebfbff
SUPERCOP version: 201720170105
Operation: crypto_dh
Primitive: curve25519
TimeImplementationCompilerBenchmark dateSUPERCOP version
940852refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020520170105
940964refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020520170105
940988refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020520170105
940988refgcc -m64 -O3 -fomit-frame-pointer2017020520170105
941040refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
941064refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
941084refgcc -funroll-loops -O2 -fomit-frame-pointer2017020520170105
941096refgcc -march=barcelona -O3 -fomit-frame-pointer2017020520170105
941124refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020520170105
941172refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020520170105
941204refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
941504refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
942896refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020520170105
943060refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020520170105
943060refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020520170105
943684refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
943864refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
943880refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
944200refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020520170105
944204refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
944288refgcc -march=nocona -O3 -fomit-frame-pointer2017020520170105
944292refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020520170105
944580refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
945096refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
945424refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020520170105
945520refgcc -O3 -fomit-frame-pointer2017020520170105
945596refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
945692refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
946268refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
946436refgcc -funroll-loops -O3 -fomit-frame-pointer2017020520170105
946908refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020520170105
947084refgcc -funroll-loops -O -fomit-frame-pointer2017020520170105
947200refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020520170105
947280refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
947312refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020520170105
947320refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020520170105
947440refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
947504refgcc -march=nocona -Os -fomit-frame-pointer2017020520170105
947620refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
947664refgcc -m64 -Os -fomit-frame-pointer2017020520170105
947672refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
947688refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020520170105
947724refgcc -Os -fomit-frame-pointer2017020520170105
947780refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
947808refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020520170105
947820refgcc -funroll-loops -Os -fomit-frame-pointer2017020520170105
948092refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020520170105
948092refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020520170105
948176refgcc -march=barcelona -O2 -fomit-frame-pointer2017020520170105
948204refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020520170105
948260refgcc -march=k8 -O3 -fomit-frame-pointer2017020520170105
948300refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020520170105
948356refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020520170105
948376refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020520170105
948424refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020520170105
948548refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020520170105
948552refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020520170105
948572refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020520170105
948596refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
948648refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
948664refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
948684refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
948696refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
948836refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
949024refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020520170105
949076refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
950104refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020520170105
950188refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020520170105
950208refgcc -m64 -O2 -fomit-frame-pointer2017020520170105
950228refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020520170105
950392refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
950448refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
950496refgcc -march=barcelona -Os -fomit-frame-pointer2017020520170105
951240refgcc -O -fomit-frame-pointer2017020520170105
951244refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
951264refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
951400refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
951612refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020520170105
951952refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020520170105
952132refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020520170105
952428refgcc -march=nocona -O -fomit-frame-pointer2017020520170105
952480refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020520170105
952620refgcc -O2 -fomit-frame-pointer2017020520170105
952752refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020520170105
953440refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020520170105
953504refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
953636refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020520170105
953692refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020520170105
953728refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020520170105
953984refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
954008refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
954056refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
955148refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020520170105
955588refgcc -march=k8 -O -fomit-frame-pointer2017020520170105
955704refgcc -march=k8 -Os -fomit-frame-pointer2017020520170105
956596refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020520170105
957100refgcc -march=nocona -O2 -fomit-frame-pointer2017020520170105
958540refgcc -march=barcelona -O -fomit-frame-pointer2017020520170105
959364refgcc -m64 -O -fomit-frame-pointer2017020520170105
961332refgcc -march=k8 -O2 -fomit-frame-pointer2017020520170105
967480refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
984096refgcc2017020520170105
990768refgcc -funroll-loops2017020520170105
1004720refcc2017020520170105

Compiler output

Implementation: crypto_dh/curve25519/mpfq
Compiler: cc
curve25519.c: curve25519.c:18:10: fatal error: 'gmp.h' file not found
curve25519.c: #include gt;
curve25519.c: ^
curve25519.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 7, namely:
CompilerImplementations
cc mpfq
clang -O3 -fomit-frame-pointer -Qunused-arguments mpfq
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments mpfq
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments mpfq

Compiler output

Implementation: crypto_dh/curve25519/ref
Compiler: clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
try.c: clang: error: no such file or directory: 'try.c'
try.c: clang: error: no such file or directory: 'try-anything.c'
try.c: clang: error: no such file or directory: 'crypto_dh_curve25519.a'

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_dh/curve25519/mpfq
Compiler: gcc
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 gt;
curve25519.c: ^
curve25519.c: compilation terminated.

Number of similar (compiler,implementation) pairs: 94, namely:
CompilerImplementations
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=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 -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 gt;
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 gt;
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