Implementation notes: amd64, hydra2, crypto_dh/surf127eps

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_dh
Primitive: surf127eps
TimeImplementationCompilerBenchmark dateSUPERCOP version
1527300mpfqclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
1528988mpfqclang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
1528992mpfqclang -O3 -fwrapv -march=native -fomit-frame-pointer2014101420141014
1529292mpfqclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
1530120mpfqclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014101420141014
1530172mpfqclang -O3 -fomit-frame-pointer2014101420141014
1535104mpfqclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
1542344mpfqgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014101420141014
1545812mpfqgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014101420141014
1548904mpfqgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014101420141014
1549956mpfqgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014101420141014
1553176mpfqgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014101420141014
1554232mpfqgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014101420141014
1555696mpfqgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014101420141014
1556836mpfqgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014101420141014
1559604mpfqgcc -march=nocona -O3 -fomit-frame-pointer2014101420141014
1560516mpfqgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014101420141014
1561040mpfqgcc -funroll-loops -O3 -fomit-frame-pointer2014101420141014
1561048mpfqgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014101420141014
1561844mpfqgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014101420141014
1563428mpfqgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014101420141014
1563436mpfqgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014101420141014
1564324mpfqgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014101420141014
1564552mpfqgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014101420141014
1564944mpfqgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014101420141014
1564992mpfqgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014101420141014
1565164mpfqgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014101420141014
1566304mpfqgcc -march=barcelona -O3 -fomit-frame-pointer2014101420141014
1567020mpfqgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014101420141014
1567092mpfqgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014101420141014
1568240mpfqgcc -march=k8 -O3 -fomit-frame-pointer2014101420141014
1569512mpfqgcc -march=barcelona -O2 -fomit-frame-pointer2014101420141014
1570144mpfqgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014101420141014
1571772mpfqgcc -march=nocona -O2 -fomit-frame-pointer2014101420141014
1572024mpfqgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014101420141014
1572316mpfqgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014101420141014
1575160mpfqgcc -m64 -O2 -fomit-frame-pointer2014101420141014
1575956mpfqgcc -funroll-loops -m64 -O -fomit-frame-pointer2014101420141014
1576584mpfqgcc -funroll-loops -O2 -fomit-frame-pointer2014101420141014
1577788mpfqgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014101420141014
1577832mpfqgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014101420141014
1577868mpfqgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014101420141014
1577940mpfqgcc -O3 -fomit-frame-pointer2014101420141014
1578020mpfqgcc -O2 -fomit-frame-pointer2014101420141014
1579080mpfqgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014101420141014
1579348mpfqgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014101420141014
1579508mpfqgcc -march=k8 -O2 -fomit-frame-pointer2014101420141014
1579960mpfqgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014101420141014
1580100mpfqgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014101420141014
1580476mpfqgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014101420141014
1580600mpfqgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014101420141014
1580836mpfqgcc -funroll-loops -O -fomit-frame-pointer2014101420141014
1581288mpfqgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014101420141014
1581684mpfqgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014101420141014
1582016mpfqgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014101420141014
1584116mpfqgcc -m64 -O3 -fomit-frame-pointer2014101420141014
1585432mpfqgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014101420141014
1586308mpfqgcc -O -fomit-frame-pointer2014101420141014
1586624mpfqgcc -m64 -march=corei7 -O -fomit-frame-pointer2014101420141014
1586840mpfqgcc -m64 -march=k8 -O -fomit-frame-pointer2014101420141014
1586892mpfqgcc -m64 -O -fomit-frame-pointer2014101420141014
1587312mpfqgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014101420141014
1587448mpfqgcc -fno-schedule-insns -O -fomit-frame-pointer2014101420141014
1587692mpfqgcc -m64 -march=core2 -O -fomit-frame-pointer2014101420141014
1587992mpfqgcc -m64 -march=barcelona -O -fomit-frame-pointer2014101420141014
1589872mpfqgcc -march=k8 -O -fomit-frame-pointer2014101420141014
1590508mpfqgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014101420141014
1591492mpfqgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014101420141014
1591992mpfqgcc -m64 -march=nocona -O -fomit-frame-pointer2014101420141014
1592072mpfqgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014101420141014
1593160mpfqgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014101420141014
1593624mpfqgcc -march=barcelona -O -fomit-frame-pointer2014101420141014
1593848mpfqgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014101420141014
1593852mpfqgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014101420141014
1594276mpfqgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014101420141014
1595008mpfqgcc -march=nocona -O -fomit-frame-pointer2014101420141014
1746128mpfqgcc -m64 -Os -fomit-frame-pointer2014101420141014
1746480mpfqgcc -fno-schedule-insns -Os -fomit-frame-pointer2014101420141014
1747720mpfqgcc -march=k8 -Os -fomit-frame-pointer2014101420141014
1749896mpfqgcc -Os -fomit-frame-pointer2014101420141014
1751908mpfqgcc -funroll-loops -Os -fomit-frame-pointer2014101420141014
1752864mpfqgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014101420141014
1752880mpfqgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014101420141014
1753496mpfqgcc -m64 -march=k8 -Os -fomit-frame-pointer2014101420141014
1753584mpfqgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014101420141014
1753832mpfqgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014101420141014
1754672mpfqgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014101420141014
1754724mpfqgcc -m64 -march=core2 -Os -fomit-frame-pointer2014101420141014
1755220mpfqgcc -m64 -march=nocona -Os -fomit-frame-pointer2014101420141014
1755516mpfqgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014101420141014
1756004mpfqgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014101420141014
1757232mpfqgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014101420141014
1757364mpfqgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014101420141014
1757508mpfqgcc -march=nocona -Os -fomit-frame-pointer2014101420141014
1760224mpfqgcc -march=barcelona -Os -fomit-frame-pointer2014101420141014
1760660mpfqgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014101420141014
1761664mpfqgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014101420141014
1762296mpfqgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014101420141014
1770848mpfqgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014101420141014

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: cc
surf127eps.c: In file included from mpfq_p_127_735.h:5:0,
surf127eps.c: from surf127eps.c:18:
surf127eps.c: x86_64/mpfq_p_127_735.h: In function 'mpfq_p_127_735_hadamard':
surf127eps.c: x86_64/mpfq_p_127_735.h:360:3: error: can't find a register in class 'GENERAL_REGS' while reloading 'asm'
surf127eps.c: x86_64/mpfq_p_127_735.h:360:3: error: 'asm' operand has impossible constraints

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
cc mpfq
gcc mpfq
gcc -funroll-loops mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fomit-frame-pointer
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer mpfq
clang -O3 -fwrapv -march=native -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
keysharing.c: clang: warning: argument unused during compilation: '-fpolly'
keysharing.c: clang: warning: argument unused during compilation: '-fvectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fpolly'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fvectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: clang: warning: argument unused during compilation: '-fpolly'
surf127eps.c: clang: warning: argument unused during compilation: '-fvectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
keysharing.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keysharing.c: clang: warning: argument unused during compilation: '-mavx2'
keysharing.c: clang: warning: argument unused during compilation: '-mpclmul'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mavx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mpclmul'
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
surf127eps.c: clang: warning: argument unused during compilation: '-mavx2'
surf127eps.c: clang: warning: argument unused during compilation: '-mpclmul'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
keysharing.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
keysharing.c: clang: warning: argument unused during compilation: '-mavx2'
keysharing.c: clang: warning: argument unused during compilation: '-mpclmul'
keysharing.c: clang: warning: argument unused during compilation: '-fpolly'
keysharing.c: clang: warning: argument unused during compilation: '-fvectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mavx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mpclmul'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fpolly'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fvectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
surf127eps.c: clang: warning: argument unused during compilation: '-mavx2'
surf127eps.c: clang: warning: argument unused during compilation: '-mpclmul'
surf127eps.c: clang: warning: argument unused during compilation: '-fpolly'
surf127eps.c: clang: warning: argument unused during compilation: '-fvectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
keysharing.c: clang: warning: argument unused during compilation: '-mavx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mavx2'
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: clang: warning: argument unused during compilation: '-mavx2'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer mpfq

Compiler output

Implementation: crypto_dh/surf127eps/mpfq
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
keysharing.c: clang: warning: argument unused during compilation: '-mavx2'
keysharing.c: clang: warning: argument unused during compilation: '-fpolly'
keysharing.c: clang: warning: argument unused during compilation: '-fvectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
keysharing.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-mavx2'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fpolly'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fvectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
mpfq_p_127_735.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
mpfq_p_127_735.c: In file included from mpfq_p_127_735.c:5:
mpfq_p_127_735.c: ./x86_64/mpfq_p_127_735.c:111:1: warning: control reaches end of non-void function [-Wreturn-type]
mpfq_p_127_735.c: }
mpfq_p_127_735.c: ^
mpfq_p_127_735.c: 1 warning generated.
surf127eps.c: clang: warning: argument unused during compilation: '-mavx2'
surf127eps.c: clang: warning: argument unused during compilation: '-fpolly'
surf127eps.c: clang: warning: argument unused during compilation: '-fvectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
surf127eps.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.
try.c: try-anything.c:110:19: warning: if statement has empty body [-Wempty-body]
try.c: ;
try.c: ^
try.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer mpfq