Implementation notes: amd64, hydra2, crypto_hash/md6d512

Computer: hydra2
Architecture: amd64
CPU ID: GenuineIntel-000206c2-bfebfbff
SUPERCOP version: 20141014
Operation: crypto_hash
Primitive: md6d512
TimeImplementationCompilerBenchmark dateSUPERCOP version
66084refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
66240refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
66268refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2014052820140525
66276refgcc -funroll-loops -O2 -fomit-frame-pointer2014052820140525
66340refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2014052820140525
66396refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
66700refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2014052820140525
66912refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
66996refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2014052820140525
67060refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2014052820140525
67372refgcc -march=nocona -O2 -fomit-frame-pointer2014052820140525
67808refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2014052820140525
67956refgcc -O2 -fomit-frame-pointer2014052820140525
67964refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2014052820140525
67968refgcc -m64 -O2 -fomit-frame-pointer2014052820140525
67972refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2014052820140525
67972refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2014052820140525
67992refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2014052820140525
68004refgcc -march=barcelona -O2 -fomit-frame-pointer2014052820140525
68052refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2014052820140525
68072refgcc -march=k8 -O2 -fomit-frame-pointer2014052820140525
68076refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2014052820140525
68264refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2014052820140525
68340refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
68344refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2014052820140525
68360refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2014052820140525
68740refgcc -funroll-loops -Os -fomit-frame-pointer2014052820140525
68756refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
68772refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
69280refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2014052820140525
69792refgcc -march=barcelona -Os -fomit-frame-pointer2014052820140525
69804refgcc -m64 -march=k8 -Os -fomit-frame-pointer2014052820140525
69828refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2014052820140525
69840refgcc -fno-schedule-insns -Os -fomit-frame-pointer2014052820140525
69852refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2014052820140525
69864refgcc -m64 -march=core2 -Os -fomit-frame-pointer2014052820140525
69876refgcc -march=k8 -Os -fomit-frame-pointer2014052820140525
69888refgcc -Os -fomit-frame-pointer2014052820140525
70012refgcc -m64 -Os -fomit-frame-pointer2014052820140525
70232refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2014052820140525
70232refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2014052820140525
70268refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2014052820140525
70584refgcc -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
70624refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2014052820140525
70688refgcc -march=nocona -Os -fomit-frame-pointer2014052820140525
71056refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2014052820140525
95960refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2014052820140525
96052refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
96232refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
96336refgcc -funroll-loops -m64 -O -fomit-frame-pointer2014052820140525
96516refgcc -funroll-loops -O3 -fomit-frame-pointer2014052820140525
96532refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2014052820140525
96536refgcc -funroll-loops -O -fomit-frame-pointer2014052820140525
96564refgcc -march=nocona -O -fomit-frame-pointer2014052820140525
96580refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
96588refgcc -m64 -march=nocona -O -fomit-frame-pointer2014052820140525
96660refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2014052820140525
96680refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
96724refgcc -m64 -O -fomit-frame-pointer2014052820140525
96756refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2014052820140525
96764refgcc -fno-schedule-insns -O -fomit-frame-pointer2014052820140525
96764refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2014052820140525
96792refgcc -march=barcelona -O -fomit-frame-pointer2014052820140525
96888refgcc -march=k8 -O -fomit-frame-pointer2014052820140525
96904refgcc -m64 -march=core2 -O -fomit-frame-pointer2014052820140525
96936refgcc -m64 -march=barcelona -O -fomit-frame-pointer2014052820140525
96936refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2014052820140525
96980refgcc -O -fomit-frame-pointer2014052820140525
97024refgcc -m64 -march=corei7 -O -fomit-frame-pointer2014052820140525
97160refgcc -m64 -march=k8 -O -fomit-frame-pointer2014052820140525
97680refgcc -O3 -fomit-frame-pointer2014052820140525
97792refgcc -m64 -O3 -fomit-frame-pointer2014052820140525
97840refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2014052820140525
97872refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2014052820140525
97896refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2014052820140525
97932refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2014052820140525
97988refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2014052820140525
98136refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2014052820140525
98224refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
99412refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2014052820140525
99444refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
99696refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2014052820140525
100060refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2014052820140525
101140refgcc -march=nocona -O3 -fomit-frame-pointer2014052820140525
104276refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
105236refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2014052820140525
105428refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2014052820140525
105436refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
106716refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2014052820140525
107552refgcc -march=k8 -O3 -fomit-frame-pointer2014052820140525
107720refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2014052820140525
108124refgcc -march=barcelona -O3 -fomit-frame-pointer2014052820140525
412460refgcc2014052820140525
413696refgcc -funroll-loops2014052820140525
413700refcc2014052820140525

Compiler output

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