Implementation notes: amd64, mace, crypto_dh/nist521gs

Computer: mace
Architecture: amd64
CPU ID: AuthenticAMD-00040fb2-178bfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: nist521gs
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
7709125? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2016111820161009
7709400? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2016111820161009
7947983? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2016111820161009
7957684? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2016111820161009
7960089? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2016111820161009
7979644? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2016111820161009
7984806? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2016111820161009
7987746? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2016111820161009
7995996? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2016111820161009
7996664? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2016111820161009
8000851? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2016111820161009
8006822? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2016111820161009
8007594? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2016111820161009
8011964? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2016111820161009
8015073? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2016111820161009
8040464? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2016111820161009
8098455? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2016111820161009
8182506? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2016111820161009
8248003? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2016111820161009
8250465? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2016111820161009
8253846? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2016111820161009
8256507? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2016111820161009
8256624? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2016111820161009
8257064? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2016111820161009
8257507? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2016111820161009
8257732? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2016111820161009
8258346? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2016111820161009
8258364? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2016111820161009
8258901? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2016111820161009
8268324? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2016111820161009
8273528? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2016111820161009
8273651? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2016111820161009
8275689? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2016111820161009
8279696? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2016111820161009
8284904? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2016111820161009
8294258? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2016111820161009
8295068? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2016111820161009
8295167? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2016111820161009
8315504? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2016111820161009
8325057? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2016111820161009
8359638? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2016111820161009
8361903? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2016111820161009
8363100? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2016111820161009
8375543? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2016111820161009
8375669? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2016111820161009
8484950? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2016111820161009
8485199? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2016111820161009
8488187? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2016111820161009
8491448? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2016111820161009
8534013? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2016111820161009
8542400? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2016111820161009
8543682? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2016111820161009
8544499? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2016111820161009
8551719? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2016111820161009
8554005? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2016111820161009
8554221? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2016111820161009
8557539? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2016111820161009
8558920? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2016111820161009
8565061? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2016111820161009
8585823? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2016111820161009
8586289? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2016111820161009
8588261? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2016111820161009
8601031? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2016111820161009
8620802? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2016111820161009
8621640? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2016111820161009
8647127? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2016111820161009
8652249? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2016111820161009
8652658? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2016111820161009
8667681? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2016111820161009
8669433? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2016111820161009
8878350? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2016111820161009
8880158? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2016111820161009
8902532? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2016111820161009
8908498? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2016111820161009
15609476? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2016111820161009
15617983? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2016111820161009
15664177? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2016111820161009
15685369? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2016111820161009
15698447? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2016111820161009
15698544? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2016111820161009
15747016? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2016111820161009
15747902? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2016111820161009
15748008? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2016111820161009
15774484? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2016111820161009
15775062? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2016111820161009
15776431? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2016111820161009
15917783? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2016111820161009
15929079? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2016111820161009
15953671? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2016111820161009
15958865? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2016111820161009
15959082? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2016111820161009
15980411? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2016111820161009
16004760? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2016111820161009
16053132? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2016111820161009
16059475? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2016111820161009
16061931? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2016111820161009
16078544? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2016111820161009
16079547? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2016111820161009
32365815? ? ?? ? ?refcc2016111820161009
32470698? ? ?? ? ?refgcc_-funroll-loops2016111820161009
32472935? ? ?? ? ?refgcc2016111820161009

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