Implementation notes: amd64, skylake, crypto_hash/md6d384

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: md6d384
TimeImplementationCompilerBenchmark dateSUPERCOP version
39524refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
39550refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
39560refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
39562refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
39570refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
39620refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
39702refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
39708refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
39778refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
39816refgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
39900refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
39912refgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
39946refgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
39954refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
39980refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
39998refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
40000refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
40044refgcc -O2 -fomit-frame-pointer2016121520161026
40188refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
40194refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
40284refgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
40316refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
40456refgcc -m64 -O2 -fomit-frame-pointer2016121520161026
40466refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
40764refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
40768refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
40786refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
40786refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
40808refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
40850refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
40948refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
40954refgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
40974refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
41014refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
41024refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
41238refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
41296refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
41314refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
41348refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
41426refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
41478refgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
41504refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
41610refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
41612refgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
41634refgcc -m64 -Os -fomit-frame-pointer2016121520161026
41652refgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
41712refgcc -Os -fomit-frame-pointer2016121520161026
41800refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
41806refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
41956refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
42064refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
42312refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
49654refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
50022refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
50162refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
50224refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
50242refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
50264refgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
50412refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
50528refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
50600refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
50808refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
50840refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
51348refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
51396refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
51406refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
51576refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
51764refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
51770refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
51920refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
51952refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
52072refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
52100refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
52108refgcc -O -fomit-frame-pointer2016121520161026
52188refgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
52202refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
52240refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
52338refgcc -m64 -O -fomit-frame-pointer2016121520161026
52396refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
52524refgcc -march=k8 -O -fomit-frame-pointer2016121520161026
52592refgcc -march=nocona -O -fomit-frame-pointer2016121520161026
53154refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
59520refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
60336refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
60610refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
60928refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
60934refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
61028refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
61054refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
61062refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
61104refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
61352refgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
61378refgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
61556refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
61588refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
61634refgcc -O3 -fomit-frame-pointer2016121520161026
61758refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
62290refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
62894refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
63240refgcc -m64 -O3 -fomit-frame-pointer2016121520161026
65824refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
66260refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
66288refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
66608refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
67284refgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
67296refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
67328refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
67676refgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
194706refgcc2016121520161026
195566refcc2016121520161026
196200refgcc -funroll-loops2016121520161026

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:425:11: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
md6_compress.c: if ( (B == NULL) ) return MD6_NULL_B;
md6_compress.c: ~~^~~~~~~
md6_compress.c: md6_compress.c:425:11: note: remove extraneous parentheses around the comparison to silence this warning
md6_compress.c: if ( (B == NULL) ) return MD6_NULL_B;
md6_compress.c: ~ ^ ~
md6_compress.c: md6_compress.c:425:11: note: use '=' to turn this equality comparison into an assignment
md6_compress.c: if ( (B == NULL) ) return MD6_NULL_B;
md6_compress.c: ^~
md6_compress.c: =
md6_compress.c: md6_compress.c:431:11: warning: equality comparison with extraneous parentheses [-Wparentheses-equality]
md6_compress.c: if ( (K == NULL) ) return MD6_NULL_K;
md6_compress.c: ~~^~~~~~~
md6_compress.c: md6_compress.c:431:11: note: remove extraneous parentheses around the comparison to silence this warning
md6_compress.c: if ( (K == NULL) ) return MD6_NULL_K;
md6_compress.c: ...

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