Implementation notes: aarch64, supercoplxc, crypto_hash/fugue256

Computer: supercoplxc
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: fugue256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6392053984 0 065657 896 760ANSI_opt64gcc_-O3_-fomit-frame-pointer2019090120190816
6424053784 0 064249 896 744ANSI_opt64gcc_-O2_-fomit-frame-pointer2019090120190816
6432053856 0 066393 896 744ANSI_opt64gcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
6456053880 0 066937 896 760ANSI_opt64gcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
6992051392 0 061161 880 736ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
7000053296 0 066313 896 760ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
7008051392 0 061161 880 736ANSI_opt64gcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
7040043356 0 056417 896 760ANSI_opt32gcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
7056043224 0 053697 896 744ANSI_opt32gcc_-O2_-fomit-frame-pointer2019090120190816
7056033020 0 046323 904 760sphlibgcc_-funroll-loops_-O3_-fomit-frame-pointer2019090120190816
7104032620 0 044547 904 760sphlibgcc_-O3_-fomit-frame-pointer2019090120190816
7112042164 0 055185 896 760ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
7120043336 0 055881 896 744ANSI_opt32gcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
7152043436 0 055121 896 760ANSI_opt32gcc_-O3_-fomit-frame-pointer2019090120190816
7208031184 0 044124 808 768sphlibclang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7216031184 0 044124 808 768sphlibclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7232042456 0 055089 896 744ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
7232031184 0 044068 808 768sphlibclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7248031184 0 044124 808 768sphlibclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7288033504 0 046210 896 744sphlibgcc_-funroll-loops_-O2_-fomit-frame-pointer2019090120190816
7304042800 0 055654 800 768ANSI_opt32clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
7392050468 0 063270 800 768ANSI_opt64clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7392050468 0 063326 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7392050468 0 063326 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7400050468 0 063326 800 768ANSI_opt64clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7408032420 0 045683 904 760sphlibgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
7440053468 0 066097 896 744ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
7472041900 0 051673 880 736ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
7480041900 0 051673 880 736ANSI_opt32gcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
7488032784 0 043426 896 744sphlibgcc_-O2_-fomit-frame-pointer2019090120190816
7520032672 0 045474 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
7568054620 0 067478 800 768ANSI_opt64clang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
7704031048 0 043988 808 768sphlibclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019090120190816
7744040888 0 053742 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx2_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7744040888 0 053742 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7752040888 0 053694 800 768ANSI_opt32clang_-O3_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7752040888 0 053742 800 768ANSI_opt32clang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019090120190816
7896031776 0 041738 880 736sphlibgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
7936031776 0 041738 880 736sphlibgcc_-funroll-loops_-Os_-fomit-frame-pointer2019090120190816
8704031988 0 043899 904 760sphlibgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
8784031936 0 042522 896 744sphlibgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
8976051396 0 061105 880 736ANSI_opt64gcc_-Os_-fomit-frame-pointer2019090120190816
8976051396 0 061105 880 736ANSI_opt64gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
9048031836 0 041738 880 736sphlibgcc_-Os_-fomit-frame-pointer2019090120190816
9072031836 0 041738 880 736sphlibgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
9080053344 0 065001 896 760ANSI_opt64gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
9160042340 0 052761 896 744ANSI_opt32gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
9160042200 0 053857 896 760ANSI_opt32gcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019090120190816
9424053316 0 063729 896 744ANSI_opt64gcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019090120190816
10552041908 0 051617 880 736ANSI_opt32gcc_-Os_-fomit-frame-pointer2019090120190816
10552041908 0 051617 880 736ANSI_opt32gcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019090120190816
12680054744 0 065297 896 744ANSI_opt64gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
12688054744 0 065297 896 744ANSI_opt64gcc_-O_-fomit-frame-pointer2019090120190816
12728054848 0 068617 896 744ANSI_opt64gcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
12736054848 0 068617 896 744ANSI_opt64gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
13296035280 0 049210 896 744sphlibgcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
13296035280 0 049210 896 744sphlibgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
13304033940 0 044650 896 744sphlibgcc_-O_-fomit-frame-pointer2019090120190816
13304033940 0 044650 896 744sphlibgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
13560044924 0 058689 896 744ANSI_opt32gcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
13568044924 0 058689 896 744ANSI_opt32gcc_-funroll-loops_-O_-fomit-frame-pointer2019090120190816
13608044760 0 055313 896 744ANSI_opt32gcc_-O_-fomit-frame-pointer2019090120190816
13616044760 0 055313 896 744ANSI_opt32gcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019090120190816
43856080520 0 097522 880 744sphlibcc2019090120190816
43856080520 0 097522 880 744sphlibgcc2019090120190816
43872080520 0 097522 880 744sphlibgcc_-funroll-loops2019090120190816
462800123176 0 0139985 880 744ANSI_opt32gcc_-funroll-loops2019090120190816
465840123176 0 0139985 880 744ANSI_opt32gcc2019090120190816
471920123176 0 0139985 880 744ANSI_opt32cc2019090120190816
542240172636 0 0189449 880 744ANSI_opt64gcc2019090120190816
551360172636 0 0189449 880 744ANSI_opt64gcc_-funroll-loops2019090120190816
555440172636 0 0189449 880 744ANSI_opt64cc2019090120190816

