Implementation notes: amd64, mace, crypto_dh/ed521gs

Computer: mace
Architecture: amd64
CPU ID: AuthenticAMD-00040fb2-178bfbff
SUPERCOP version: 20170105
Operation: crypto_dh
Primitive: ed521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
6514332refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111720161009
6533691refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016111720161009
6622617refgcc -march=k8 -Os -fomit-frame-pointer2016111720161009
6622909refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016111720161009
6623395refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016111720161009
6651566refgcc -march=barcelona -Os -fomit-frame-pointer2016111720161009
6651635refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016111720161009
6673732refgcc -Os -fomit-frame-pointer2016111720161009
6674201refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016111720161009
6674461refgcc -m64 -Os -fomit-frame-pointer2016111720161009
6680515refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016111720161009
6680554refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016111720161009
6680628refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016111720161009
6681894refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016111720161009
6717779refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016111720161009
6720503refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016111720161009
6720623refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016111720161009
6725321refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016111720161009
6743021refgcc -funroll-loops -Os -fomit-frame-pointer2016111720161009
6750423refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016111720161009
6751031refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016111720161009
6784720refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016111720161009
6785455refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016111720161009
6785684refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016111720161009
6833454refgcc -funroll-loops -O3 -fomit-frame-pointer2016111720161009
6836699refgcc -m64 -O3 -fomit-frame-pointer2016111720161009
6836708refgcc -O3 -fomit-frame-pointer2016111720161009
6836843refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016111720161009
6889884refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016111720161009
6890147refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016111720161009
6892934refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016111720161009
6892990refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016111720161009
6903324refgcc -march=barcelona -O3 -fomit-frame-pointer2016111720161009
6903691refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016111720161009
6940075refgcc -march=k8 -O3 -fomit-frame-pointer2016111720161009
6956021refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016111720161009
6956555refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016111720161009
6957486refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016111720161009
6959434refgcc -march=nocona -Os -fomit-frame-pointer2016111720161009
6992245refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016111720161009
7072154refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111720161009
7072196refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111720161009
7072361refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016111720161009
7072707refclang -O3 -fomit-frame-pointer -Qunused-arguments2016111720161009
7078378refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016111720161009
7080224refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016111720161009
7100565refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016111720161009
7115674refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016111720161009
7116517refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016111720161009
7143579refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016111720161009
7150669refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016111720161009
7153035refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016111720161009
7153154refgcc -funroll-loops -O2 -fomit-frame-pointer2016111720161009
7153601refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016111720161009
7154762refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016111720161009
7159530refgcc -march=nocona -O3 -fomit-frame-pointer2016111720161009
7161136refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016111720161009
7197302refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016111720161009
7210707refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016111720161009
7210800refgcc -m64 -O2 -fomit-frame-pointer2016111720161009
7212056refgcc -O2 -fomit-frame-pointer2016111720161009
7234378refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016111720161009
7234900refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016111720161009
7296226refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016111720161009
7296414refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016111720161009
7343426refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016111720161009
7343545refgcc -march=k8 -O2 -fomit-frame-pointer2016111720161009
7364620refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016111720161009
7447005refgcc -march=barcelona -O2 -fomit-frame-pointer2016111720161009
7471788refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016111720161009
7559447refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016111720161009
7559618refgcc -march=nocona -O2 -fomit-frame-pointer2016111720161009
7580907refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016111720161009
7606429refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016111720161009
12833913refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016111720161009
12898289refgcc -m64 -O -fomit-frame-pointer2016111720161009
12907256refgcc -O -fomit-frame-pointer2016111720161009
12907577refgcc -fno-schedule-insns -O -fomit-frame-pointer2016111720161009
12935729refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016111720161009
12942594refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016111720161009
12950937refgcc -funroll-loops -O -fomit-frame-pointer2016111720161009
12951366refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016111720161009
12961475refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016111720161009
12962162refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016111720161009
12982817refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016111720161009
12983249refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016111720161009
12984042refgcc -m64 -march=core2 -O -fomit-frame-pointer2016111720161009
12999515refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016111720161009
13010304refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016111720161009
13014902refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016111720161009
13017513refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016111720161009
13027475refgcc -march=barcelona -O -fomit-frame-pointer2016111720161009
13030826refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016111720161009
13039513refgcc -march=nocona -O -fomit-frame-pointer2016111720161009
13076930refgcc -m64 -march=nocona -O -fomit-frame-pointer2016111720161009
13182208refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016111720161009
13190988refgcc -march=k8 -O -fomit-frame-pointer2016111720161009
13205997refgcc -m64 -march=k8 -O -fomit-frame-pointer2016111720161009
27911520refgcc -funroll-loops2016111720161009
27924019refgcc2016111720161009
27924397refcc2016111720161009

Test failure

Implementation: crypto_dh/ed521gs/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/ed521gs/ref
Compiler: cc
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: 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/ed521gs/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
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: 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/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