Implementation notes: amd64, mace, crypto_dh/nist521gs

Computer: mace
Architecture: amd64
CPU ID: AuthenticAMD-00040fb2-178bfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: nist521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
7709125refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016111820161009
7709400refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111820161009
7947983refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016111820161009
7957684refgcc -march=barcelona -Os -fomit-frame-pointer2016111820161009
7960089refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016111820161009
7979644refgcc -march=k8 -Os -fomit-frame-pointer2016111820161009
7984806refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016111820161009
7987746refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016111820161009
7995996refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016111820161009
7996664refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016111820161009
8000851refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016111820161009
8006822refgcc -m64 -Os -fomit-frame-pointer2016111820161009
8007594refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016111820161009
8011964refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016111820161009
8015073refgcc -Os -fomit-frame-pointer2016111820161009
8040464refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016111820161009
8098455refgcc -funroll-loops -Os -fomit-frame-pointer2016111820161009
8182506refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016111820161009
8248003refgcc -march=barcelona -O3 -fomit-frame-pointer2016111820161009
8250465refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016111820161009
8253846refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016111820161009
8256507refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016111820161009
8256624refgcc -m64 -O3 -fomit-frame-pointer2016111820161009
8257064refgcc -O3 -fomit-frame-pointer2016111820161009
8257507refgcc -funroll-loops -O3 -fomit-frame-pointer2016111820161009
8257732refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016111820161009
8258346refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016111820161009
8258364refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016111820161009
8258901refgcc -march=nocona -Os -fomit-frame-pointer2016111820161009
8268324refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016111820161009
8273528refgcc -march=k8 -O3 -fomit-frame-pointer2016111820161009
8273651refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016111820161009
8275689refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016111820161009
8279696refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016111820161009
8284904refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016111820161009
8294258refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016111820161009
8295068refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016111820161009
8295167refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016111820161009
8315504refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016111820161009
8325057refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016111820161009
8359638refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016111820161009
8361903refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111820161009
8363100refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111820161009
8375543refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111820161009
8375669refclang -O3 -fomit-frame-pointer -Qunused-arguments2016111820161009
8484950refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016111820161009
8485199refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016111820161009
8488187refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016111820161009
8491448refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016111820161009
8534013refgcc -march=k8 -O2 -fomit-frame-pointer2016111820161009
8542400refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016111820161009
8543682refgcc -m64 -O2 -fomit-frame-pointer2016111820161009
8544499refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016111820161009
8551719refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016111820161009
8554005refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016111820161009
8554221refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016111820161009
8557539refgcc -funroll-loops -O2 -fomit-frame-pointer2016111820161009
8558920refgcc -O2 -fomit-frame-pointer2016111820161009
8565061refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016111820161009
8585823refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016111820161009
8586289refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016111820161009
8588261refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016111820161009
8601031refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016111820161009
8620802refgcc -march=barcelona -O2 -fomit-frame-pointer2016111820161009
8621640refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016111820161009
8647127refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016111820161009
8652249refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016111820161009
8652658refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016111820161009
8667681refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016111820161009
8669433refgcc -march=nocona -O3 -fomit-frame-pointer2016111820161009
8878350refgcc -march=nocona -O2 -fomit-frame-pointer2016111820161009
8880158refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016111820161009
8902532refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016111820161009
8908498refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016111820161009
15609476refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016111820161009
15617983refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016111820161009
15664177refgcc -m64 -march=nocona -O -fomit-frame-pointer2016111820161009
15685369refgcc -march=nocona -O -fomit-frame-pointer2016111820161009
15698447refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016111820161009
15698544refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016111820161009
15747016refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016111820161009
15747902refgcc -funroll-loops -O -fomit-frame-pointer2016111820161009
15748008refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016111820161009
15774484refgcc -O -fomit-frame-pointer2016111820161009
15775062refgcc -m64 -O -fomit-frame-pointer2016111820161009
15776431refgcc -fno-schedule-insns -O -fomit-frame-pointer2016111820161009
15917783refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016111820161009
15929079refgcc -march=barcelona -O -fomit-frame-pointer2016111820161009
15953671refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016111820161009
15958865refgcc -m64 -march=k8 -O -fomit-frame-pointer2016111820161009
15959082refgcc -march=k8 -O -fomit-frame-pointer2016111820161009
15980411refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016111820161009
16004760refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016111820161009
16053132refgcc -m64 -march=core2 -O -fomit-frame-pointer2016111820161009
16059475refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016111820161009
16061931refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016111820161009
16078544refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016111820161009
16079547refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016111820161009
32365815refcc2016111820161009
32470698refgcc -funroll-loops2016111820161009
32472935refgcc2016111820161009

Test failure

Implementation: crypto_dh/nist521gs/ref
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/nist521gs/ref
Compiler: cc
dh.c: dh.c: In function 'crypto_dh_nist521gs_ref_keypair':
dh.c: dh.c:831:2: warning: implicit declaration of function 'randombytes' [-Wimplicit-function-declaration]
dh.c: randombytes(sk,PANES-1);
dh.c: ^

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

Compiler output

Implementation: crypto_dh/nist521gs/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
dh.c: dh.c:831:2: warning: implicit declaration of function 'randombytes' is invalid in C99 [-Wimplicit-function-declaration]
dh.c: randombytes(sk,PANES-1);
dh.c: ^
dh.c: 1 warning generated.

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

Compiler output

Implementation: crypto_dh/nist521gs/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
dh.c: dh.c: In function 'crypto_dh_nist521gs_ref_keypair':
dh.c: dh.c:831:2: warning: implicit declaration of function 'randombytes' [-Wimplicit-function-declaration]
dh.c: randombytes(sk,PANES-1);
dh.c: ^
dh.c: dh.c: In function 'crypto_dh_nist521gs_ref_keypair':
dh.c: dh.c:831:2: warning: implicit declaration of function 'randombytes' [-Wimplicit-function-declaration]
dh.c: randombytes(sk,PANES-1);
dh.c: ^

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