Implementation notes: amd64, cryptothinkx, crypto_hash/essence224

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: essence224
TimeImplementationCompilerBenchmark dateSUPERCOP version
61950gccgcc -march=k8 -O3 -fomit-frame-pointer2017013120170105
62649gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017013120170105
62685gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
63102gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017013120170105
63105gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017013120170105
63411gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017013120170105
63510gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
63762gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017013120170105
63774gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017013120170105
64143gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017013120170105
64311gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017013120170105
64314gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
64548gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
64686gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
64710gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017013120170105
65040gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017013120170105
65232gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017013120170105
65409gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017013120170105
65469gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
65550gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
65760gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017013120170105
65781gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
65820gccgcc -funroll-loops -O3 -fomit-frame-pointer2017013120170105
65895gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017013120170105
65955gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
66021gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017013120170105
66342gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66348gccgcc -march=barcelona -O3 -fomit-frame-pointer2017013120170105
66414gccgcc -funroll-loops -O2 -fomit-frame-pointer2017013120170105
66468gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
66675gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
66786gccclang -O3 -fomit-frame-pointer -Qunused-arguments2017013120170105
66855gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017013120170105
66885gccgcc -O3 -fomit-frame-pointer2017013120170105
66957gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
67044gccgcc -march=nocona -O3 -fomit-frame-pointer2017013120170105
67530gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
67569gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
68973gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
68979gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
71247gccgcc -m64 -O3 -fomit-frame-pointer2017013120170105
71529gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017013120170105
73446gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
73569gccgcc -funroll-loops -O -fomit-frame-pointer2017013120170105
73584gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
73608gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017013120170105
73647gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
73656gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017013120170105
74007gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017013120170105
75027gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017013120170105
75848gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017013120170105
75909gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017013120170105
76144gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017013120170105
76839gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017013120170105
77241gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017013120170105
77328gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
78506gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
78906gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017013120170105
78972gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017013120170105
79245gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017013120170105
79257gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017013120170105
79713gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017013120170105
79730gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
79755gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017013120170105
81525gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2017013120170105
81567gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
81921gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017013120170105
81963gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017013120170105
83613gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
83703gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
83712gccgcc -march=barcelona -O2 -fomit-frame-pointer2017013120170105
84069gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017013120170105
84507gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017013120170105
85299gccgcc -march=nocona -O2 -fomit-frame-pointer2017013120170105
87174gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017013120170105
87354gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017013120170105
87996gccgcc -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
88623gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
90783gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017013120170105
90801gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017013120170105
91938gccgcc -m64 -O2 -fomit-frame-pointer2017013120170105
92044gccgcc -march=k8 -O2 -fomit-frame-pointer2017013120170105
92694gccgcc -m64 -O -fomit-frame-pointer2017013120170105
92847gccgcc -O -fomit-frame-pointer2017013120170105
93522gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2017013120170105
93750gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017013120170105
93798gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
94215gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017013120170105
94602gccgcc -march=barcelona -O -fomit-frame-pointer2017013120170105
94620gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
95805gccgcc -m64 -march=core2 -O -fomit-frame-pointer2017013120170105
96298gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
96804gccgcc -march=nocona -Os -fomit-frame-pointer2017013120170105
96976gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
97038gccgcc -funroll-loops -Os -fomit-frame-pointer2017013120170105
97047gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
97137gccgcc -march=barcelona -Os -fomit-frame-pointer2017013120170105
97179gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
97245gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
97422gccgcc -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
99588gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017013120170105
100144gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017013120170105
100500gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
101084gccgcc -march=nocona -O -fomit-frame-pointer2017013120170105
102909gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
103052gccgcc -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
103131gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017013120170105
103683gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017013120170105
103782gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
103908gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017013120170105
103926gccgcc -march=k8 -Os -fomit-frame-pointer2017013120170105
104034gccgcc -Os -fomit-frame-pointer2017013120170105
104043gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2017013120170105
109204gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017013120170105
111680gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
115856gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
117604gccgcc -march=k8 -O -fomit-frame-pointer2017013120170105
118172gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017013120170105
120916gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017013120170105
121688gccgcc -m64 -Os -fomit-frame-pointer2017013120170105
193728gccgcc -O2 -fomit-frame-pointer2017013120170105
296232gccgcc2017013120170105
296997gccgcc -funroll-loops2017013120170105
307404gcccc2017013120170105
451737gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017013120170105

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