Implementation notes: amd64, rumba5, crypto_hash/md6d224

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20171218
Operation: crypto_hash
Primitive: md6d224
TimeImplementationCompilerBenchmark dateSUPERCOP version
28896refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018051620171218
28896refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018051620171218
28896refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018051620171218
28928refgcc -funroll-loops -O2 -fomit-frame-pointer2018051620171218
28992refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018051620171218
28992refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018051620171218
29056refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018051620171218
29120refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018051620171218
29152refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018051620171218
29184refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018051620171218
29184refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018051620171218
29280refgcc -O2 -fomit-frame-pointer2018051620171218
29280refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018051620171218
29408refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018051620171218
29408refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018051620171218
29408refgcc -m64 -O2 -fomit-frame-pointer2018051620171218
29408refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018051620171218
29440refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018051620171218
29504refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018051620171218
29504refgcc -march=barcelona -O2 -fomit-frame-pointer2018051620171218
29568refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018051620171218
29568refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018051620171218
29792refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018051620171218
29856refgcc -march=k8 -O2 -fomit-frame-pointer2018051620171218
30048refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018051620171218
30176refgcc -march=nocona -O2 -fomit-frame-pointer2018051620171218
30848refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018051620171218
30912refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018051620171218
30944refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018051620171218
31008refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018051620171218
31136refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018051620171218
31168refgcc -m64 -Os -fomit-frame-pointer2018051620171218
31168refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018051620171218
31200refgcc -Os -fomit-frame-pointer2018051620171218
31200refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018051620171218
31200refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018051620171218
31232refgcc -m64 -march=k8 -Os -fomit-frame-pointer2018051620171218
31264refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018051620171218
31328refgcc -fno-schedule-insns -Os -fomit-frame-pointer2018051620171218
31328refgcc -m64 -march=core2 -Os -fomit-frame-pointer2018051620171218
31328refgcc -march=barcelona -Os -fomit-frame-pointer2018051620171218
31360refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018051620171218
31360refgcc -march=k8 -Os -fomit-frame-pointer2018051620171218
31392refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018051620171218
31392refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018051620171218
31392refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018051620171218
31424refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018051620171218
31424refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018051620171218
31488refgcc -funroll-loops -Os -fomit-frame-pointer2018051620171218
31488refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018051620171218
31584refgcc -m64 -march=nocona -Os -fomit-frame-pointer2018051620171218
31808refgcc -march=nocona -Os -fomit-frame-pointer2018051620171218
38592refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018051620171218
39168refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018051620171218
40192refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018051620171218
41056refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018051620171218
41088refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018051620171218
41120refgcc -funroll-loops -m64 -O -fomit-frame-pointer2018051620171218
41120refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018051620171218
41248refgcc -funroll-loops -O -fomit-frame-pointer2018051620171218
41280refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018051620171218
41376refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018051620171218
41440refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018051620171218
41536refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018051620171218
41888refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018051620171218
42080refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018051620171218
42208refgcc -m64 -march=corei7 -O -fomit-frame-pointer2018051620171218
42240refgcc -march=k8 -O -fomit-frame-pointer2018051620171218
42304refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018051620171218
42336refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018051620171218
42400refgcc -fno-schedule-insns -O -fomit-frame-pointer2018051620171218
42400refgcc -m64 -march=core2 -O -fomit-frame-pointer2018051620171218
42464refgcc -O -fomit-frame-pointer2018051620171218
42464refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018051620171218
42464refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018051620171218
42496refgcc -m64 -march=k8 -O -fomit-frame-pointer2018051620171218
42528refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018051620171218
42560refgcc -m64 -O -fomit-frame-pointer2018051620171218
42560refgcc -m64 -march=nocona -O -fomit-frame-pointer2018051620171218
42624refgcc -m64 -march=barcelona -O -fomit-frame-pointer2018051620171218
42656refgcc -march=barcelona -O -fomit-frame-pointer2018051620171218
42848refgcc -march=nocona -O -fomit-frame-pointer2018051620171218
48960refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018051620171218
49120refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018051620171218
49152refgcc -funroll-loops -O3 -fomit-frame-pointer2018051620171218
49376refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018051620171218
49408refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018051620171218
49440refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018051620171218
49600refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018051620171218
49920refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018051620171218
49984refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018051620171218
49984refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018051620171218
50016refgcc -O3 -fomit-frame-pointer2018051620171218
50112refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018051620171218
50368refgcc -m64 -O3 -fomit-frame-pointer2018051620171218
50560refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018051620171218
50784refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018051620171218
50912refgcc -march=nocona -O3 -fomit-frame-pointer2018051620171218
51072refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018051620171218
53792refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018051620171218
53888refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018051620171218
54016refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018051620171218
54208refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018051620171218
54336refgcc -march=k8 -O3 -fomit-frame-pointer2018051620171218
54432refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018051620171218
54528refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018051620171218
54560refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018051620171218
54560refgcc -march=barcelona -O3 -fomit-frame-pointer2018051620171218
166240refgcc2018051620171218
166528refgcc -funroll-loops2018051620171218
166560refcc2018051620171218

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