Implementation notes: amd64, h4e350, crypto_hashblocks/sha256

Computer: h4e350
Architecture: amd64
CPU ID: AuthenticAMD-00500f10-178bfbff
SUPERCOP version: 20141014
Operation: crypto_hashblocks
Primitive: sha256
TimeImplementationCompilerBenchmark dateSUPERCOP version
41520refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
41520refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052720140525
41526refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052720140525
41538refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
41646inplacegcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052720140525
41646inplacegcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052720140525
41649inplacegcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052720140525
41652inplacegcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052720140525
41655inplacegcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052720140525
41655inplacegcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052720140525
41661inplacegcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
41679inplacegcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
41679refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
41700inplacegcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052720140525
41709inplacegcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
41709inplacegcc -march=nocona -O2 -fomit-frame-pointer2014052720140525
41712inplacegcc -march=nocona -O3 -fomit-frame-pointer2014052720140525
41721inplacegcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052720140525
41730refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052720140525
41736refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
41736refgcc -march=k8 -O2 -fomit-frame-pointer2014052720140525
41763refgcc -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41769refgcc -march=nocona -O2 -fomit-frame-pointer2014052720140525
41772refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052720140525
41772refgcc -march=nocona -O3 -fomit-frame-pointer2014052720140525
41775refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052720140525
41778refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052720140525
41781inplacegcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41781inplacegcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052720140525
41787inplacegcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052720140525
41790inplacegcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
41790refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052720140525
41790refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052720140525
41790inplacegcc -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41799inplacegcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
41799inplacegcc -march=k8 -O2 -fomit-frame-pointer2014052720140525
41802refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41811refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41811refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052720140525
41811refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41811refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052720140525
41817refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052720140525
41880inplacegcc -O2 -fomit-frame-pointer2014052720140525
41880refgcc -funroll-loops -O2 -fomit-frame-pointer2014052720140525
41880refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
41880refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052720140525
41880refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052720140525
41892inplacegcc -O3 -fomit-frame-pointer2014052720140525
41898inplacegcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41898inplacegcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052720140525
41913inplacegcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
41916inplacegcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
41916inplacegcc -m64 -O2 -fomit-frame-pointer2014052720140525
41931refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
41934refgcc -funroll-loops -O3 -fomit-frame-pointer2014052720140525
41943inplacegcc -m64 -O3 -fomit-frame-pointer2014052720140525
42012inplacegcc -funroll-loops -O2 -fomit-frame-pointer2014052720140525
42012inplacegcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
42012inplacegcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052720140525
42015inplacegcc -funroll-loops -O3 -fomit-frame-pointer2014052720140525
42015inplacegcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
42039refgcc -m64 -O3 -fomit-frame-pointer2014052720140525
42042refgcc -O3 -fomit-frame-pointer2014052720140525
42042refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052720140525
42057refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052720140525
42063inplacegcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052720140525
42072refgcc -m64 -O2 -fomit-frame-pointer2014052720140525
42075refgcc -O2 -fomit-frame-pointer2014052720140525
42633inplacegcc -funroll-loops -O -fomit-frame-pointer2014052720140525
42633inplacegcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
42636inplacegcc -funroll-loops -m64 -O -fomit-frame-pointer2014052720140525
42678refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052720140525
42681refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052720140525
42681refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052720140525
42681refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052720140525
42681inplacegcc -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
42687inplacegcc -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
42687inplacegcc -m64 -march=core2 -O -fomit-frame-pointer2014052720140525
42687inplacegcc -m64 -march=corei7 -O -fomit-frame-pointer2014052720140525
42690inplacegcc -march=nocona -O -fomit-frame-pointer2014052720140525
42699inplacegcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052720140525
42699inplacegcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052720140525
42714inplacegcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052720140525
42714inplacegcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052720140525
42717inplacegcc -O -fomit-frame-pointer2014052720140525
42720inplacegcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052720140525
42723inplacegcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
42723refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052720140525
42723inplacegcc -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
42729inplacegcc -m64 -march=core2 -Os -fomit-frame-pointer2014052720140525
42729inplacegcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052720140525
42729refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052720140525
42729refgcc -march=k8 -O -fomit-frame-pointer2014052720140525
42732inplacegcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
42732refgcc -march=barcelona -O -fomit-frame-pointer2014052720140525
42738inplacegcc -m64 -O -fomit-frame-pointer2014052720140525
42744inplacegcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052720140525
42750inplacegcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
42750refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
42753inplacegcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
42753inplacegcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052720140525
42753refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052720140525
42753inplacegcc -march=nocona -Os -fomit-frame-pointer2014052720140525
42756refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
42756refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052720140525
42759refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
42762refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
42780refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
42780refgcc -march=nocona -Os -fomit-frame-pointer2014052720140525
42783refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
42786inplacegcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052720140525
42786refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052720140525
42795inplacegcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
42795inplacegcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052720140525
42801inplacegcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
42804inplacegcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052720140525
42807refgcc -O -fomit-frame-pointer2014052720140525
42807refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052720140525
42810refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052720140525
42813refgcc -funroll-loops -O -fomit-frame-pointer2014052720140525
42819refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
42831refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052720140525
42834refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052720140525
42834refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052720140525
42840refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052720140525
42840refgcc -m64 -O -fomit-frame-pointer2014052720140525
42840refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052720140525
42846refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052720140525
42846inplacegcc -m64 -march=barcelona -O -fomit-frame-pointer2014052720140525
42846inplacegcc -m64 -march=k8 -O -fomit-frame-pointer2014052720140525
42846inplacegcc -march=barcelona -O -fomit-frame-pointer2014052720140525
42846inplacegcc -march=k8 -O -fomit-frame-pointer2014052720140525
42867refgcc -march=nocona -O -fomit-frame-pointer2014052720140525
42873inplacegcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052720140525
42900inplacegcc -m64 -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -funroll-loops -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
42915inplacegcc -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
42936refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
42939refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
42942refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
42942inplacegcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
42942inplacegcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052720140525
42942refgcc -m64 -Os -fomit-frame-pointer2014052720140525
42942refgcc -march=barcelona -Os -fomit-frame-pointer2014052720140525
42942refgcc -march=k8 -Os -fomit-frame-pointer2014052720140525
42945inplacegcc -march=barcelona -Os -fomit-frame-pointer2014052720140525
42948inplacegcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
42948refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052720140525
42948inplacegcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052720140525
42954inplacegcc -march=k8 -Os -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -Os -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052720140525
42963refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052720140525
42975refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052720140525
42975refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052720140525
42978refgcc -Os -fomit-frame-pointer2014052720140525
42981refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052720140525
42993refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052720140525
42999refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052720140525
43119refgcc -march=barcelona -O3 -fomit-frame-pointer2014052720140525
43134refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
43140refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
43146refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052720140525
43173inplacegcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052720140525
43221refgcc -march=k8 -O3 -fomit-frame-pointer2014052720140525
43260inplacegcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052720140525
43260inplacegcc -march=barcelona -O3 -fomit-frame-pointer2014052720140525
43263inplacegcc -march=k8 -O3 -fomit-frame-pointer2014052720140525
43266inplacegcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052720140525
47805inplaceclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
47808inplaceclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
47808inplaceclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
47814inplaceclang -O3 -fomit-frame-pointer2014071220140622
47817inplaceclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
48513refclang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014071220140622
48516refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer2014101420141014
48516refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer2014071220140622
48540refclang -O3 -fomit-frame-pointer2014071220140622
48543refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer2014101420141014
72102inplacecc2014052720140525
72120inplacegcc -funroll-loops2014052720140525
72162inplacegcc2014052720140525
78570refcc2014052720140525
78576refgcc2014052720140525
78696refgcc -funroll-loops2014052720140525

Compiler output

Implementation: crypto_hashblocks/sha256/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/sha256/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/sha256/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/sha256/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/sha256/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