Implementation notes: amd64, rumba5, crypto_hash/essence384

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20171218
Operation: crypto_hash
Primitive: essence384
TimeImplementationCompilerBenchmark dateSUPERCOP version
49472gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2018051520171218
49568gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2018051520171218
49824gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2018051520171218
49920gccgcc -march=k8 -O3 -fomit-frame-pointer2018051520171218
50784gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2018051520171218
50912gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2018051520171218
50976gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2018051520171218
51072gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2018051520171218
51200gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2018051520171218
51232gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2018051520171218
51296gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018051520171218
51328gccgcc -funroll-loops -O3 -fomit-frame-pointer2018051520171218
51328gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2018051520171218
51392gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2018051520171218
51424gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018051520171218
51456gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2018051520171218
51456gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2018051520171218
51488gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2018051520171218
51840gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2018051520171218
52256gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2018051520171218
52256gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2018051520171218
52320gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2018051520171218
52384gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2018051520171218
52544gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2018051520171218
52928gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2018051520171218
52992gccgcc -funroll-loops -O2 -fomit-frame-pointer2018051520171218
53056gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2018051520171218
53120gccgcc -O3 -fomit-frame-pointer2018051520171218
53216gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2018051520171218
53216gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2018051520171218
53216gccgcc -m64 -O3 -fomit-frame-pointer2018051520171218
53216gccgcc -march=barcelona -O3 -fomit-frame-pointer2018051520171218
53504gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2018051520171218
53504gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2018051520171218
53568gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2018051520171218
54240gccgcc -m64 -O2 -fomit-frame-pointer2018051520171218
54272gccgcc -O2 -fomit-frame-pointer2018051520171218
54304gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2018051520171218
54368gccgcc -march=k8 -O2 -fomit-frame-pointer2018051520171218
54464gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2018051520171218
54496gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2018051520171218
54496gccgcc -march=barcelona -O2 -fomit-frame-pointer2018051520171218
54560gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2018051520171218
54624gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2018051520171218
54816gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2018051520171218
55808gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2018051520171218
55840gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2018051520171218
55840gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2018051520171218
55840gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2018051520171218
55840gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2018051520171218
55872gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2018051520171218
55872gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2018051520171218
55872gccgcc -march=nocona -O3 -fomit-frame-pointer2018051520171218
55968gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2018051520171218
57024gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2018051520171218
57088gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2018051520171218
57696gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2018051520171218
58752gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2018051520171218
58848gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2018051520171218
58912gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2018051520171218
58944gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2018051520171218
59040gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2018051520171218
59040gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2018051520171218
59072gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2018051520171218
59168gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2018051520171218
59232gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2018051520171218
59296gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2018051520171218
59296gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2018051520171218
59328gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2018051520171218
59744gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2018051520171218
59776gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2018051520171218
59776gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2018051520171218
59808gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2018051520171218
59904gccgcc -funroll-loops -Os -fomit-frame-pointer2018051520171218
60224gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2018051520171218
60224gccgcc -m64 -Os -fomit-frame-pointer2018051520171218
60288gccgcc -funroll-loops -O -fomit-frame-pointer2018051520171218
60288gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2018051520171218
60320gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2018051520171218
60384gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2018051520171218
60416gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2018051520171218
60416gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2018051520171218
60448gccgcc -Os -fomit-frame-pointer2018051520171218
60512gccgcc -march=barcelona -Os -fomit-frame-pointer2018051520171218
60736gccgcc -march=k8 -Os -fomit-frame-pointer2018051520171218
60768gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2018051520171218
61280gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2018051520171218
61344gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2018051520171218
61344gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2018051520171218
63296gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018051520171218
63296gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018051520171218
63360gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2018051520171218
63488gccclang -O3 -fomit-frame-pointer -Qunused-arguments2018051520171218
66240gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2018051520171218
67200gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2018051520171218
67392gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2018051520171218
72352gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2018051520171218
72384gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2018051520171218
72960gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2018051520171218
75456gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2018051520171218
75488gccgcc -march=nocona -O2 -fomit-frame-pointer2018051520171218
75744gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2018051520171218
75936gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2018051520171218
76000gccgcc -march=nocona -Os -fomit-frame-pointer2018051520171218
76128gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2018051520171218
76128gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2018051520171218
77056gccgcc -m64 -march=k8 -O -fomit-frame-pointer2018051520171218
77088gccgcc -march=k8 -O -fomit-frame-pointer2018051520171218
78016gccgcc -march=barcelona -O -fomit-frame-pointer2018051520171218
78048gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2018051520171218
78176gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2018051520171218
79936gccgcc -m64 -march=nocona -O -fomit-frame-pointer2018051520171218
80128gccgcc -march=nocona -O -fomit-frame-pointer2018051520171218
80384gccgcc -m64 -O -fomit-frame-pointer2018051520171218
80416gccgcc -fno-schedule-insns -O -fomit-frame-pointer2018051520171218
80544gccgcc -O -fomit-frame-pointer2018051520171218
80992gccgcc -m64 -march=core2 -O -fomit-frame-pointer2018051520171218
94176gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2018051520171218
241856gccgcc2018051520171218
242272gccgcc -funroll-loops2018051520171218
248832gcccc2018051520171218

Compiler output

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