Implementation notes: aarch64, pi3aplus, crypto_hash/fugue256

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: fugue256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5047252696 0 061984 840 728T:ANSI_opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
5123952712 0 063224 840 744T:ANSI_opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
5590542988 0 052280 840 728T:ANSI_opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
5661432692 0 043458 848 744T:sphlibgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
5703043152 0 053664 840 744T:ANSI_opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
5817742784 0 053949 768 736T:ANSI_opt32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
5964832896 0 042369 840 728T:sphlibgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
6027454608 0 065773 768 736T:ANSI_opt64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
6135631020 0 042267 776 736T:sphlibclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121520231212
7159551144 0 059512 824 720T:ANSI_opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
7221931836 0 040401 824 720T:sphlibgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
8401541908 0 050280 824 720T:ANSI_opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
10095454220 0 063440 840 728T:ANSI_opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
10597333868 0 043249 840 728T:sphlibgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212
10674544188 0 053408 840 728T:ANSI_opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121520231212

Compiler output

Implementation: T:ANSI_opt32
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ANSI_opt32 T:ANSI_opt64

Compiler output

Implementation: T:ANSI_opt32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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_timingleaks':
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt32
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt32
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt32
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt32

Compiler output

Implementation: T:ANSI_opt64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
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_timingleaks':
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: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ANSI_opt64

Namespace violations

Implementation: T:sphlib
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
fugue.o sph_fugue224 T
fugue.o sph_fugue224_addbits_and_close T
fugue.o sph_fugue224_close T
fugue.o sph_fugue224_init T
fugue.o sph_fugue256 T
fugue.o sph_fugue256_addbits_and_close T
fugue.o sph_fugue256_close T
fugue.o sph_fugue256_init T
fugue.o sph_fugue384 T
fugue.o sph_fugue384_addbits_and_close T
fugue.o sph_fugue384_close T
fugue.o sph_fugue384_init T
fugue.o sph_fugue512 T
fugue.o sph_fugue512_addbits_and_close T
fugue.o sph_fugue512_close T
fugue.o sph_fugue512_init T

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sphlib