Implementation notes: amd64, skylake, crypto_hash/essence384

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: essence384
TimeImplementationCompilerBenchmark dateSUPERCOP version
52492gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
52616gccgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
53210gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
53518gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
53554gccgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
53630gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
53662gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
53706gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
53734gccgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
53808gccgcc -O3 -fomit-frame-pointer2016121520161026
53860gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
53884gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
53910gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
53912gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
53978gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
54024gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
54050gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
54072gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
54154gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
54300gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
54306gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
54388gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
54390gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
54394gccgcc -m64 -O3 -fomit-frame-pointer2016121520161026
54404gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
54434gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
54454gccgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
54480gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
54484gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
54698gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
54700gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
54732gccgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
54778gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
54822gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
54876gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
55314gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
55320gccgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
55328gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
55346gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
55368gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
55468gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
55486gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
55526gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
55606gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
56502gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
56790gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
56906gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
57028gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
57348gccgcc -O2 -fomit-frame-pointer2016121520161026
57360gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
57410gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
57650gccclang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
57660gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
57860gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
57878gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
57884gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
57914gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
57986gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
58050gccgcc -m64 -O2 -fomit-frame-pointer2016121520161026
58252gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
58304gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
58338gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
58808gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
58848gccgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
58850gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
58870gccgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
59232gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
59450gccgcc -Os -fomit-frame-pointer2016121520161026
59508gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
59542gccgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
59584gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
59748gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
59836gccgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
60052gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
60066gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
60224gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
60232gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
60246gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
60358gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
60496gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
60582gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
60652gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
60804gccgcc -m64 -Os -fomit-frame-pointer2016121520161026
60924gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
61106gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
61174gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
61216gccgcc -march=k8 -O -fomit-frame-pointer2016121520161026
61220gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
61278gccgcc -m64 -O -fomit-frame-pointer2016121520161026
61748gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
61776gccgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
61868gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
61966gccgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
62038gccgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
62158gccgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
62160gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
62306gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
62362gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
62410gccgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
62502gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
62534gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
62558gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
62606gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
62686gccgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
62750gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
62864gccgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
62986gccgcc -O -fomit-frame-pointer2016121520161026
63298gccgcc -march=nocona -O -fomit-frame-pointer2016121520161026
63390gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
63650gccgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
63766gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
63984gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
64726gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
65066gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
65424gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
66184gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
66556gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
66562gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
204642gccgcc -funroll-loops2016121520161026
205022gcccc2016121520161026
205746gccgcc2016121520161026

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