Implementation notes: amd64, skylake, crypto_hash/md6d224

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: md6d224
TimeImplementationCompilerBenchmark dateSUPERCOP version
28282refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
28536refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
28572refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
28590refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
28682refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
28704refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
28770refgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
28780refgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
28786refgcc -m64 -O2 -fomit-frame-pointer2016121520161026
28904refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
28908refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
28940refgcc -O2 -fomit-frame-pointer2016121520161026
28942refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
28954refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
28994refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
29036refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
29056refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
29110refgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
29144refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
29188refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
29208refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
29340refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
29352refgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
29420refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
29600refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
29616refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
29718refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
29822refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
29880refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
29904refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
29986refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
30000refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
30010refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
30244refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
30252refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
30262refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
30262refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
30284refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
30284refgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
30288refgcc -Os -fomit-frame-pointer2016121520161026
30338refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
30346refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
30358refgcc -m64 -Os -fomit-frame-pointer2016121520161026
30366refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
30380refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
30482refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
30490refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
30502refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
30688refgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
30772refgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
30826refgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
31034refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
35726refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
36230refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
36382refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
36594refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
36614refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
36688refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
36828refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
36990refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
37006refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
37074refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
37332refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
37434refgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
37438refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
37508refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
37560refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
37572refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
37620refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
37714refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
37788refgcc -march=k8 -O -fomit-frame-pointer2016121520161026
37860refgcc -march=nocona -O -fomit-frame-pointer2016121520161026
37932refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
37942refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
37976refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
38010refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
38054refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
38094refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
38168refgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
38322refgcc -m64 -O -fomit-frame-pointer2016121520161026
38490refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
39350refgcc -O -fomit-frame-pointer2016121520161026
42666refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
42688refgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
43044refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
43086refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
43208refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
43312refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
43394refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
43480refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
43502refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
43542refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
43744refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
43814refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
43916refgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
43936refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
43978refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
44008refgcc -m64 -O3 -fomit-frame-pointer2016121520161026
44490refgcc -O3 -fomit-frame-pointer2016121520161026
44776refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
47006refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
47028refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
47288refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
47364refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
48054refgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
48156refgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
48380refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
49934refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
139200refcc2016121520161026
140216refgcc2016121520161026
142506refgcc -funroll-loops2016121520161026

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: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