Implementation notes: amd64, margaux, crypto_aead/grain128aead

Computer: margaux
Microarchitecture: amd64; Core 2 65nm (6fb)
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: grain128aead
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5077186694 0 023421 868 1024T:opt32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
5088236696 0 023357 868 1024T:opt32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
5333777214 0 022805 868 1024T:opt32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
5690054218 0 017687 860 1024T:opt32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
5772826020 0 020325 868 1024T:opt32clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
6150833260 0 017106 804 1056T:opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
6163483751 0 018975 828 1088T:opt32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
7180519436 0 026223 828 1088T:opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
9448083908 0 019511 828 1088T:opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1632595715183 0 131895 876 1024T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1647005914333 0 131103 876 1024T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
176357758847 0 124503 876 1024T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
1794841018861 0 135769 836 1120T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
225733615165 0 120881 836 1120T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
237730334471 0 118057 868 1024T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
238154465272 0 119671 876 1024T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
393513853676 0 117644 812 1088T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625
814087384125 0 119286 820 1120T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062920240625

Compiler output


grain128aead_32p.c: grain128aead_32p.c:78:6: warning: variable 'mstmp' set but not used [-Wunused-but-set-variable]
grain128aead_32p.c:         u16 mstmp = ms;
grain128aead_32p.c:             ^
grain128aead_32p.c: grain128aead_32p.c:111:5: warning: variable 'mstmp' set but not used [-Wunused-but-set-variable]
grain128aead_32p.c:         u8 mstmp = ms;
grain128aead_32p.c:            ^
grain128aead_32p.c: 2 warnings generated.

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

Compiler output


grain128aead_32p.c: grain128aead_32p.c: In function 'crypto_aead_grain128aead_opt32_timingleaks_encrypt':
grain128aead_32p.c: grain128aead_32p.c:275:13: warning: 'rem_word' may be used uninitialized in this function [-Wmaybe-uninitialized]
grain128aead_32p.c:   275 |         u32 rem_word;
grain128aead_32p.c:       |             ^~~~~~~~
grain128aead_32p.c: grain128aead_32p.c: In function 'crypto_aead_grain128aead_opt32_timingleaks_decrypt':
grain128aead_32p.c: grain128aead_32p.c:365:13: warning: 'rem_word' may be used uninitialized in this function [-Wmaybe-uninitialized]
grain128aead_32p.c:   365 |         u32 rem_word;
grain128aead_32p.c:       |             ^~~~~~~~

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:opt32gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:opt32gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


grain128aead_32p.c: grain128aead_32p.c: In function 'crypto_aead_grain128aead_opt32_timingleaks_encrypt':
grain128aead_32p.c: grain128aead_32p.c:295:35: warning: 'rem_word' may be used uninitialized in this function [-Wmaybe-uninitialized]
grain128aead_32p.c:   295 |                 *(c + j) = ((u8) (getkb(rem_word) >> 8)) ^ *(m + j);
grain128aead_32p.c:       |                                   ^~~~~~~~~~~~~~~
grain128aead_32p.c: grain128aead_32p.c: In function 'crypto_aead_grain128aead_opt32_timingleaks_decrypt':
grain128aead_32p.c: grain128aead_32p.c:385:35: warning: 'rem_word' may be used uninitialized in this function [-Wmaybe-uninitialized]
grain128aead_32p.c:   385 |                 *(m + j) = ((u8) (getkb(rem_word) >> 8)) ^ *(c + j);
grain128aead_32p.c:       |                                   ^~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:opt32gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


grain128aead.c: grain128aead.c:140:31: warning: argument 1 of type 'unsigned char[64]' with mismatched bound [-Warray-parameter=]
grain128aead.c:   140 | void auth_shift(unsigned char sr[64], unsigned char fb)
grain128aead.c:       |                 ~~~~~~~~~~~~~~^~~~~~
grain128aead.c: In file included from grain128aead.c:20:
grain128aead.c: grain128aead.h:26:31: note: previously declared as 'unsigned char[32]'
grain128aead.c:    26 | void auth_shift(unsigned char sr[32], unsigned char fb);
grain128aead.c:       |                 ~~~~~~~~~~~~~~^~~~~~
grain128aead.c: grain128aead.c: In function 'auth_shift':
grain128aead.c: grain128aead.c:145:11: warning: array subscript 63 is outside array bounds of 'unsigned char[32]' [-Warray-bounds]
grain128aead.c:   145 |         sr[63] = fb;
grain128aead.c:       |         ~~^~~~
grain128aead.c: grain128aead.c:140:31: note: while referencing 'sr'
grain128aead.c:   140 | void auth_shift(unsigned char sr[64], unsigned char fb)
grain128aead.c:       |                 ~~~~~~~~~~~~~~^~~~~~
grain128aead.c: grain128aead.c:143:23: warning: '__builtin_memmove' forming offset [32, 62] is out of the bounds [0, 32] [-Warray-bounds]
grain128aead.c:   143 |                 sr[i] = sr[i+1];
grain128aead.c:       |                 ~~~~~~^~~~~~~~~

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


grain128aead.c: grain128aead.c:140:31: warning: argument 1 of type 'unsigned char[64]' with mismatched bound [-Warray-parameter=]
grain128aead.c:   140 | void auth_shift(unsigned char sr[64], unsigned char fb)
grain128aead.c:       |                 ~~~~~~~~~~~~~~^~~~~~
grain128aead.c: In file included from grain128aead.c:20:
grain128aead.c: grain128aead.h:26:31: note: previously declared as 'unsigned char[32]'
grain128aead.c:    26 | void auth_shift(unsigned char sr[32], unsigned char fb);
grain128aead.c:       |                 ~~~~~~~~~~~~~~^~~~~~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)