Implementation notes: amd64, skylake, crypto_hash/essence224

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_hash
Primitive: essence224
TimeImplementationCompilerBenchmark dateSUPERCOP version
72166gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121520161026
72316gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121520161026
72422gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121520161026
72670gccgcc -O3 -fomit-frame-pointer2016121520161026
72700gccgcc -m64 -O3 -fomit-frame-pointer2016121520161026
73214gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121520161026
73334gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
73378gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121520161026
73674gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
73980gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
74008gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
74042gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121520161026
74072gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
74114gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121520161026
74166gccgcc -march=k8 -O3 -fomit-frame-pointer2016121520161026
74216gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
74264gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121520161026
74278gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
74378gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121520161026
74416gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121520161026
74516gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121520161026
74680gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121520161026
74728gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121520161026
74792gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121520161026
74814gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121520161026
74848gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121520161026
74958gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121520161026
75210gccgcc -funroll-loops -O3 -fomit-frame-pointer2016121520161026
75388gccgcc -march=barcelona -O3 -fomit-frame-pointer2016121520161026
75414gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121520161026
75464gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121520161026
75486gccgcc -march=nocona -O3 -fomit-frame-pointer2016121520161026
75544gccgcc -funroll-loops -O2 -fomit-frame-pointer2016121520161026
75734gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121520161026
75950gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121520161026
75958gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
75998gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
76022gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121520161026
76324gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
76504gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121520161026
76848gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121520161026
76998gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121520161026
78236gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
78370gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
78530gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121520161026
78940gccclang -O3 -fomit-frame-pointer -Qunused-arguments2016121520161026
79386gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121520161026
79540gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121520161026
79676gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121520161026
79946gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121520161026
80388gccgcc -funroll-loops -O -fomit-frame-pointer2016121520161026
80426gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
80718gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121520161026
80996gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
81866gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121520161026
81932gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121520161026
81982gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
82114gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121520161026
82224gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121520161026
82350gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
86030gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121520161026
86930gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121520161026
86992gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121520161026
87800gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121520161026
87828gccgcc -march=nocona -O2 -fomit-frame-pointer2016121520161026
90126gccgcc -m64 -Os -fomit-frame-pointer2016121520161026
90150gccgcc -Os -fomit-frame-pointer2016121520161026
90270gccgcc -march=k8 -Os -fomit-frame-pointer2016121520161026
90282gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
90514gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
91102gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121520161026
91170gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121520161026
91314gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121520161026
91314gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121520161026
91348gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121520161026
91378gccgcc -funroll-loops -Os -fomit-frame-pointer2016121520161026
91400gccgcc -march=k8 -O2 -fomit-frame-pointer2016121520161026
91474gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121520161026
91500gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121520161026
91534gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121520161026
91626gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121520161026
91644gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121520161026
91756gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121520161026
91844gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121520161026
92140gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121520161026
92140gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121520161026
92206gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121520161026
92282gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121520161026
92328gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
92350gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121520161026
92354gccgcc -march=barcelona -Os -fomit-frame-pointer2016121520161026
92524gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121520161026
92606gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121520161026
92640gccgcc -m64 -O2 -fomit-frame-pointer2016121520161026
92702gccgcc -march=nocona -Os -fomit-frame-pointer2016121520161026
92818gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121520161026
92972gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121520161026
93046gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121520161026
93134gccgcc -march=nocona -O -fomit-frame-pointer2016121520161026
93154gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
93198gccgcc -m64 -march=core2 -O -fomit-frame-pointer2016121520161026
93234gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121520161026
93256gccgcc -march=barcelona -O -fomit-frame-pointer2016121520161026
93320gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121520161026
93352gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121520161026
93436gccgcc -O2 -fomit-frame-pointer2016121520161026
93492gccgcc -march=k8 -O -fomit-frame-pointer2016121520161026
93680gccgcc -m64 -march=k8 -O -fomit-frame-pointer2016121520161026
93692gccgcc -m64 -march=nocona -O -fomit-frame-pointer2016121520161026
94164gccgcc -m64 -O -fomit-frame-pointer2016121520161026
94374gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121520161026
94476gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121520161026
94870gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121520161026
95328gccgcc -fno-schedule-insns -O -fomit-frame-pointer2016121520161026
95456gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121520161026
95792gccgcc -O -fomit-frame-pointer2016121520161026
97808gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121520161026
97934gccgcc -march=barcelona -O2 -fomit-frame-pointer2016121520161026
321402gccgcc -funroll-loops2016121520161026
321694gccgcc2016121520161026
322874gcccc2016121520161026

Compiler output

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