Implementation notes: amd64, cryptothinkx, crypto_hash/md6d384

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: md6d384
TimeImplementationCompilerBenchmark dateSUPERCOP version
35700refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017020120170105
35730refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020120170105
36108refgcc -O2 -fomit-frame-pointer2017020120170105
36579refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
36585refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020120170105
36687refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
36720refgcc -march=k8 -O2 -fomit-frame-pointer2017020120170105
36837refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
36933refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020120170105
36960refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017020120170105
37008refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
37053refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020120170105
37080refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017020120170105
37143refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017020120170105
37371refgcc -m64 -O2 -fomit-frame-pointer2017020120170105
37527refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
37542refgcc -funroll-loops -O2 -fomit-frame-pointer2017020120170105
37590refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020120170105
37599refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020120170105
37641refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
37686refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
37728refgcc -Os -fomit-frame-pointer2017020120170105
37773refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
37794refgcc -march=nocona -Os -fomit-frame-pointer2017020120170105
37869refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020120170105
38235refgcc -march=barcelona -O2 -fomit-frame-pointer2017020120170105
38343refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020120170105
38412refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
38619refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020120170105
38622refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020120170105
38652refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
38688refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020120170105
38751refgcc -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
38778refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017020120170105
38817refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
38829refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020120170105
38880refgcc -march=barcelona -Os -fomit-frame-pointer2017020120170105
38883refgcc -funroll-loops -Os -fomit-frame-pointer2017020120170105
38892refgcc -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
38907refgcc -march=k8 -Os -fomit-frame-pointer2017020120170105
38937refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020120170105
39168refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
39345refgcc -march=nocona -O2 -fomit-frame-pointer2017020120170105
39624refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020120170105
40053refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
40056refgcc -m64 -Os -fomit-frame-pointer2017020120170105
40263refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020120170105
41316refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
41472refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020120170105
41526refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017020120170105
41541refgcc -m64 -march=core2 -Os -fomit-frame-pointer2017020120170105
41577refclang -O3 -fomit-frame-pointer -Qunused-arguments2017020120170105
41703refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020120170105
44172refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020120170105
44866refgcc -fno-schedule-insns -Os -fomit-frame-pointer2017020120170105
46089refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020120170105
47745refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020120170105
47928refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
48048refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017020120170105
48084refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
48354refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020120170105
48417refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017020120170105
48459refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020120170105
48528refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017020120170105
49956refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
50787refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020120170105
51102refgcc -funroll-loops -m64 -O -fomit-frame-pointer2017020120170105
51141refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017020120170105
51240refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
51249refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017020120170105
51270refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020120170105
51273refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020120170105
51357refgcc -O -fomit-frame-pointer2017020120170105
51537refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
51660refgcc -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
51771refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
51939refgcc -march=barcelona -O -fomit-frame-pointer2017020120170105
52407refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020120170105
52515refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020120170105
52554refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
52647refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020120170105
52674refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
52743refgcc -funroll-loops -O -fomit-frame-pointer2017020120170105
52800refgcc -m64 -march=core2 -O -fomit-frame-pointer2017020120170105
52824refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020120170105
53058refgcc -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
53571refgcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
54699refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020120170105
54723refgcc -m64 -march=corei7 -O -fomit-frame-pointer2017020120170105
55107refgcc -march=nocona -O -fomit-frame-pointer2017020120170105
56931refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020120170105
56955refgcc -fno-schedule-insns -O -fomit-frame-pointer2017020120170105
57072refgcc -march=k8 -O -fomit-frame-pointer2017020120170105
58170refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017020120170105
58200refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
58272refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017020120170105
58485refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020120170105
58521refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
58683refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
58860refgcc -funroll-loops -O3 -fomit-frame-pointer2017020120170105
58893refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020120170105
58902refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017020120170105
59019refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020120170105
59607refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020120170105
59619refgcc -m64 -O3 -fomit-frame-pointer2017020120170105
59757refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020120170105
60369refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020120170105
60572refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
61590refgcc -m64 -O -fomit-frame-pointer2017020120170105
61911refgcc -march=nocona -O3 -fomit-frame-pointer2017020120170105
62154refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
62181refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
62307refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020120170105
62637refgcc -march=k8 -O3 -fomit-frame-pointer2017020120170105
62694refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020120170105
62727refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
62793refgcc -march=barcelona -O3 -fomit-frame-pointer2017020120170105
62832refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020120170105
63084refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020120170105
63336refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017020120170105
64284refgcc -O3 -fomit-frame-pointer2017020120170105
67149refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
211350refgcc2017020120170105
226317refcc2017020120170105
234408refgcc -funroll-loops2017020120170105

Compiler output

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