Compiler output

Implementation: ANSI_opt32
Security model: unknown
Compiler: cc
hash.c: In file included from aestab.h:4,
hash.c: from fugue_256_code.h:13,
hash.c: from hash.c:7:
hash.c: hash.c: In function 'crypto_hash_fugue256_ANSI_opt32':
hash.c: aestab_t.h:19:26: warning: result of '1718686559 << 24' requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1718686559 << 8' requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:26: warning: result of '888717896 << 24' requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:33:67: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '888717896 << 8' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: ...

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc ANSI_opt32
gcc ANSI_opt32
gcc -O2 -fomit-frame-pointer ANSI_opt32
gcc -O3 -fomit-frame-pointer ANSI_opt32
gcc -O -fomit-frame-pointer ANSI_opt32
gcc -Os -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt32
gcc -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops ANSI_opt32
gcc -funroll-loops -O2 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -O3 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -O -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -Os -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt32
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt32

Compiler output

Implementation: ANSI_opt32
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
hash.c: hash.c:32:27: warning: signed shift result (0x6671135F000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
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:32:27: warning: signed shift result (0x6671135F00) requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
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: hash.c:33:67: warning: signed shift result (0x34F8C248000000) requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
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:67: warning: signed shift result (0x34F8C24800) requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
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: 4 warnings generated.

Number of similar (compiler,implementation) pairs: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ANSI_opt32
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ANSI_opt32
clang -O3 -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ANSI_opt64
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ANSI_opt64

Compiler output

Implementation: ANSI_opt64
Security model: unknown
Compiler: cc
hash.c: In file included from aestab.h:4,
hash.c: from fugue_256_code.h:13,
hash.c: from hash.c:7:
hash.c: hash.c: In function 'crypto_hash_fugue256_ANSI_opt64':
hash.c: aestab_t.h:19:26: warning: result of '1718686559 << 24' requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1718686559 << 8' requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:32:27: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xe952bdde),HO2BE_4(0x6671135f),HO2BE_4(0xe0d4f668),HO2BE_4(0xd2b0b594),
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:26: warning: result of '888717896 << 24' requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: hash.c:33:67: note: in expansion of macro 'HO2BE_4'
hash.c: HO2BE_4(0xf96c621d),HO2BE_4(0xfbf929de),HO2BE_4(0x9149e899),HO2BE_4(0x34f8c248)};
hash.c: ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '888717896 << 8' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c: #define HO2BE_4(_x) ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c: ^~
hash.c: ...

Number of similar (compiler,implementation) pairs: 19, namely:
CompilerImplementations
cc ANSI_opt64
gcc ANSI_opt64
gcc -O2 -fomit-frame-pointer ANSI_opt64
gcc -O3 -fomit-frame-pointer ANSI_opt64
gcc -O -fomit-frame-pointer ANSI_opt64
gcc -Os -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt64
gcc -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops ANSI_opt64
gcc -funroll-loops -O2 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -O3 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -O -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -Os -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ANSI_opt64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ANSI_opt64