Implementation notes: amd64, cryptothinkx, crypto_hash/essence512

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: essence512
TimeImplementationCompilerBenchmark dateSUPERCOP version
46455gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
46968gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
47052gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017013120170105
47328gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017013120170105
47358gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
47418gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
47667gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
47667gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017013120170105
47943gccgcc -march=nocona -O3 -fomit-frame-pointer2017013120170105
47985gccgcc -funroll-loops -O2 -fomit-frame-pointer2017013120170105
47988gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017013120170105
48072gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
48324gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
48327gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
48351gccgcc -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48513gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
48585gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
48594gccgcc -funroll-loops -O3 -fomit-frame-pointer2017013120170105
48621gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017013120170105
48675gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017013120170105
48684gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48708gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48753gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
48885gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017013120170105
48915gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48945gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017013120170105
48951gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
48996gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017013120170105
49071gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017013120170105
49074gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017013120170105
49113gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017013120170105
49125gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
49236gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017013120170105
49251gccgcc -march=k8 -O3 -fomit-frame-pointer2017013120170105
49728gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017013120170105
49743gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
49755gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017013120170105
49776gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
49791gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017013120170105
49815gccclang -O3 -fomit-frame-pointer -Qunused-arguments2017013120170105
49974gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017013120170105
50016gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
50061gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017013120170105
50064gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2017013120170105
50076gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017013120170105
50430gccgcc -march=barcelona -O2 -fomit-frame-pointer2017013120170105
51051gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017013120170105
51087gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
51093gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017013120170105
51342gccgcc -O3 -fomit-frame-pointer2017013120170105
51420gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017013120170105
51504gccgcc -m64 -O2 -fomit-frame-pointer2017013120170105
51729gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
51918gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
52053gccgcc -O2 -fomit-frame-pointer2017013120170105
52311gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
52362gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017013120170105
52872gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017013120170105
53067gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017013120170105
53409gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
53586gccgcc -march=k8 -O2 -fomit-frame-pointer2017013120170105
53604gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
53613gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
53805gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017013120170105
54474gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017013120170105
55029gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017013120170105
55572gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
55611gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017013120170105
55956gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017013120170105
55972gccgcc -m64 -O3 -fomit-frame-pointer2017013120170105
56169gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017013120170105
56288gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
56547gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017013120170105
56559gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017013120170105
56559gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017013120170105
56586gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
56694gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017013120170105
56829gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017013120170105
58182gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
58392gccgcc -Os -fomit-frame-pointer2017013120170105
58398gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
58410gccgcc -funroll-loops -Os -fomit-frame-pointer2017013120170105
58419gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017013120170105
58440gccgcc -march=nocona -O -fomit-frame-pointer2017013120170105
58554gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
58830gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
58842gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
59055gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017013120170105
59160gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017013120170105
59226gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017013120170105
59277gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017013120170105
59296gccgcc -funroll-loops -O -fomit-frame-pointer2017013120170105
59832gccgcc -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
59868gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017013120170105
59967gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
59982gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017013120170105
60111gccgcc -march=k8 -Os -fomit-frame-pointer2017013120170105
60387gccgcc -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
60669gccgcc -march=nocona -O2 -fomit-frame-pointer2017013120170105
61185gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
61242gccgcc -m64 -march=core2 -O -fomit-frame-pointer2017013120170105
61404gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
61425gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017013120170105
61674gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2017013120170105
61743gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017013120170105
61797gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017013120170105
62928gccgcc -O -fomit-frame-pointer2017013120170105
64152gccgcc -march=barcelona -O -fomit-frame-pointer2017013120170105
64518gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017013120170105
64548gccgcc -m64 -Os -fomit-frame-pointer2017013120170105
65436gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017013120170105
67041gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
67242gccgcc -m64 -O -fomit-frame-pointer2017013120170105
67260gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2017013120170105
67446gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017013120170105
67980gccgcc -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
69435gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017013120170105
69492gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
70560gccgcc -march=k8 -O -fomit-frame-pointer2017013120170105
70588gccgcc -march=barcelona -Os -fomit-frame-pointer2017013120170105
71760gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
92795gccgcc -march=nocona -Os -fomit-frame-pointer2017013120170105
197532gccgcc2017013120170105
216051gccgcc -funroll-loops2017013120170105
217755gcccc2017013120170105

