Implementation notes: amd64, rumba5, crypto_dh/nist521gs

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20181216
Operation: crypto_dh
Primitive: nist521gs
TimeImplementationCompilerBenchmark dateSUPERCOP version
4766528refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018081920180818
4856608refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018081920180818
4859296refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018081920180818
4861888refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018081920180818
4862016refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018081920180818
4865216refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018081920180818
4889280refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018081920180818
4896032refgcc -m64 -Os -fomit-frame-pointer2018081920180818
4898688refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2018081920180818
4900544refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018081920180818
4905504refgcc -Os -fomit-frame-pointer2018081920180818
4905632refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018081920180818
4908288refgcc -march=k8 -Os -fomit-frame-pointer2018081920180818
4912512refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018081920180818
4912512refgcc -march=barcelona -Os -fomit-frame-pointer2018081920180818
4914144refgcc -funroll-loops -Os -fomit-frame-pointer2018081920180818
4915264refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018081920180818
4918144refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018081920180818
4922624refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018081920180818
4924448refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018081920180818
4924864refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018081920180818
4924896refgcc -march=nocona -Os -fomit-frame-pointer2018081920180818
4932800refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018081920180818
4933472refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018081920180818
4935936refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018081920180818
4943104refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018081920180818
4945056refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018081920180818
4951744refclang -O3 -fomit-frame-pointer -Qunused-arguments2018081920180818
4956480refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2018081920180818
4962976refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018081920180818
4967776refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018081920180818
4968832refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018081920180818
4969856refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018081920180818
4971840refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018081920180818
4974432refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018081920180818
4981536refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018081920180818
4986176refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2018081920180818
5090912refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018081920180818
5095136refgcc -march=barcelona -O3 -fomit-frame-pointer2018081920180818
5102496refgcc -march=k8 -O3 -fomit-frame-pointer2018081920180818
5105568refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018081920180818
5106848refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018081920180818
5114336refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018081920180818
5114976refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018081920180818
5116160refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018081920180818
5118144refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018081920180818
5120000refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018081920180818
5124480refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018081920180818
5126624refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018081920180818
5139072refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018081920180818
5143808refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018081920180818
5145632refgcc -O3 -fomit-frame-pointer2018081920180818
5148864refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018081920180818
5149824refgcc -m64 -O3 -fomit-frame-pointer2018081920180818
5150752refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018081920180818
5151040refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018081920180818
5154624refgcc -funroll-loops -O3 -fomit-frame-pointer2018081920180818
5156256refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018081920180818
5164800refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018081920180818
5167360refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018081920180818
5169664refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018081920180818
5175104refgcc -march=nocona -O3 -fomit-frame-pointer2018081920180818
5180288refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018081920180818
5212096refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018081920180818
5242464refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018081920180818
5246304refgcc -march=k8 -O2 -fomit-frame-pointer2018081920180818
5246720refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018081920180818
5248992refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018081920180818
5251232refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018081920180818
5252512refgcc -march=barcelona -O2 -fomit-frame-pointer2018081920180818
5253056refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018081920180818
5256576refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018081920180818
5259808refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018081920180818
5292480refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018081920180818
5295296refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018081920180818
5297056refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018081920180818
5299200refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018081920180818
5306560refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018081920180818
5306816refgcc -O2 -fomit-frame-pointer2018081920180818
5307360refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018081920180818
5313696refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018081920180818
5313696refgcc -march=nocona -O2 -fomit-frame-pointer2018081920180818
5314976refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018081920180818
5315680refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018081920180818
5318432refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018081920180818
5325984refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018081920180818
5327776refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018081920180818
5336416refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018081920180818
5448128refgcc -m64 -O2 -fomit-frame-pointer2018081920180818
5479872refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018081920180818
5489312refgcc -funroll-loops -O2 -fomit-frame-pointer2018081920180818
7846816refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018081920180818
7854816refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018081920180818
7856320refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018081920180818
7858528refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018081920180818
7859936refgcc -march=barcelona -O -fomit-frame-pointer2018081920180818
7865184refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018081920180818
7877664refgcc -m64 -march=k8 -O -fomit-frame-pointer2018081920180818
7919936refgcc -march=k8 -O -fomit-frame-pointer2018081920180818
7948640refgcc -fno-schedule-insns -O -fomit-frame-pointer2018081920180818
7949312refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018081920180818
7952672refgcc -m64 -O -fomit-frame-pointer2018081920180818
7959200refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018081920180818
7965856refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018081920180818
7970656refgcc -m64 -march=nocona -O -fomit-frame-pointer2018081920180818
7975168refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018081920180818
7976224refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018081920180818
7977088refgcc -march=nocona -O -fomit-frame-pointer2018081920180818
7981472refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018081920180818
7983648refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018081920180818
7988480refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018081920180818
7988992refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018081920180818
8001696refgcc -funroll-loops -O -fomit-frame-pointer2018081920180818
8034400refgcc -m64 -march=core2 -O -fomit-frame-pointer2018081920180818
8129152refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018081920180818
8132128refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018081920180818
8143072refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018081920180818
8196384refgcc -O -fomit-frame-pointer2018081920180818
17839136refgcc2018081920180818
17914176refcc2018081920180818
18001536refgcc -funroll-loops2018081920180818

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: 107, 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=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -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-avx -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -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: 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: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -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