Implementation notes: amd64, hydra2, crypto_hash/md6d384

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_hash
Primitive: md6d384
TimeImplementationCompilerBenchmark dateSUPERCOP version
54308refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052820140525
54328refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
54456refgcc -funroll-loops -O2 -fomit-frame-pointer2014052820140525
54472refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052820140525
54588refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052820140525
54600refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
54644refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
54876refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052820140525
55068refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
55152refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
55340refgcc -march=nocona -O2 -fomit-frame-pointer2014052820140525
55796refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
55844refgcc -O2 -fomit-frame-pointer2014052820140525
55848refgcc -m64 -O2 -fomit-frame-pointer2014052820140525
55912refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
55956refgcc -march=barcelona -O2 -fomit-frame-pointer2014052820140525
55972refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052820140525
55992refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052820140525
56000refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
56012refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052820140525
56048refgcc -march=k8 -O2 -fomit-frame-pointer2014052820140525
56092refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052820140525
56104refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052820140525
56164refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
56280refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052820140525
56488refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
56544refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
56592refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052820140525
56660refgcc -funroll-loops -Os -fomit-frame-pointer2014052820140525
57020refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052820140525
57300refgcc -Os -fomit-frame-pointer2014052820140525
57328refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
57348refgcc -march=barcelona -Os -fomit-frame-pointer2014052820140525
57404refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
57416refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
57440refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052820140525
57456refgcc -march=k8 -Os -fomit-frame-pointer2014052820140525
57492refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052820140525
57512refgcc -m64 -Os -fomit-frame-pointer2014052820140525
57592refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052820140525
57956refgcc -march=nocona -Os -fomit-frame-pointer2014052820140525
57976refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
58004refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052820140525
58068refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052820140525
58212refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052820140525
58220refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
78724refgcc -funroll-loops -O3 -fomit-frame-pointer2014052820140525
78760refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
78864refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
78920refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052820140525
78964refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052820140525
78976refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
79076refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052820140525
79104refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052820140525
79116refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
79124refgcc -funroll-loops -O -fomit-frame-pointer2014052820140525
79164refgcc -march=nocona -O -fomit-frame-pointer2014052820140525
79176refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
79256refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052820140525
79304refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
79356refgcc -march=barcelona -O -fomit-frame-pointer2014052820140525
79456refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052820140525
79480refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052820140525
79488refgcc -O -fomit-frame-pointer2014052820140525
79496refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052820140525
79500refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052820140525
79508refgcc -march=k8 -O -fomit-frame-pointer2014052820140525
79516refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
79516refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052820140525
79528refgcc -m64 -O -fomit-frame-pointer2014052820140525
79560refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
79600refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
79836refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014052820140525
79844refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014052820140525
79868refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052820140525
79872refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052820140525
79936refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
80176refgcc -O3 -fomit-frame-pointer2014052820140525
80176refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014052820140525
81196refgcc -m64 -O3 -fomit-frame-pointer2014052820140525
81480refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
81540refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
81540refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052820140525
81928refgcc -march=nocona -O3 -fomit-frame-pointer2014052820140525
85092refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052820140525
85224refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
85712refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052820140525
86288refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
87340refgcc -march=barcelona -O3 -fomit-frame-pointer2014052820140525
87364refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
87508refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
87948refgcc -march=k8 -O3 -fomit-frame-pointer2014052820140525
335832refgcc2014052820140525
336144refgcc -funroll-loops2014052820140525
337076refcc2014052820140525

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fomit-frame-pointer
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: 2, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
hash.c: clang: warning: argument unused during compilation: '-fpolly'
hash.c: clang: warning: argument unused during compilation: '-fvectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
md6_compress.c: clang: warning: argument unused during compilation: '-fpolly'
md6_compress.c: clang: warning: argument unused during compilation: '-fvectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer
hash.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
hash.c: clang: warning: argument unused during compilation: '-mavx2'
hash.c: clang: warning: argument unused during compilation: '-mpclmul'
md6_compress.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
md6_compress.c: clang: warning: argument unused during compilation: '-mavx2'
md6_compress.c: clang: warning: argument unused during compilation: '-mpclmul'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
hash.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
hash.c: clang: warning: argument unused during compilation: '-mavx2'
hash.c: clang: warning: argument unused during compilation: '-mpclmul'
hash.c: clang: warning: argument unused during compilation: '-fpolly'
hash.c: clang: warning: argument unused during compilation: '-fvectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
md6_compress.c: clang: warning: argument unused during compilation: '-mcpu=core-avx2'
md6_compress.c: clang: warning: argument unused during compilation: '-mavx2'
md6_compress.c: clang: warning: argument unused during compilation: '-mpclmul'
md6_compress.c: clang: warning: argument unused during compilation: '-fpolly'
md6_compress.c: clang: warning: argument unused during compilation: '-fvectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fwrapv -mavx2 -fomit-frame-pointer
hash.c: clang: warning: argument unused during compilation: '-mavx2'
md6_compress.c: clang: warning: argument unused during compilation: '-mavx2'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_hash/md6d384/ref
Compiler: clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer
hash.c: clang: warning: argument unused during compilation: '-mavx2'
hash.c: clang: warning: argument unused during compilation: '-fpolly'
hash.c: clang: warning: argument unused during compilation: '-fvectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
hash.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
md6_compress.c: clang: warning: argument unused during compilation: '-mavx2'
md6_compress.c: clang: warning: argument unused during compilation: '-fpolly'
md6_compress.c: clang: warning: argument unused during compilation: '-fvectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize'
md6_compress.c: clang: warning: argument unused during compilation: '-fslp-vectorize-aggressive'
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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 -fwrapv -mavx2 -fpolly -funroll-loops -fvectorize -fslp-vectorize -fslp-vectorize-aggressive -fomit-frame-pointer ref