Implementation notes: amd64, glyme, crypto_dh/ed521gs

Computer: glyme
Architecture: amd64
CPU ID: GenuineIntel-00020652-bfebfbff
SUPERCOP version: 201720170105
Operation: crypto_dh
Primitive: ed521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
5940556refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020520170105
5947936refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020520170105
5977472refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020520170105
5977588refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020520170105
5978632refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020520170105
5986496refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
5986664refgcc -m64 -O3 -fomit-frame-pointer2017020520170105
5990196refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020520170105
6008656refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020520170105
6009076refgcc -O3 -fomit-frame-pointer2017020520170105
6010316refgcc -funroll-loops -O3 -fomit-frame-pointer2017020520170105
6018028refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020520170105
6025412refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020520170105
6027372refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020520170105
6027380refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
6030892refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
6032368refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
6032568refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
6034860refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
6036080refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020520170105
6036216refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020520170105
6037016refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020520170105
6043272refgcc -march=nocona -O3 -fomit-frame-pointer2017020520170105
6046488refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
6050956refgcc -march=barcelona -O3 -fomit-frame-pointer2017020520170105
6051868refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020520170105
6059604refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020520170105
6068236refgcc -march=k8 -O3 -fomit-frame-pointer2017020520170105
6069052refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020520170105
6072876refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020520170105
6086984refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020520170105
6088196refgcc -Os -fomit-frame-pointer2017020520170105
6090764refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
6091012refgcc -m64 -Os -fomit-frame-pointer2017020520170105
6093036refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020520170105
6093544refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020520170105
6094140refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020520170105
6094980refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
6095008refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020520170105
6096324refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020520170105
6096644refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020520170105
6121356refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020520170105
6121616refgcc -march=nocona -Os -fomit-frame-pointer2017020520170105
6121828refgcc -march=barcelona -Os -fomit-frame-pointer2017020520170105
6129092refgcc -march=k8 -Os -fomit-frame-pointer2017020520170105
6129120refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
6134084refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
6144672refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020520170105
6144800refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020520170105
6166360refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020520170105
6168592refgcc -funroll-loops -Os -fomit-frame-pointer2017020520170105
6168628refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020520170105
6171156refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020520170105
6171952refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020520170105
6219232refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
6219932refgcc -march=barcelona -O2 -fomit-frame-pointer2017020520170105
6232796refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
6233396refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020520170105
6249796refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020520170105
6250116refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020520170105
6253052refgcc -march=k8 -O2 -fomit-frame-pointer2017020520170105
6270028refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020520170105
6270308refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020520170105
6278116refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020520170105
6278176refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020520170105
6278508refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020520170105
6279028refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020520170105
6286832refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020520170105
6322524refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
6322672refgcc -funroll-loops -O2 -fomit-frame-pointer2017020520170105
6322764refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020520170105
6347148refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020520170105
6347756refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
6347792refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020520170105
6348960refgcc -m64 -O2 -fomit-frame-pointer2017020520170105
6350676refgcc -O2 -fomit-frame-pointer2017020520170105
6376040refgcc -march=nocona -O2 -fomit-frame-pointer2017020520170105
6376792refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020520170105
9358556refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
9359092refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020520170105
9386164refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020520170105
9391652refgcc -march=barcelona -O -fomit-frame-pointer2017020520170105
9404520refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020520170105
9404712refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
9426360refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020520170105
9426624refgcc -march=k8 -O -fomit-frame-pointer2017020520170105
9446092refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
9446140refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020520170105
9476608refgcc -march=nocona -O -fomit-frame-pointer2017020520170105
9477664refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020520170105
9517404refgcc -funroll-loops -O -fomit-frame-pointer2017020520170105
9517456refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020520170105
9517492refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
9555764refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020520170105
9556200refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020520170105
9556376refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020520170105
9556684refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020520170105
9568652refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020520170105
9582104refgcc -m64 -O -fomit-frame-pointer2017020520170105
9586800refgcc -O -fomit-frame-pointer2017020520170105
9587076refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020520170105
9599176refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020520170105
11717896refcc2017020520170105
22019332refgcc -funroll-loops2017020520170105
22060296refgcc2017020520170105

Compiler output

Implementation: crypto_dh/ed521gs/ref
Compiler: cc
dh.c: dh.c:771: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/ed521gs/ref
Compiler: gcc
dh.c: dh.c: In function 'crypto_dh_ed521gs_ref_keypair':
dh.c: dh.c:771: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/ed521gs/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
dh.c: dh.c: In function 'crypto_dh_ed521gs_ref_keypair':
dh.c: dh.c:771: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_ed521gs_ref_keypair':
dh.c: dh.c:771: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