Implementation notes: amd64, cryptothinkx, crypto_hash/md6d256

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: md6d256
TimeImplementationCompilerBenchmark dateSUPERCOP version
27480refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020120170105
27501refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020120170105
27951refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
28047refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
28080refgcc -funroll-loops -O2 -fomit-frame-pointer2017020120170105
28122refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020120170105
28224refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020120170105
28236refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
28401refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017020120170105
28563refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020120170105
28569refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020120170105
28686refgcc -march=barcelona -O2 -fomit-frame-pointer2017020120170105
28707refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020120170105
28848refgcc -O2 -fomit-frame-pointer2017020120170105
28992refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
29010refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020120170105
29124refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
29208refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020120170105
29325refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
29364refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
29388refgcc -march=k8 -O2 -fomit-frame-pointer2017020120170105
29493refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020120170105
29550refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020120170105
29616refgcc -march=nocona -Os -fomit-frame-pointer2017020120170105
29643refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
29661refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020120170105
29676refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017020120170105
29688refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
29775refgcc -march=barcelona -Os -fomit-frame-pointer2017020120170105
29865refgcc -m64 -O2 -fomit-frame-pointer2017020120170105
29991refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020120170105
30117refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017020120170105
30141refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020120170105
30144refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020120170105
30294refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
30303refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
30330refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
30333refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
30396refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
30396refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
30561refgcc -march=k8 -Os -fomit-frame-pointer2017020120170105
30741refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
30894refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020120170105
31062refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020120170105
31224refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020120170105
31413refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020120170105
31512refgcc -march=nocona -O2 -fomit-frame-pointer2017020120170105
31536refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017020120170105
31635refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
32109refgcc -funroll-loops -Os -fomit-frame-pointer2017020120170105
32544refgcc -m64 -Os -fomit-frame-pointer2017020120170105
32547refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017020120170105
32742refgcc -Os -fomit-frame-pointer2017020120170105
32768refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017020120170105
35470refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
36516refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020120170105
36657refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
36660refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017020120170105
36816refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
36906refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
37008refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017020120170105
37098refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020120170105
37158refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
38955refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020120170105
39390refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020120170105
39447refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
39462refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
39570refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
39576refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
39591refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020120170105
39615refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017020120170105
39624refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
39723refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020120170105
39741refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020120170105
40053refgcc -march=k8 -O -fomit-frame-pointer2017020120170105
40128refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
40140refgcc -march=nocona -O -fomit-frame-pointer2017020120170105
40503refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020120170105
40782refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020120170105
40872refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020120170105
40992refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020120170105
40998refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017020120170105
41001refgcc -funroll-loops -O -fomit-frame-pointer2017020120170105
41133refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020120170105
41376refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
41385refgcc -O -fomit-frame-pointer2017020120170105
41589refgcc -march=barcelona -O -fomit-frame-pointer2017020120170105
41601refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
41637refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
42744refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
42744refgcc -m64 -O -fomit-frame-pointer2017020120170105
43881refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020120170105
44169refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020120170105
44781refgcc -funroll-loops -O3 -fomit-frame-pointer2017020120170105
44823refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020120170105
44838refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
45057refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020120170105
45096refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020120170105
45196refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017020120170105
45222refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020120170105
45237refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020120170105
45345refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017020120170105
45414refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020120170105
45462refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017020120170105
45555refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017020120170105
45604refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
45660refgcc -O3 -fomit-frame-pointer2017020120170105
45717refgcc -m64 -O3 -fomit-frame-pointer2017020120170105
45834refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
46008refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
46275refgcc -march=nocona -O3 -fomit-frame-pointer2017020120170105
46575refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020120170105
46617refgcc -march=barcelona -O3 -fomit-frame-pointer2017020120170105
46683refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020120170105
46713refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
46779refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
47940refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
47979refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020120170105
48027refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
48141refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
48243refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
48297refgcc -march=k8 -O3 -fomit-frame-pointer2017020120170105
163068refgcc -funroll-loops2017020120170105
164106refcc2017020120170105
174363refgcc2017020120170105

Compiler output

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