Compiler output

Implementation: crypto_hash/essence512/gcc
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
essence_L_tables.c: In file included from essence_L_tables.c:12:
essence_L_tables.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
essence_L_tables.c: #ifndef _ESSENCE_API_H_
essence_L_tables.c: ^~~~~~~~~~~~~~~
essence_L_tables.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
essence_L_tables.c: #define _ESSENCE_H_API_
essence_L_tables.c: ^~~~~~~~~~~~~~~
essence_L_tables.c: _ESSENCE_API_H_
essence_L_tables.c: 1 warning generated.
essence_api.c: In file included from essence_api.c:11:
essence_api.c: In file included from ./essence.h:11:
essence_api.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
essence_api.c: #ifndef _ESSENCE_API_H_
essence_api.c: ^~~~~~~~~~~~~~~
essence_api.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
essence_api.c: #define _ESSENCE_H_API_
essence_api.c: ^~~~~~~~~~~~~~~
essence_api.c: _ESSENCE_API_H_
essence_api.c: 1 warning generated.
essence_compress_256.c: In file included from essence_compress_256.c:11:
essence_compress_256.c: In file included from ./essence.h:11:
essence_compress_256.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
essence_compress_256.c: #ifndef _ESSENCE_API_H_
essence_compress_256.c: ^~~~~~~~~~~~~~~
essence_compress_256.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
essence_compress_256.c: #define _ESSENCE_H_API_
essence_compress_256.c: ^~~~~~~~~~~~~~~
essence_compress_256.c: _ESSENCE_API_H_
essence_compress_256.c: 1 warning generated.
essence_compress_256_dual.c: In file included from essence_compress_256_dual.c:11:
essence_compress_256_dual.c: In file included from ./essence.h:11:
essence_compress_256_dual.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
essence_compress_256_dual.c: #ifndef _ESSENCE_API_H_
essence_compress_256_dual.c: ^~~~~~~~~~~~~~~
essence_compress_256_dual.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
essence_compress_256_dual.c: #define _ESSENCE_H_API_
essence_compress_256_dual.c: ^~~~~~~~~~~~~~~
essence_compress_256_dual.c: _ESSENCE_API_H_
essence_compress_256_dual.c: 1 warning generated.
essence_compress_512.c: In file included from essence_compress_512.c:10:
essence_compress_512.c: In file included from ./essence.h:11:
essence_compress_512.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
essence_compress_512.c: #ifndef _ESSENCE_API_H_
essence_compress_512.c: ^~~~~~~~~~~~~~~
essence_compress_512.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
essence_compress_512.c: #define _ESSENCE_H_API_
essence_compress_512.c: ^~~~~~~~~~~~~~~
essence_compress_512.c: _ESSENCE_API_H_
essence_compress_512.c: 1 warning generated.
hash.c: In file included from hash.c:2:
hash.c: ./essence_api.h:13:9: warning: '_ESSENCE_API_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
hash.c: #ifndef _ESSENCE_API_H_
hash.c: ^~~~~~~~~~~~~~~
hash.c: ./essence_api.h:14:9: note: '_ESSENCE_H_API_' is defined here; did you mean '_ESSENCE_API_H_'?
hash.c: #define _ESSENCE_H_API_
hash.c: ^~~~~~~~~~~~~~~
hash.c: _ESSENCE_API_H_
hash.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments gcc
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments gcc
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments gcc
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments gcc
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments gcc
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments gcc
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments gcc
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments gcc
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments gcc
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments gcc