Implementation notes: amd64, cryptothinkx, crypto_hash/essence384

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: essence384
TimeImplementationCompilerBenchmark dateSUPERCOP version
46254gccgcc -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
46464gccgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017013120170105
46809gccgcc -O3 -fomit-frame-pointer2017013120170105
46977gccgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017013120170105
47139gccgcc -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
47157gccgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017013120170105
47304gccgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017013120170105
47532gccgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017013120170105
47832gccgcc -m64 -march=core2 -O3 -fomit-frame-pointer2017013120170105
47943gccgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2017013120170105
47946gccgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017013120170105
47949gccgcc -funroll-loops -O2 -fomit-frame-pointer2017013120170105
48036gccgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
48195gccgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017013120170105
48282gccgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017013120170105
48327gccclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
48423gccgcc -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48483gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48498gccgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
48621gccgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48627gccgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017013120170105
48681gccclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
48696gccgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017013120170105
48798gccclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2017013120170105
48843gccclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017013120170105
48849gccgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
48870gccgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017013120170105
48921gccclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2017013120170105
48924gccgcc -march=k8 -O3 -fomit-frame-pointer2017013120170105
49188gccgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017013120170105
49257gccgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017013120170105
49272gccclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2017013120170105
49320gccgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017013120170105
49368gccgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
49515gccgcc -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
49677gccgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017013120170105
49686gccgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017013120170105
49968gccgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2017013120170105
49983gccgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017013120170105
50049gccgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
50226gccgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017013120170105
50289gccgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2017013120170105
50544gccclang -O3 -fomit-frame-pointer -Qunused-arguments2017013120170105
50931gccgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017013120170105
51003gccgcc -funroll-loops -O -fomit-frame-pointer2017013120170105
51024gccgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
51042gccgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
51150gccgcc -m64 -O3 -fomit-frame-pointer2017013120170105
51447gccgcc -m64 -O2 -fomit-frame-pointer2017013120170105
51714gccgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017013120170105
51843gccgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
51957gccgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017013120170105
52437gccgcc -m64 -march=core2 -O2 -fomit-frame-pointer2017013120170105
52848gccgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017013120170105
52986gccclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
53022gccgcc -march=nocona -O3 -fomit-frame-pointer2017013120170105
53088gccclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
53475gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
53799gccgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017013120170105
53967gccgcc -O2 -fomit-frame-pointer2017013120170105
54429gccgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017013120170105
54543gccgcc -m64 -march=k8 -O2 -fomit-frame-pointer2017013120170105
54792gccclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017013120170105
54888gccgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2017013120170105
54957gccgcc -march=barcelona -O2 -fomit-frame-pointer2017013120170105
55068gccgcc -march=nocona -O2 -fomit-frame-pointer2017013120170105
55965gccgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017013120170105
56301gccgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
56367gccgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2017013120170105
56451gccgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2017013120170105
56541gccgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017013120170105
56556gccgcc -m64 -Os -fomit-frame-pointer2017013120170105
56589gccgcc -funroll-loops -Os -fomit-frame-pointer2017013120170105
56601gccgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017013120170105
56649gccgcc -m64 -O -fomit-frame-pointer2017013120170105
56661gccgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2017013120170105
56835gccgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017013120170105
56895gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
56973gccgcc -m64 -march=nocona -O2 -fomit-frame-pointer2017013120170105
57147gccgcc -march=k8 -O2 -fomit-frame-pointer2017013120170105
57489gccgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017013120170105
57828gccgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017013120170105
57930gccgcc -fno-schedule-insns -O2 -fomit-frame-pointer2017013120170105
58416gccgcc -march=k8 -Os -fomit-frame-pointer2017013120170105
58512gccgcc -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
59142gccgcc -m64 -march=corei7 -Os -fomit-frame-pointer2017013120170105
59208gccgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017013120170105
59247gccgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2017013120170105
59276gccgcc -funroll-loops -m64 -O -fomit-frame-pointer2017013120170105
59388gccgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017013120170105
59640gccgcc -march=barcelona -O -fomit-frame-pointer2017013120170105
59811gccgcc -m64 -march=core2 -Os -fomit-frame-pointer2017013120170105
59871gccgcc -m64 -march=nocona -O -fomit-frame-pointer2017013120170105
59892gccgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2017013120170105
59892gccgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017013120170105
59904gccgcc -O -fomit-frame-pointer2017013120170105
60456gccgcc -march=nocona -O -fomit-frame-pointer2017013120170105
60549gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
60555gccgcc -march=k8 -O -fomit-frame-pointer2017013120170105
60648gccgcc -m64 -march=core2 -O -fomit-frame-pointer2017013120170105
60831gccgcc -m64 -march=corei7 -O -fomit-frame-pointer2017013120170105
60880gccgcc -funroll-loops -O3 -fomit-frame-pointer2017013120170105
61290gccgcc -m64 -march=k8 -O -fomit-frame-pointer2017013120170105
61953gccgcc -m64 -march=barcelona -O -fomit-frame-pointer2017013120170105
62464gccgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2017013120170105
62886gccgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017013120170105
63330gccgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2017013120170105
63789gccgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017013120170105
64707gccgcc -fno-schedule-insns -Os -fomit-frame-pointer2017013120170105
64824gccgcc -funroll-loops -m64 -Os -fomit-frame-pointer2017013120170105
64878gccgcc -fno-schedule-insns -O -fomit-frame-pointer2017013120170105
65056gccgcc -march=barcelona -Os -fomit-frame-pointer2017013120170105
66668gccgcc -Os -fomit-frame-pointer2017013120170105
67287gccgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017013120170105
67426gccgcc -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
67706gccgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2017013120170105
67852gccgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017013120170105
71460gccgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017013120170105
71703gccgcc -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
74031gccgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017013120170105
74208gccgcc -march=nocona -Os -fomit-frame-pointer2017013120170105
74880gccgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017013120170105
195096gccgcc -funroll-loops2017013120170105
198447gcccc2017013120170105
227568gccgcc2017013120170105

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