Implementation notes: amd64, h4e350, crypto_hashblocks/sha512

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_hashblocks
Primitive: sha512
TimeImplementationCompilerBenchmark dateSUPERCOP version
28698inplacegcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
28698inplacegcc -funroll-loops -m64 -O -fomit-frame-pointer2014052720140525
28701inplacegcc -funroll-loops -O -fomit-frame-pointer2014052720140525
28704refgcc -m64 -O2 -fomit-frame-pointer2014052720140525
28707refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
28713refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
28725refgcc -O2 -fomit-frame-pointer2014052720140525
28731refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
28731refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052720140525
28731inplacegcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28731inplacegcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052720140525
28731inplacegcc -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28737refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
28737refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052720140525
28737refgcc -march=barcelona -O -fomit-frame-pointer2014052720140525
28740inplacegcc -O -fomit-frame-pointer2014052720140525
28740inplacegcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052720140525
28740inplacegcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052720140525
28740inplacegcc -m64 -march=corei7 -O -fomit-frame-pointer2014052720140525
28743refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
28746refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052720140525
28746refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
28749inplacegcc -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
28749inplacegcc -march=k8 -O2 -fomit-frame-pointer2014052720140525
28752inplacegcc -m64 -O -fomit-frame-pointer2014052720140525
28752inplacegcc -march=nocona -O -fomit-frame-pointer2014052720140525
28755refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
28755inplacegcc -march=nocona -O2 -fomit-frame-pointer2014052720140525
28758inplacegcc -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
28758inplacegcc -m64 -march=core2 -O -fomit-frame-pointer2014052720140525
28761inplacegcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052720140525
28761refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052720140525
28761inplacegcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
28764refgcc -march=k8 -O -fomit-frame-pointer2014052720140525
28773refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052720140525
28773inplacegcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052720140525
28776inplacegcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052720140525
28779inplacegcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
28785refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
28785inplacegcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
28785refgcc -m64 -O -fomit-frame-pointer2014052720140525
28785refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052720140525
28788refgcc -O -fomit-frame-pointer2014052720140525
28788refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052720140525
28791refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052720140525
28791refgcc -march=k8 -O2 -fomit-frame-pointer2014052720140525
28794refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
28797inplacegcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052720140525
28797refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052720140525
28797refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052720140525
28797refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
28803refgcc -march=nocona -O2 -fomit-frame-pointer2014052720140525
28809refgcc -funroll-loops -O -fomit-frame-pointer2014052720140525
28809refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
28809refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052720140525
28812inplacegcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052720140525
28812inplacegcc -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
28812inplacegcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
28812inplacegcc -march=k8 -O -fomit-frame-pointer2014052720140525
28815inplacegcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
28815inplacegcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052720140525
28815inplacegcc -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
28815refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052720140525
28815refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
28815inplacegcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052720140525
28818refgcc -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28818refgcc -march=nocona -Os -fomit-frame-pointer2014052720140525
28821refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052720140525
28821refgcc -march=nocona -O -fomit-frame-pointer2014052720140525
28824refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
28824refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052720140525
28830inplacegcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
28830refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052720140525
28830inplacegcc -march=barcelona -O -fomit-frame-pointer2014052720140525
28833inplacegcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
28833refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
28833refgcc -m64 -Os -fomit-frame-pointer2014052720140525
28833refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
28836refgcc -Os -fomit-frame-pointer2014052720140525
28839refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052720140525
28842refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
28845refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052720140525
28845refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
28848inplacegcc -m64 -O2 -fomit-frame-pointer2014052720140525
28848inplacegcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052720140525
28848refgcc -march=k8 -Os -fomit-frame-pointer2014052720140525
28854refgcc -march=barcelona -Os -fomit-frame-pointer2014052720140525
28857refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052720140525
28860refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052720140525
28866refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28878refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052720140525
28890inplacegcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052720140525
28893refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052720140525
28902inplacegcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
28902inplacegcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28902inplacegcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052720140525
28926inplacegcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
28929inplacegcc -O2 -fomit-frame-pointer2014052720140525
28935refgcc -funroll-loops -Os -fomit-frame-pointer2014052720140525
28935refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
28935refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052720140525
28935refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
28950refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052720140525
28950refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052720140525
28953refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
28956refgcc -funroll-loops -O2 -fomit-frame-pointer2014052720140525
28956refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
28968inplacegcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052720140525
28971inplacegcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
28989refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052720140525
29013inplacegcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052720140525
29025inplacegcc -funroll-loops -O2 -fomit-frame-pointer2014052720140525
29025inplacegcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
29025inplacegcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052720140525
29025inplacegcc -m64 -march=core2 -Os -fomit-frame-pointer2014052720140525
29034inplacegcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052720140525
29058inplacegcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052720140525
29073inplacegcc -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
29085inplacegcc -march=nocona -Os -fomit-frame-pointer2014052720140525
29088inplacegcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
29094inplacegcc -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
29094inplacegcc -m64 -Os -fomit-frame-pointer2014052720140525
29094inplacegcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052720140525
29097inplacegcc -Os -fomit-frame-pointer2014052720140525
29097inplacegcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
29097inplacegcc -march=barcelona -Os -fomit-frame-pointer2014052720140525
29097inplacegcc -march=k8 -Os -fomit-frame-pointer2014052720140525
29100refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052720140525
29100refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052720140525
29100inplacegcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052720140525
29115refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
29115refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
29115inplacegcc -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
29220refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052720140525
29223inplacegcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
29223inplacegcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
29223inplacegcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
29223inplacegcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052720140525
29238inplacegcc -funroll-loops -Os -fomit-frame-pointer2014052720140525
29238inplacegcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052720140525
29241refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
29244inplacegcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052720140525
29250refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
29250refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052720140525
29301inplacegcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052720140525
29316refgcc -funroll-loops -O3 -fomit-frame-pointer2014052720140525
29325inplacegcc -m64 -O3 -fomit-frame-pointer2014052720140525
29328inplacegcc -funroll-loops -O3 -fomit-frame-pointer2014052720140525
29328inplacegcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
29340inplacegcc -O3 -fomit-frame-pointer2014052720140525
29343inplacegcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
29475inplacegcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
29475inplacegcc -march=nocona -O3 -fomit-frame-pointer2014052720140525
29538refgcc -O3 -fomit-frame-pointer2014052720140525
29538refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
29574refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052720140525
29601refgcc -m64 -O3 -fomit-frame-pointer2014052720140525
29619inplacegcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052720140525
29697refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
29697refgcc -march=nocona -O3 -fomit-frame-pointer2014052720140525
30171refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
30177refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052720140525
30231refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30249refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30270inplacegcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052720140525
30273inplacegcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30273inplacegcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
30273inplacegcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30423inplacegcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052720140525
30426inplacegcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30426inplacegcc -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30429inplacegcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
30432inplacegcc -march=k8 -O3 -fomit-frame-pointer2014052720140525
30639refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30639refgcc -march=barcelona -O3 -fomit-frame-pointer2014052720140525
30648refgcc -march=k8 -O3 -fomit-frame-pointer2014052720140525
30651refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
30690refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052720140525
33336refclang -O3 -fomit-frame-pointer2014071220140622
33339inplaceclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
33339refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
33339refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
33339refclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
33369inplaceclang -O3 -fomit-frame-pointer2014071220140622
33381refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
33399inplaceclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
33411inplaceclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
33435inplaceclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
48588inplacegcc2014052720140525
48597inplacecc2014052720140525
48597inplacegcc -funroll-loops2014052720140525
63567refgcc -funroll-loops2014052720140525
63579refgcc2014052720140525
63582refcc2014052720140525

Compiler output

Implementation: crypto_hashblocks/sha512/inplace
Compiler: clang -O3 -fomit-frame-pointer
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 inplace ref

Compiler output

Implementation: crypto_hashblocks/sha512/inplace
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
blocks.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
blocks.c: clang: warning: argument unused during compilation: '-mavx2'
blocks.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: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer inplace ref

Compiler output

Implementation: crypto_hashblocks/sha512/inplace
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
blocks.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
blocks.c: clang: warning: argument unused during compilation: '-mavx2'
blocks.c: clang: warning: argument unused during compilation: '-mpclmul'
blocks.c: clang: warning: argument unused during compilation: '-fpolly'
blocks.c: clang: warning: argument unused during compilation: '-fvectorize'
blocks.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
blocks.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: 2, 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 inplace ref

Compiler output

Implementation: crypto_hashblocks/sha512/inplace
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
blocks.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: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer inplace ref

Compiler output

Implementation: crypto_hashblocks/sha512/inplace
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
blocks.c: clang: warning: argument unused during compilation: '-mavx2'
blocks.c: clang: warning: argument unused during compilation: '-fpolly'
blocks.c: clang: warning: argument unused during compilation: '-fvectorize'
blocks.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
blocks.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: 2, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer inplace ref