Implementation notes: amd64, skylake, crypto_hash/md6d512

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: md6d512
TimeImplementationCompilerBenchmark dateSUPERCOP version
48256refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
48308refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
48372refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
48372refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
48428refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
48502refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
48534refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
48536refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
48554refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
48606refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
48634refgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
48638refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
48648refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
48772refgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
48822refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
48926refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
48928refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
48942refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
48946refgcc -m64 -O2 -fomit-frame-pointer2016121520161026
49280refgcc -O2 -fomit-frame-pointer2016121520161026
49332refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
49338refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
49430refgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
49514refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
49574refgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
49682refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
49698refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
49712refgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
49750refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
49754refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
49766refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
49882refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
49914refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
50036refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
50084refgcc -Os -fomit-frame-pointer2016121520161026
50136refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
50240refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
50284refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
50334refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
50344refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
50478refgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
50486refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
50520refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
50520refgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
50550refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
50614refgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
50636refgcc -m64 -Os -fomit-frame-pointer2016121520161026
50730refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
50830refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
50900refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
51002refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
51728refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
60724refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
60918refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
60930refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
60936refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
61020refgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
61190refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
61222refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
61280refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
61514refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
61700refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
62032refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
62168refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
62290refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
62344refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
62954refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
63122refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
63134refgcc -march=nocona -O -fomit-frame-pointer2016121520161026
63228refgcc -march=k8 -O -fomit-frame-pointer2016121520161026
63342refgcc -O -fomit-frame-pointer2016121520161026
63564refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
63598refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
63646refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
63892refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
63902refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
63974refgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
64008refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
64226refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
64302refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
64800refgcc -m64 -O -fomit-frame-pointer2016121520161026
65032refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
74044refgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
74212refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
74308refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
74326refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
74384refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
74788refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
75004refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
75366refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
75632refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
75712refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
75790refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
75826refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
75836refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
76198refgcc -m64 -O3 -fomit-frame-pointer2016121520161026
76286refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
76790refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
76898refgcc -O3 -fomit-frame-pointer2016121520161026
77366refgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
80718refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
80934refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
81260refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
82528refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
82612refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
82732refgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
83072refgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
83324refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
236972refcc2016121520161026
238212refgcc2016121520161026
239406refgcc -funroll-loops2016121520161026

Compiler output

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