Implementation notes: amd64, panther, crypto_hash/fugue2

Computer: panther
Microarchitecture: amd64; Tiger Lake (806c1)
Architecture: amd64
CPU ID: GenuineIntel-000806c1-00-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_hash
Primitive: fugue2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2096153128 0 064080 780 952T:cop_opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2145856738 0 069800 780 952T:cop_opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2152059070 0 069591 772 952T:cop_opt32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2191550364 0 059923 756 920T:cop_opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2339156224 0 069037 828 888T:cop_opt32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2377355845 0 066283 820 888T:cop_opt32clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2379855996 0 069405 828 920T:cop_opt32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2396855980 0 069373 828 920T:cop_opt32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2635558215 0 068475 820 888T:cop_opt32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


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: #define HO2BE_4(_x)  ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c:                                  ~~^ ~
hash.c: hash.c:33:49: warning: signed shift result (0x4105B317000000) requires 56 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:49: warning: signed shift result (0x4105B31700) 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: hash.c:33:70: warning: signed shift result (0x4580A1C6000000) requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow]
hash.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:cop_opt32clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:cop_opt32clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:cop_opt32clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:cop_opt32clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:cop_opt32clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


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_fugue2_cop_opt32_timingleaks':
hash.c: aestab_t.h:19:26: warning: result of '1064582334 << 24' requires 55 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c:    19 | #define HO2BE_4(_x)  ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c:       |                          ^~
hash.c: hash.c:33:28: note: in expansion of macro 'HO2BE_4'
hash.c:    33 |       HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c:       |                            ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1064582334 << 8' requires 39 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c:    19 | #define HO2BE_4(_x)  ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c:       |                                    ^~
hash.c: hash.c:33:28: note: in expansion of macro 'HO2BE_4'
hash.c:    33 |       HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c:       |                            ^~~~~~~
hash.c: aestab_t.h:19:26: warning: result of '1090892567 << 24' requires 56 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c:    19 | #define HO2BE_4(_x)  ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c:       |                          ^~
hash.c: hash.c:33:49: note: in expansion of macro 'HO2BE_4'
hash.c:    33 |       HO2BE_4(0xa6de572c), HO2BE_4(0x3f743cbe), HO2BE_4(0x4105b317), HO2BE_4(0x4580a1c6)};
hash.c:       |                                                 ^~~~~~~
hash.c: aestab_t.h:19:36: warning: result of '1090892567 << 8' requires 40 bits to represent, but 'int' only has 32 bits [-Wshift-overflow=]
hash.c:    19 | #define HO2BE_4(_x)  ((_x<<24)|((_x<<8)&0xff0000)|((_x>>8)&0xff00)|(_x>>24))
hash.c:       |                                    ^~
hash.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:cop_opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:cop_opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:cop_opt32gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:cop_opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)