Implementation notes: amd64, cryptothinkx, crypto_hash/essence256

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: essence256
TimeImplementationCompilerBenchmark dateSUPERCOP version
61527gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017013120170105
62112gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
62571gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017013120170105
62682gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017013120170105
62682gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
62688gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017013120170105
62730gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
62733gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
63243gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017013120170105
63762gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017013120170105
63783gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017013120170105
65556gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017013120170105
65613gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017013120170105
65697gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
65790gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
65793gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017013120170105
65853gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017013120170105
65871gccgcc -funroll-loops -O3 -fomit-frame-pointer2017013120170105
65955gccgcc -march=k8 -O3 -fomit-frame-pointer2017013120170105
65985gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
66006gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017013120170105
66177gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66339gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
66351gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66360gccgcc -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66441gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66561gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
66720gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
66849gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017013120170105
66867gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
66918gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017013120170105
66939gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
67089gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
67713gccgcc -march=nocona -O3 -fomit-frame-pointer2017013120170105
68469gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017013120170105
68481gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017013120170105
68982gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
69141gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
69513gccgcc -m64 -O3 -fomit-frame-pointer2017013120170105
70035gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017013120170105
70374gccgcc -funroll-loops -O2 -fomit-frame-pointer2017013120170105
71283gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
71397gccclang -O3 -fomit-frame-pointer -Qunused-arguments2017013120170105
71544gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017013120170105
72657gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
73560gccgcc -funroll-loops -O -fomit-frame-pointer2017013120170105
73593gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
73596gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2017013120170105
73677gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
73689gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017013120170105
73772gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017013120170105
73836gccgcc -O3 -fomit-frame-pointer2017013120170105
74352gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
74652gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017013120170105
76329gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017013120170105
76719gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017013120170105
76776gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017013120170105
79650gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017013120170105
79959gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017013120170105
80976gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
81228gccgcc -m64 -O2 -fomit-frame-pointer2017013120170105
81399gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
81582gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017013120170105
82899gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
83272gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017013120170105
83649gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
83700gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
84762gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017013120170105
86865gccgcc -O2 -fomit-frame-pointer2017013120170105
87036gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017013120170105
87453gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017013120170105
87594gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017013120170105
87909gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017013120170105
87930gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017013120170105
88071gccgcc -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
88944gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
89004gccgcc -march=k8 -O2 -fomit-frame-pointer2017013120170105
89487gccgcc -march=nocona -O2 -fomit-frame-pointer2017013120170105
89622gccgcc -march=barcelona -O2 -fomit-frame-pointer2017013120170105
89631gccgcc -m64 -march=core2 -O -fomit-frame-pointer2017013120170105
89739gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017013120170105
90288gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017013120170105
90928gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017013120170105
91542gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2017013120170105
92121gccgcc -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
92244gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017013120170105
92565gccgcc -march=barcelona -O -fomit-frame-pointer2017013120170105
92820gccgcc -m64 -O -fomit-frame-pointer2017013120170105
93588gccgcc -O -fomit-frame-pointer2017013120170105
93804gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
95454gccgcc -march=nocona -O -fomit-frame-pointer2017013120170105
95940gccgcc -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
96606gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017013120170105
96828gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
96900gccgcc -march=nocona -Os -fomit-frame-pointer2017013120170105
96975gccgcc -funroll-loops -Os -fomit-frame-pointer2017013120170105
97164gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017013120170105
97200gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
97227gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
97242gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
98253gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017013120170105
99219gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017013120170105
99546gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017013120170105
100392gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
100434gccgcc -march=k8 -Os -fomit-frame-pointer2017013120170105
101028gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017013120170105
103458gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2017013120170105
103950gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017013120170105
103989gccgcc -march=barcelona -Os -fomit-frame-pointer2017013120170105
104007gccgcc -m64 -Os -fomit-frame-pointer2017013120170105
104640gccgcc -march=k8 -O -fomit-frame-pointer2017013120170105
106292gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017013120170105
106467gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
106560gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017013120170105
106862gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
107361gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
107478gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017013120170105
108504gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017013120170105
108816gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017013120170105
111700gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
115230gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017013120170105
131208gccgcc -Os -fomit-frame-pointer2017013120170105
294903gccgcc2017013120170105
295686gcccc2017013120170105
297351gccgcc -funroll-loops2017013120170105

Compiler output

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