Implementation notes: amd64, rumba5, crypto_aead/grain128aead

Computer: rumba5
Microarchitecture: amd64; Zen (800f11)
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: grain128aead
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2726256705 0 024301 868 1056T:opt32clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2839846696 0 023373 868 1024T:opt32clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3300353262 0 017138 804 1056T:opt32gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3462086028 0 020189 868 1024T:opt32clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3538624203 0 019055 860 1088T:opt32clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3540596797 0 024005 868 1056T:opt32clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3655543748 0 018943 828 1088T:opt32gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5211899477 0 026455 828 1088T:opt32gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
7793334005 0 019735 828 1088T:opt32gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
692539317435 0 134199 876 1056T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
718764714140 0 131249 836 1120T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
72608918689 0 125879 876 1056T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
775547615183 0 131911 876 1024T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
95176856033 0 120801 868 1088T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
115020335480 0 121345 836 1120T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
137286995539 0 119807 876 1024T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
160280533709 0 117708 812 1088T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
569714744132 0 119254 820 1120T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

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)