Implementation notes: amd64, hydra3, crypto_dh/nist521gs

Computer: hydra3
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20171218
Operation: crypto_dh
Primitive: nist521gs
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6378575? ? ?? ? ?refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111720171020
6380067? ? ?? ? ?refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017111720171020
6824512? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111720171020
6826985? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017111720171020
6832741? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2017111720171020
6834861? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017111720171020
6835208? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017111720171020
6835786? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111720171020
6836239? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017111720171020
6836330? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017111720171020
6836839? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017111720171020
6836956? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017111720171020
6836994? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017111720171020
6849677? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017111720171020
6851474? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017111720171020
6855792? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2017111720171020
6856593? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017111720171020
6866605? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017111720171020
6867092? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017111720171020
6870225? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017111720171020
6870554? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017111720171020
6931292? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017111720171020
6939839? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017111720171020
6965234? ? ?? ? ?refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111720171020
6965588? ? ?? ? ?refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2017111720171020
6968300? ? ?? ? ?refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111720171020
6969745? ? ?? ? ?refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017111720171020
7082615? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111720171020
7085083? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017111720171020
7098988? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017111720171020
7101963? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017111720171020
7104988? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017111720171020
7108765? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111720171020
7111785? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017111720171020
7111963? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017111720171020
7114032? ? ?? ? ?refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017111720171020
7114279? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017111720171020
7114289? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017111720171020
7123746? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017111720171020
7124481? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017111720171020
7134626? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017111720171020
7139113? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111720171020
7142852? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017111720171020
7143900? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017111720171020
7144605? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2017111720171020
7145759? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2017111720171020
7147553? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017111720171020
7271671? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017111720171020
7272088? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111720171020
7281780? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017111720171020
7282822? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017111720171020
7288268? ? ?? ? ?refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017111720171020
7289385? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017111720171020
7290340? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017111720171020
7292411? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017111720171020
7293747? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017111720171020
7326791? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111720171020
7331481? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017111720171020
7332557? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017111720171020
7347034? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017111720171020
7347634? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017111720171020
7348420? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017111720171020
7367075? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017111720171020
7368056? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017111720171020
7368558? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017111720171020
7371073? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017111720171020
7445756? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111720171020
7449626? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017111720171020
7464371? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017111720171020
7466036? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017111720171020
7634594? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111720171020
7637431? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017111720171020
7651026? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017111720171020
7655843? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017111720171020
13516879? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017111720171020
13519683? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017111720171020
13526076? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017111720171020
13530107? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017111720171020
13531806? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017111720171020
13532404? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017111720171020
13532579? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111720171020
13532937? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017111720171020
13534909? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017111720171020
13619967? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017111720171020
13620976? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017111720171020
13640794? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017111720171020
13646784? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2017111720171020
13675915? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017111720171020
13677563? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017111720171020
13684765? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017111720171020
13692182? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2017111720171020
13695066? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017111720171020
13696348? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017111720171020
13701063? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017111720171020
13701671? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017111720171020
13702811? ? ?? ? ?refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017111720171020
13703663? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017111720171020
13889599? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017111720171020
25241967? ? ?? ? ?refgcc2017111720171020
25243692? ? ?? ? ?refcc2017111720171020
25403231? ? ?? ? ?refgcc_-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