Implementation notes: amd64, glyme, crypto_dh/nist521gs

Computer: glyme
Architecture: amd64
CPU ID: GenuineIntel-00020652-bfebfbff
SUPERCOP version: 201720170105
Operation: crypto_dh
Primitive: nist521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
6908496refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020520170105
6992204refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020520170105
7077584refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020520170105
7080852refgcc -funroll-loops -O3 -fomit-frame-pointer2017020520170105
7084792refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020520170105
7085732refgcc -O3 -fomit-frame-pointer2017020520170105
7086264refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020520170105
7086468refgcc -m64 -O3 -fomit-frame-pointer2017020520170105
7088088refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
7095416refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020520170105
7097484refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020520170105
7098240refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
7109672refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020520170105
7109724refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
7112744refgcc -march=k8 -O3 -fomit-frame-pointer2017020520170105
7113340refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
7116788refgcc -Os -fomit-frame-pointer2017020520170105
7117284refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
7118372refgcc -m64 -Os -fomit-frame-pointer2017020520170105
7119032refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020520170105
7120872refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
7129164refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020520170105
7139000refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
7139192refgcc -march=k8 -Os -fomit-frame-pointer2017020520170105
7142568refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
7143144refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020520170105
7148504refgcc -march=barcelona -Os -fomit-frame-pointer2017020520170105
7150104refgcc -march=barcelona -O3 -fomit-frame-pointer2017020520170105
7150424refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
7163384refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020520170105
7163744refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020520170105
7164656refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020520170105
7164916refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020520170105
7165216refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020520170105
7167360refgcc -march=nocona -Os -fomit-frame-pointer2017020520170105
7167508refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
7167828refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
7169052refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020520170105
7173564refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
7177908refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020520170105
7183008refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
7186404refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
7187428refgcc -funroll-loops -Os -fomit-frame-pointer2017020520170105
7187788refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020520170105
7194872refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
7195064refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020520170105
7200468refgcc -march=nocona -O3 -fomit-frame-pointer2017020520170105
7202044refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020520170105
7202080refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
7331820refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020520170105
7334420refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020520170105
7337664refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
7340080refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020520170105
7340940refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
7344996refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020520170105
7345180refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020520170105
7345624refgcc -m64 -O2 -fomit-frame-pointer2017020520170105
7346428refgcc -funroll-loops -O2 -fomit-frame-pointer2017020520170105
7351444refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020520170105
7357140refgcc -O2 -fomit-frame-pointer2017020520170105
7368072refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020520170105
7374192refgcc -march=k8 -O2 -fomit-frame-pointer2017020520170105
7384204refgcc -march=barcelona -O2 -fomit-frame-pointer2017020520170105
7384924refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
7391088refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
7395936refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
7396640refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
7401228refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020520170105
7421924refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
7426260refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020520170105
7442696refgcc -march=nocona -O2 -fomit-frame-pointer2017020520170105
7445468refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
7457128refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020520170105
7465380refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
7465724refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
7465880refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020520170105
7466324refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
7469144refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
11127296refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020520170105
11141072refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020520170105
11145440refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020520170105
11160904refgcc -march=barcelona -O -fomit-frame-pointer2017020520170105
11161800refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
11162836refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
11163932refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
11165540refgcc -march=nocona -O -fomit-frame-pointer2017020520170105
11177352refgcc -funroll-loops -O -fomit-frame-pointer2017020520170105
11183376refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
11196668refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
11197804refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020520170105
11199172refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020520170105
11204408refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
11209564refgcc -O -fomit-frame-pointer2017020520170105
11209948refgcc -m64 -O -fomit-frame-pointer2017020520170105
11210064refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
11213536refgcc -march=k8 -O -fomit-frame-pointer2017020520170105
11219784refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020520170105
11230004refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020520170105
11237688refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020520170105
11246624refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
11251068refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020520170105
11469984refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020520170105
13923872refcc2017020520170105
26072496refgcc2017020520170105
26079104refgcc -funroll-loops2017020520170105

Compiler output

Implementation: crypto_dh/nist521gs/ref
Compiler: cc
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: 7, namely:
CompilerImplementations
cc ref
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
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: 94, namely:
CompilerImplementations
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 -O3 -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 -O3 -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 -O3 -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: 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