Implementation notes: amd64, skylake, crypto_hash/md6d256

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: md6d256
TimeImplementationCompilerBenchmark dateSUPERCOP version
30682refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
30736refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
30742refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
30790refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
30812refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
30852refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
30902refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
30990refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
31030refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
31044refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
31074refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
31102refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
31120refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
31126refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
31172refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
31198refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
31198refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
31220refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
31228refgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
31234refgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
31386refgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
31390refgcc -m64 -O2 -fomit-frame-pointer2016121520161026
31496refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
31750refgcc -O2 -fomit-frame-pointer2016121520161026
31772refgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
31788refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
32030refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
32060refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
32072refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
32116refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
32118refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
32196refgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
32228refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
32234refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
32354refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
32392refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
32436refgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
32472refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
32480refgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
32496refgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
32502refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
32528refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
32528refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
32530refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
32550refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
32610refgcc -Os -fomit-frame-pointer2016121520161026
32616refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
32618refgcc -m64 -Os -fomit-frame-pointer2016121520161026
32668refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
32796refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
33080refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
33338refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
38702refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
39040refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
39058refgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
39112refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
39208refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
39246refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
39416refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
39586refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
39616refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
39684refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
39704refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
39762refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
39980refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
40314refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
40382refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
40444refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
40604refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
40626refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
40680refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
40720refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
40726refgcc -march=k8 -O -fomit-frame-pointer2016121520161026
40776refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
40814refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
40986refgcc -march=nocona -O -fomit-frame-pointer2016121520161026
41062refgcc -O -fomit-frame-pointer2016121520161026
41120refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
41150refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
41164refgcc -m64 -O -fomit-frame-pointer2016121520161026
41272refgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
41404refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
46218refgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
46288refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
46702refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
46902refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
47026refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
47032refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
47094refgcc -m64 -O3 -fomit-frame-pointer2016121520161026
47168refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
47176refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
47296refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
47318refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
47460refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
47510refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
48006refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
48036refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
48078refgcc -O3 -fomit-frame-pointer2016121520161026
48134refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
48896refgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
50446refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
50740refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
50936refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
51848refgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
52016refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
52088refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
52118refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
53472refgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
150612refgcc2016121520161026
150954refcc2016121520161026
151720refgcc -funroll-loops2016121520161026

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