Implementation notes: amd64, cryptothinkx, crypto_hash/md6d512

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: md6d512
TimeImplementationCompilerBenchmark dateSUPERCOP version
43953refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017020120170105
44349refgcc -m64 -O2 -fomit-frame-pointer2017020120170105
44601refgcc -funroll-loops -O2 -fomit-frame-pointer2017020120170105
44865refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
44904refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
45009refgcc -march=k8 -O2 -fomit-frame-pointer2017020120170105
45396refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020120170105
45447refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020120170105
45462refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020120170105
45465refgcc -march=barcelona -O2 -fomit-frame-pointer2017020120170105
45603refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020120170105
45753refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
45813refgcc -O2 -fomit-frame-pointer2017020120170105
45840refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
45864refgcc -m64 -Os -fomit-frame-pointer2017020120170105
45894refgcc -Os -fomit-frame-pointer2017020120170105
45975refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
46152refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
46185refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020120170105
46260refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020120170105
46476refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
46515refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
46515refgcc -march=nocona -O2 -fomit-frame-pointer2017020120170105
46644refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020120170105
46698refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017020120170105
46923refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017020120170105
46968refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020120170105
46986refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
46998refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020120170105
47007refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
47010refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
47016refgcc -funroll-loops -Os -fomit-frame-pointer2017020120170105
47022refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020120170105
47163refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
47178refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020120170105
47199refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017020120170105
47232refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017020120170105
47232refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017020120170105
47355refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020120170105
47391refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020120170105
47391refgcc -march=k8 -Os -fomit-frame-pointer2017020120170105
47412refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
47466refgcc -march=barcelona -Os -fomit-frame-pointer2017020120170105
47784refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020120170105
47985refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020120170105
48558refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020120170105
48681refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
49026refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020120170105
49056refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
49098refgcc -march=nocona -Os -fomit-frame-pointer2017020120170105
49104refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
49566refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020120170105
51292refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020120170105
52852refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
53208refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
57696refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
59139refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020120170105
59586refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
59589refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
59865refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017020120170105
61350refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017020120170105
61605refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
62547refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
62586refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020120170105
63132refgcc -m64 -O -fomit-frame-pointer2017020120170105
63192refgcc -march=barcelona -O -fomit-frame-pointer2017020120170105
63273refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
64227refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017020120170105
64305refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020120170105
64350refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
64392refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
64446refgcc -funroll-loops -O -fomit-frame-pointer2017020120170105
64455refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020120170105
64473refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
64617refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020120170105
64623refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020120170105
64662refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020120170105
64710refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017020120170105
64713refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017020120170105
64779refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020120170105
64986refgcc -O -fomit-frame-pointer2017020120170105
64986refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
65004refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
65094refgcc -march=nocona -O -fomit-frame-pointer2017020120170105
65343refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
65424refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
66148refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020120170105
66450refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
66558refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020120170105
68500refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020120170105
68961refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020120170105
69036refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020120170105
69636refgcc -march=k8 -O -fomit-frame-pointer2017020120170105
69810refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
69825refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
69876refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020120170105
70539refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020120170105
71979refgcc -funroll-loops -O3 -fomit-frame-pointer2017020120170105
72096refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
72444refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020120170105
72627refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020120170105
72678refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020120170105
72882refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017020120170105
72954refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
72987refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020120170105
73002refgcc -m64 -O3 -fomit-frame-pointer2017020120170105
73035refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017020120170105
73470refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
73548refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020120170105
73593refgcc -march=nocona -O3 -fomit-frame-pointer2017020120170105
73656refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017020120170105
74367refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
76228refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020120170105
76434refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020120170105
76491refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020120170105
76854refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
77070refgcc -march=barcelona -O3 -fomit-frame-pointer2017020120170105
77220refgcc -march=k8 -O3 -fomit-frame-pointer2017020120170105
77361refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
77460refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
81192refgcc -O3 -fomit-frame-pointer2017020120170105
85480refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
251460refcc2017020120170105
259365refgcc -funroll-loops2017020120170105
259500refgcc2017020120170105

Compiler output

Implementation: crypto_hash/md6d512/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