Implementation notes: amd64, hydra3, crypto_dh/nist521gs

Computer: hydra3
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20171218
Operation: crypto_dh
Primitive: nist521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
6378575refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017111720171020
6380067refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017111720171020
6824512refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017111720171020
6826985refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017111720171020
6832741refgcc -Os -fomit-frame-pointer2017111720171020
6834861refgcc -march=barcelona -Os -fomit-frame-pointer2017111720171020
6835208refgcc -m64 -Os -fomit-frame-pointer2017111720171020
6835786refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017111720171020
6836239refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017111720171020
6836330refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017111720171020
6836839refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017111720171020
6836956refgcc -funroll-loops -Os -fomit-frame-pointer2017111720171020
6836994refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017111720171020
6849677refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017111720171020
6851474refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017111720171020
6855792refgcc -march=k8 -Os -fomit-frame-pointer2017111720171020
6856593refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017111720171020
6866605refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017111720171020
6867092refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017111720171020
6870225refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017111720171020
6870554refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017111720171020
6931292refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017111720171020
6939839refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017111720171020
6965234refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017111720171020
6965588refclang -O3 -fomit-frame-pointer -Qunused-arguments2017111720171020
6968300refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017111720171020
6969745refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017111720171020
7082615refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017111720171020
7085083refgcc -march=nocona -Os -fomit-frame-pointer2017111720171020
7098988refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017111720171020
7101963refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017111720171020
7104988refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017111720171020
7108765refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017111720171020
7111785refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017111720171020
7111963refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017111720171020
7114032refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017111720171020
7114279refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017111720171020
7114289refgcc -march=barcelona -O3 -fomit-frame-pointer2017111720171020
7123746refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017111720171020
7124481refgcc -march=k8 -O3 -fomit-frame-pointer2017111720171020
7134626refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017111720171020
7139113refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017111720171020
7142852refgcc -funroll-loops -O3 -fomit-frame-pointer2017111720171020
7143900refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017111720171020
7144605refgcc -m64 -O3 -fomit-frame-pointer2017111720171020
7145759refgcc -O3 -fomit-frame-pointer2017111720171020
7147553refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017111720171020
7271671refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017111720171020
7272088refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017111720171020
7281780refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017111720171020
7282822refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017111720171020
7288268refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017111720171020
7289385refgcc -march=barcelona -O2 -fomit-frame-pointer2017111720171020
7290340refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017111720171020
7292411refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017111720171020
7293747refgcc -march=k8 -O2 -fomit-frame-pointer2017111720171020
7326791refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017111720171020
7331481refgcc -funroll-loops -O2 -fomit-frame-pointer2017111720171020
7332557refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017111720171020
7347034refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017111720171020
7347634refgcc -O2 -fomit-frame-pointer2017111720171020
7348420refgcc -m64 -O2 -fomit-frame-pointer2017111720171020
7367075refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017111720171020
7368056refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017111720171020
7368558refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017111720171020
7371073refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017111720171020
7445756refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017111720171020
7449626refgcc -march=nocona -O3 -fomit-frame-pointer2017111720171020
7464371refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017111720171020
7466036refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017111720171020
7634594refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017111720171020
7637431refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017111720171020
7651026refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017111720171020
7655843refgcc -march=nocona -O2 -fomit-frame-pointer2017111720171020
13516879refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017111720171020
13519683refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017111720171020
13526076refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017111720171020
13530107refgcc -march=barcelona -O -fomit-frame-pointer2017111720171020
13531806refgcc -m64 -march=k8 -O -fomit-frame-pointer2017111720171020
13532404refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017111720171020
13532579refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017111720171020
13532937refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017111720171020
13534909refgcc -march=k8 -O -fomit-frame-pointer2017111720171020
13619967refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017111720171020
13620976refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017111720171020
13640794refgcc -m64 -march=nocona -O -fomit-frame-pointer2017111720171020
13646784refgcc -march=nocona -O -fomit-frame-pointer2017111720171020
13675915refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017111720171020
13677563refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017111720171020
13684765refgcc -funroll-loops -O -fomit-frame-pointer2017111720171020
13692182refgcc -m64 -O -fomit-frame-pointer2017111720171020
13695066refgcc -O -fomit-frame-pointer2017111720171020
13696348refgcc -fno-schedule-insns -O -fomit-frame-pointer2017111720171020
13701063refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017111720171020
13701671refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017111720171020
13702811refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017111720171020
13703663refgcc -m64 -march=core2 -O -fomit-frame-pointer2017111720171020
13889599refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017111720171020
25241967refgcc2017111720171020
25243692refcc2017111720171020
25403231refgcc -funroll-loops2017111720171020

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