Implementation notes: amd64, hydra2, crypto_hash/md6d256

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_hash
Primitive: md6d256
TimeImplementationCompilerBenchmark dateSUPERCOP version
42376refgcc -funroll-loops -O2 -fomit-frame-pointer2014052820140525
42384refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052820140525
42428refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
42444refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
42448refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052820140525
42524refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
42564refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052820140525
42680refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052820140525
42704refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
43116refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
43124refgcc -march=nocona -O2 -fomit-frame-pointer2014052820140525
43596refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052820140525
43600refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052820140525
43628refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
43640refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052820140525
43696refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
43696refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052820140525
43716refgcc -m64 -O2 -fomit-frame-pointer2014052820140525
43756refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052820140525
43760refgcc -O2 -fomit-frame-pointer2014052820140525
43792refgcc -march=barcelona -O2 -fomit-frame-pointer2014052820140525
43820refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
43904refgcc -march=k8 -O2 -fomit-frame-pointer2014052820140525
44132refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052820140525
44268refgcc -funroll-loops -Os -fomit-frame-pointer2014052820140525
44376refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
44392refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
44480refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052820140525
44484refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052820140525
44984refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
45028refgcc -march=k8 -Os -fomit-frame-pointer2014052820140525
45032refgcc -m64 -Os -fomit-frame-pointer2014052820140525
45044refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
45048refgcc -Os -fomit-frame-pointer2014052820140525
45132refgcc -march=barcelona -Os -fomit-frame-pointer2014052820140525
45164refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
45172refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052820140525
45216refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052820140525
45308refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052820140525
45356refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
45376refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
45432refgcc -march=nocona -Os -fomit-frame-pointer2014052820140525
45620refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052820140525
45720refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
45760refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052820140525
45780refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052820140525
60708refgcc -funroll-loops -O3 -fomit-frame-pointer2014052820140525
60788refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
60908refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052820140525
61352refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052820140525
61424refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
61524refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014052820140525
61636refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
61648refgcc -march=nocona -O -fomit-frame-pointer2014052820140525
61652refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052820140525
61660refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
61664refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052820140525
61672refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
61676refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014052820140525
61684refgcc -funroll-loops -O -fomit-frame-pointer2014052820140525
61688refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052820140525
61700refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
61716refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014052820140525
61768refgcc -O3 -fomit-frame-pointer2014052820140525
61780refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052820140525
61804refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052820140525
61848refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
61916refgcc -m64 -O3 -fomit-frame-pointer2014052820140525
62020refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052820140525
62052refgcc -march=k8 -O -fomit-frame-pointer2014052820140525
62064refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052820140525
62072refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
62084refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
62124refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052820140525
62136refgcc -O -fomit-frame-pointer2014052820140525
62136refgcc -m64 -O -fomit-frame-pointer2014052820140525
62148refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
62148refgcc -march=barcelona -O -fomit-frame-pointer2014052820140525
62196refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052820140525
62208refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052820140525
62712refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
63088refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052820140525
63132refgcc -march=nocona -O3 -fomit-frame-pointer2014052820140525
63248refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
65660refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052820140525
65712refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
65716refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
65900refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052820140525
67336refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
67348refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
67504refgcc -march=barcelona -O3 -fomit-frame-pointer2014052820140525
67548refgcc -march=k8 -O3 -fomit-frame-pointer2014052820140525
259644refgcc2014052820140525
259900refgcc -funroll-loops2014052820140525
260148refcc2014052820140525

Compiler output

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