Implementation notes: amd64, cryptothinkx, crypto_hash/fugue2

Computer: cryptothinkx
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_hash
Primitive: fugue2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
20733? ? ?? ? ?cop_opt32clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017013120170105
20805? ? ?? ? ?cop_opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2017013120170105
20808? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017013120170105
20853? ? ?? ? ?cop_opt32gcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017013120170105
20928? ? ?? ? ?cop_opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017013120170105
21180? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017013120170105
21222? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2017013120170105
21240? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017013120170105
21255? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2017013120170105
21294? ? ?? ? ?cop_opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2017013120170105
21294? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017013120170105
21303? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2017013120170105
21309? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017013120170105
21342? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2017013120170105
21345? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2017013120170105
21351? ? ?? ? ?cop_opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2017013120170105
21354? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017013120170105
21357? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017013120170105
21363? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017013120170105
21372? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017013120170105
21375? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017013120170105
21378? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017013120170105
21378? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2017013120170105
21387? ? ?? ? ?cop_opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017013120170105
21387? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2017013120170105
21417? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017013120170105
21420? ? ?? ? ?cop_opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017013120170105
21435? ? ?? ? ?cop_opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2017013120170105
21504? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017013120170105
21525? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017013120170105
21579? ? ?? ? ?cop_opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017013120170105
21603? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2017013120170105
21603? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017013120170105
21612? ? ?? ? ?cop_opt32gcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017013120170105
21621? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017013120170105
21624? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx2_-O_-fomit-frame-pointer2017013120170105
21639? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-O3_-fomit-frame-pointer2017013120170105
21642? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017013120170105
21648? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017013120170105
21663? ? ?? ? ?cop_opt32gcc_-m64_-O2_-fomit-frame-pointer2017013120170105
21663? ? ?? ? ?cop_opt32gcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017013120170105
21672? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017013120170105
21696? ? ?? ? ?cop_opt32gcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017013120170105
21711? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2017013120170105
21714? ? ?? ? ?cop_opt32clang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2017013120170105
21714? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017013120170105
21723? ? ?? ? ?cop_opt32gcc_-march=nocona_-O3_-fomit-frame-pointer2017013120170105
21738? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017013120170105
21774? ? ?? ? ?cop_opt32gcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017013120170105
21921? ? ?? ? ?cop_opt32gcc_-m64_-O3_-fomit-frame-pointer2017013120170105
21930? ? ?? ? ?cop_opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2017013120170105
21936? ? ?? ? ?cop_opt32gcc_-O3_-fomit-frame-pointer2017013120170105
21942? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2017013120170105
21942? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2017013120170105
21972? ? ?? ? ?cop_opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017013120170105
21981? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017013120170105
21996? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7_-O_-fomit-frame-pointer2017013120170105
22029? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017013120170105
22032? ? ?? ? ?cop_opt32gcc_-march=k8_-O2_-fomit-frame-pointer2017013120170105
22044? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017013120170105
22053? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017013120170105
22053? ? ?? ? ?cop_opt32gcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017013120170105
22059? ? ?? ? ?cop_opt32gcc_-march=barcelona_-O2_-fomit-frame-pointer2017013120170105
22068? ? ?? ? ?cop_opt32gcc_-march=k8_-O_-fomit-frame-pointer2017013120170105
22071? ? ?? ? ?cop_opt32gcc_-m64_-march=k8_-O_-fomit-frame-pointer2017013120170105
22089? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017013120170105
22092? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017013120170105
22104? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017013120170105
22152? ? ?? ? ?cop_opt32gcc_-O_-fomit-frame-pointer2017013120170105
22170? ? ?? ? ?cop_opt32gcc_-m64_-O_-fomit-frame-pointer2017013120170105
22200? ? ?? ? ?cop_opt32gcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017013120170105
22218? ? ?? ? ?cop_opt32gcc_-march=k8_-O3_-fomit-frame-pointer2017013120170105
22221? ? ?? ? ?cop_opt32gcc_-march=nocona_-O_-fomit-frame-pointer2017013120170105
22224? ? ?? ? ?cop_opt32gcc_-march=barcelona_-O3_-fomit-frame-pointer2017013120170105
22236? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017013120170105
22260? ? ?? ? ?cop_opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017013120170105
22272? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017013120170105
22305? ? ?? ? ?cop_opt32gcc_-m64_-march=k8_-O3_-fomit-frame-pointer2017013120170105
22371? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017013120170105
22422? ? ?? ? ?cop_opt32gcc_-O2_-fomit-frame-pointer2017013120170105
22431? ? ?? ? ?cop_opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017013120170105
22506? ? ?? ? ?cop_opt32gcc_-march=nocona_-O2_-fomit-frame-pointer2017013120170105
22677? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-O_-fomit-frame-pointer2017013120170105
22767? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017013120170105
22794? ? ?? ? ?cop_opt32gcc_-march=barcelona_-O_-fomit-frame-pointer2017013120170105
22800? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2017013120170105
22809? ? ?? ? ?cop_opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2017013120170105
22815? ? ?? ? ?cop_opt32clang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017013120170105
22854? ? ?? ? ?cop_opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2017013120170105
22857? ? ?? ? ?cop_opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017013120170105
22869? ? ?? ? ?cop_opt32clang_-O3_-fwrapv_-march=x86-64_-mcpu=core-avx2_-mavx2_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2017013120170105
22869? ? ?? ? ?cop_opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2017013120170105
22872? ? ?? ? ?cop_opt32clang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017013120170105
23022? ? ?? ? ?cop_opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2017013120170105
25722? ? ?? ? ?cop_opt32gcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017013120170105
25740? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017013120170105
25752? ? ?? ? ?cop_opt32gcc_-march=nocona_-Os_-fomit-frame-pointer2017013120170105
25800? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2017013120170105
25911? ? ?? ? ?cop_opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2017013120170105
25989? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017013120170105
26022? ? ?? ? ?cop_opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2017013120170105
26025? ? ?? ? ?cop_opt32gcc_-m64_-Os_-fomit-frame-pointer2017013120170105
26028? ? ?? ? ?cop_opt32gcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017013120170105
26106? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017013120170105
26145? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017013120170105
26163? ? ?? ? ?cop_opt32gcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017013120170105
26202? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-Os_-fomit-frame-pointer2017013120170105
26217? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017013120170105
26490? ? ?? ? ?cop_opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017013120170105
26664? ? ?? ? ?cop_opt32gcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017013120170105
26685? ? ?? ? ?cop_opt32gcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017013120170105
26751? ? ?? ? ?cop_opt32gcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017013120170105
26763? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017013120170105
26766? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017013120170105
26808? ? ?? ? ?cop_opt32gcc_-march=barcelona_-Os_-fomit-frame-pointer2017013120170105
26814? ? ?? ? ?cop_opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2017013120170105
26814? ? ?? ? ?cop_opt32gcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017013120170105
26859? ? ?? ? ?cop_opt32gcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017013120170105
26877? ? ?? ? ?cop_opt32gcc_-Os_-fomit-frame-pointer2017013120170105
26913? ? ?? ? ?cop_opt32gcc_-march=k8_-Os_-fomit-frame-pointer2017013120170105
27033? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2017013120170105
27060? ? ?? ? ?cop_opt32gcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017013120170105
60003? ? ?? ? ?cop_opt32cc2017013120170105
62127? ? ?? ? ?cop_opt32gcc_-funroll-loops2017013120170105
62256? ? ?? ? ?cop_opt32gcc2017013120170105

Compiler output

Implementation: crypto_hash/fugue2/cop_opt32
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:33:28: warning: signed shift result (0x3F743CBE000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~~
hash.c: hash.c:33:28: warning: signed shift result (0x3F743CBE00) requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: ...
hash.c: ./aestab_t.h:19:26: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~~
hash.c: hash.c:33:70: warning: signed shift result (0x4580A1C600) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c: ^~~~~~~~~~~~~~~~~~~
hash.c: ./aestab_t.h:19:36: note: expanded from macro 'HO2BE_4'
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ~~^ ~
hash.c: 6 warnings generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments cop_opt32
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cop_opt32
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cop_opt32
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cop_opt32
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments cop_opt32