Implementation notes: amd64, cryptothinkx, crypto_hash/md6d224

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: md6d224
TimeImplementationCompilerBenchmark dateSUPERCOP version
25512refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017020120170105
26043refgcc -funroll-loops -O2 -fomit-frame-pointer2017020120170105
26097refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
26100refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020120170105
26106refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020120170105
26256refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020120170105
26334refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020120170105
26379refgcc -march=k8 -O2 -fomit-frame-pointer2017020120170105
26409refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020120170105
26415refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020120170105
26658refgcc -march=barcelona -O2 -fomit-frame-pointer2017020120170105
26682refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020120170105
26769refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
27036refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
27102refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
27132refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
27225refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020120170105
27291refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020120170105
27342refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
27351refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017020120170105
27570refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
27588refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020120170105
27594refgcc -march=k8 -Os -fomit-frame-pointer2017020120170105
27642refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017020120170105
27933refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020120170105
27981refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
28041refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020120170105
28050refgcc -Os -fomit-frame-pointer2017020120170105
28107refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
28221refgcc -march=barcelona -Os -fomit-frame-pointer2017020120170105
28239refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020120170105
28254refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020120170105
28272refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020120170105
28284refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020120170105
28293refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
28332refgcc -funroll-loops -Os -fomit-frame-pointer2017020120170105
28347refgcc -march=nocona -O2 -fomit-frame-pointer2017020120170105
28386refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017020120170105
28398refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020120170105
28446refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
28461refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
28461refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017020120170105
28488refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
28500refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017020120170105
28506refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
28518refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020120170105
28731refgcc -O2 -fomit-frame-pointer2017020120170105
29043refgcc -m64 -Os -fomit-frame-pointer2017020120170105
29073refgcc -march=nocona -Os -fomit-frame-pointer2017020120170105
29460refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020120170105
29840refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
29852refgcc -m64 -O2 -fomit-frame-pointer2017020120170105
30309refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
30348refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
31260refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
33774refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020120170105
33861refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
33960refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017020120170105
34164refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
34167refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
34194refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
34344refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
34368refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020120170105
34572refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020120170105
35775refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020120170105
36477refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017020120170105
36528refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020120170105
36828refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017020120170105
36831refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020120170105
36846refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020120170105
36870refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017020120170105
36876refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020120170105
37215refgcc -march=k8 -O -fomit-frame-pointer2017020120170105
37314refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
37374refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
37500refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
37602refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
37683refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
37878refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
37938refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020120170105
38007refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020120170105
38094refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020120170105
38100refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020120170105
38106refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
38115refgcc -funroll-loops -O -fomit-frame-pointer2017020120170105
38253refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
38322refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020120170105
38505refgcc -march=nocona -O -fomit-frame-pointer2017020120170105
38994refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020120170105
39436refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017020120170105
40008refgcc -march=barcelona -O -fomit-frame-pointer2017020120170105
40599refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020120170105
40761refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
41469refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020120170105
41574refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
41676refgcc -funroll-loops -O3 -fomit-frame-pointer2017020120170105
41865refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
41916refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017020120170105
41928refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017020120170105
41952refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020120170105
41979refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020120170105
42009refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020120170105
42015refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017020120170105
42045refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020120170105
42096refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020120170105
42342refgcc -m64 -O3 -fomit-frame-pointer2017020120170105
42378refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
42402refgcc -O3 -fomit-frame-pointer2017020120170105
42582refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
42645refgcc -march=nocona -O3 -fomit-frame-pointer2017020120170105
42728refgcc -O -fomit-frame-pointer2017020120170105
42744refgcc -m64 -O -fomit-frame-pointer2017020120170105
42824refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
43377refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
44391refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020120170105
44454refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
44541refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020120170105
44619refgcc -march=k8 -O3 -fomit-frame-pointer2017020120170105
44658refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
44688refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
44757refgcc -march=barcelona -O3 -fomit-frame-pointer2017020120170105
48054refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
145944refgcc -funroll-loops2017020120170105
156387refcc2017020120170105
167712refgcc2017020120170105

Compiler output

Implementation: crypto_hash/md6d224/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
md6_compress.c: md6_compress.c:424:11: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
md6_compress.c: if ( (C == NULL) ) return MD6_NULL_C;
md6_compress.c: ~~^~~~~~~
md6_compress.c: md6_compress.c:424:11: note: remove extraneous parentheses around the comparison to silence this warning
md6_compress.c: if ( (C == NULL) ) return MD6_NULL_C;
md6_compress.c: ~ ^ ~
md6_compress.c: md6_compress.c:424:11: note: use '=' to turn this equality comparison into an assignment
md6_compress.c: if ( (C == NULL) ) return MD6_NULL_C;
md6_compress.c: ^~
md6_compress.c: =
md6_compress.c: ...
md6_compress.c: if ( (Q == NULL) ) return MD6_NULL_Q;
md6_compress.c: ~~^~~~~~~
md6_compress.c: md6_compress.c:432:11: note: remove extraneous parentheses around the comparison to silence this warning
md6_compress.c: if ( (Q == NULL) ) return MD6_NULL_Q;
md6_compress.c: ~ ^ ~
md6_compress.c: md6_compress.c:432:11: note: use '=' to turn this equality comparison into an assignment
md6_compress.c: if ( (Q == NULL) ) return MD6_NULL_Q;
md6_compress.c: ^~
md6_compress.c: =
md6_compress.c: 4 warnings 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