Implementation notes: amd64, skylake, crypto_hash/essence512

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: essence512
TimeImplementationCompilerBenchmark dateSUPERCOP version
52334gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
52584gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
53078gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
53134gccgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
53320gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
53448gccgcc -O3 -fomit-frame-pointer2016121520161026
53602gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
53736gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
53810gccgcc -m64 -O3 -fomit-frame-pointer2016121520161026
53832gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
53974gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
53986gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
54012gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
54016gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
54036gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
54052gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
54094gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
54134gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
54152gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
54174gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
54188gccgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
54250gccgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
54292gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
54396gccgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
54432gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
54436gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
54456gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
54532gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
54642gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
54674gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
54676gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
54728gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
54730gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
55016gccgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
55026gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
55030gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
55094gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
55102gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
55162gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
55276gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
55386gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
55388gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
55936gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
56072gccgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
56184gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
56768gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
56774gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
56854gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
56860gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
56906gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
57166gccgcc -m64 -O2 -fomit-frame-pointer2016121520161026
57402gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
57458gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
57520gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
57604gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
57630gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
57684gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
57704gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
57828gccgcc -O2 -fomit-frame-pointer2016121520161026
57840gccclang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
57876gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
58080gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
58132gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
58264gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
58544gccgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
58618gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
58654gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
58660gccgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
59142gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
59586gccgcc -m64 -Os -fomit-frame-pointer2016121520161026
59794gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
59804gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
59868gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
59878gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
59976gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
60264gccgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
60342gccgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
60352gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
60430gccgcc -Os -fomit-frame-pointer2016121520161026
60466gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
60522gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
60776gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
60956gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
61030gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
61182gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
61242gccgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
61312gccgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
61594gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
61720gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
61740gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
61776gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
61986gccgcc -march=k8 -O -fomit-frame-pointer2016121520161026
62018gccgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
62110gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
62334gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
62340gccgcc -m64 -O -fomit-frame-pointer2016121520161026
62386gccgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
62402gccgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
62440gccgcc -march=nocona -O -fomit-frame-pointer2016121520161026
62494gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
62562gccgcc -O -fomit-frame-pointer2016121520161026
62586gccgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
62822gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
62830gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
62884gccgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
63040gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
63080gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
63140gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
63190gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
63266gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
64068gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
64228gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
64676gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
65272gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
65772gccgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
66198gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
66924gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
66934gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
204438gcccc2016121520161026
206174gccgcc -funroll-loops2016121520161026
206282gccgcc2016121520161026

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