Implementation notes: amd64, hertz, crypto_aead/minalpherv11

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: minalpherv11
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
246124015660 0 036751 828 1096T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
251141017484 0 038687 828 1096T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
26054938998 0 026359 812 1160T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
32628425587 0 019242 788 1064T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
36017417097 0 022431 812 1096T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
37131187618 0 022730 828 1096T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


MinalpherCore.cpp: MinalpherCore.cpp:1057:55: warning: variable 'DATA4' is uninitialized when passed as a const reference argument here [-Wuninitialized-const-reference]
MinalpherCore.cpp:  1057 |   minalpher_core_quadruple_block(DATA1, DATA2, DATA3, DATA4, ymmA, ymmB);
MinalpherCore.cpp:       |                                                       ^~~~~
MinalpherCore.cpp: MinalpherCore.cpp:1067:63: warning: variable 'DATA4' is uninitialized when passed as a const reference argument here [-Wuninitialized-const-reference]
MinalpherCore.cpp:  1067 |   minalpher_core_quadruple_block_inverse(DATA1, DATA2, DATA3, DATA4, ymmA, ymmB);
MinalpherCore.cpp:       |                                                               ^~~~~
MinalpherCore.cpp: 2 warnings generated.
MinalpherMode.cpp: MinalpherMode.cpp:871:13: warning: variable 'tweak1' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   871 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |             ^
MinalpherMode.cpp: MinalpherMode.cpp:871:21: warning: variable 'tweak2' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   871 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |                     ^
MinalpherMode.cpp: MinalpherMode.cpp:871:29: warning: variable 'tweak3' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   871 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |                             ^
MinalpherMode.cpp: MinalpherMode.cpp:871:37: warning: variable 'tweak4' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   871 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |                                     ^
MinalpherMode.cpp: MinalpherMode.cpp:919:13: warning: variable 'tweak1' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   919 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |             ^
MinalpherMode.cpp: MinalpherMode.cpp:919:21: warning: variable 'tweak2' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   919 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |                     ^
MinalpherMode.cpp: MinalpherMode.cpp:919:29: warning: variable 'tweak3' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   919 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6, tweak7, tweak8;
MinalpherMode.cpp:       |                             ^
MinalpherMode.cpp: MinalpherMode.cpp:992:13: warning: variable 'tweak1' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp:   992 |     __m256i tweak1, tweak2, tweak3, tweak4, tweak5, tweak6;
MinalpherMode.cpp:       |             ^
MinalpherMode.cpp: MinalpherMode.cpp:992:21: warning: variable 'tweak2' set but not used [-Wunused-but-set-variable]
MinalpherMode.cpp: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:avx2clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:avx2clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:avx2clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_quadruple_block(__m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:1057:33: warning: 'DATA4' may be used uninitialized [-Wmaybe-uninitialized]
MinalpherCore.cpp:  1057 |   minalpher_core_quadruple_block(DATA1, DATA2, DATA3, DATA4, ymmA, ymmB);
MinalpherCore.cpp:       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:706:6: note: by argument 4 of type 'const __m256i&' to 'void minalpher_core_quadruple_block(const __m256i&, const __m256i&, const __m256i&, const __m256i&, __m256i*, __m256i*)' declared here
MinalpherCore.cpp:   706 | void minalpher_core_quadruple_block(
MinalpherCore.cpp:       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:1055:11: note: 'DATA4' declared here
MinalpherCore.cpp:  1055 |   __m256i DATA4;
MinalpherCore.cpp:       |           ^~~~~
MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_quadruple_block_inverse(__m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:1067:41: warning: 'DATA4' may be used uninitialized [-Wmaybe-uninitialized]
MinalpherCore.cpp:  1067 |   minalpher_core_quadruple_block_inverse(DATA1, DATA2, DATA3, DATA4, ymmA, ymmB);
MinalpherCore.cpp:       |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:839:6: note: by argument 4 of type 'const __m256i&' to 'void minalpher_core_quadruple_block_inverse(const __m256i&, const __m256i&, const __m256i&, const __m256i&, __m256i*, __m256i*)' declared here
MinalpherCore.cpp:   839 | void minalpher_core_quadruple_block_inverse(
MinalpherCore.cpp:       |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:1065:11: note: 'DATA4' declared here
MinalpherCore.cpp:  1065 |   __m256i DATA4;
MinalpherCore.cpp:       |           ^~~~~
MinalpherMode.cpp: MinalpherMode.cpp: In function 'void minalpher_mode_encrypt(const unsigned char*, const unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, unsigned char*, long long unsigned int*)':
MinalpherMode.cpp: MinalpherMode.cpp:244:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   244 |     if ((p + 96) < _alen){
MinalpherMode.cpp:       |         ~~~~~~~~~^~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:269:24: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   269 |     }else if ((p + 64) < _alen){
MinalpherMode.cpp:       |               ~~~~~~~~~^~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:288:24: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   288 |     }else if ((p + 32) < _alen){
MinalpherMode.cpp:       |               ~~~~~~~~~^~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:315:20: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   315 |       for (q = 0; q<(_alen - p); q++){
MinalpherMode.cpp:       |                   ~^~~~~~~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:416:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   416 |     for (q = 0; q<(_mlen - 96 - p); q++){
MinalpherMode.cpp:       |                 ~^~~~~~~~~~~~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:506:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   506 |     for (q = 0; q<(_mlen - 64 - p); q++){
MinalpherMode.cpp:       |                 ~^~~~~~~~~~~~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:582:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   582 |     for (q = 0; q<(_mlen - 32 - p); q++){
MinalpherMode.cpp:       |                 ~^~~~~~~~~~~~~~~~~
MinalpherMode.cpp: MinalpherMode.cpp:643:18: warning: comparison of integer expressions of different signedness: 'int' and 'long long unsigned int' [-Wsign-compare]
MinalpherMode.cpp:   643 |     for (q = 0; q<(_mlen - p); q++){
MinalpherMode.cpp:       |                 ~^~~~~~~~~~~~
MinalpherMode.cpp: ...

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

Compiler output


encrypt.c: encrypt.c:116:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
encrypt.c:   116 |   int ret;
encrypt.c:       |       ^
encrypt.c: 1 warning generated.
minalpher.c: minalpher.c:473:25: warning: variable 'j' set but not used [-Wunused-but-set-variable]
minalpher.c:   473 |   unsigned long long i, j, blocknum;
minalpher.c:       |                         ^
minalpher.c: minalpher.c:560:10: warning: variable 'pad' set but not used [-Wunused-but-set-variable]
minalpher.c:   560 |   int d, pad, cnt;
minalpher.c:       |          ^
minalpher.c: minalpher.c:560:15: warning: variable 'cnt' set but not used [-Wunused-but-set-variable]
minalpher.c:   560 |   int d, pad, cnt;
minalpher.c:       |               ^
minalpher.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


encrypt.c: encrypt.c: In function 'crypto_mac_gen':
encrypt.c: encrypt.c:116:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
encrypt.c:   116 |   int ret;
encrypt.c:       |       ^~~
minalpher.c: minalpher.c: In function 'AEAD_TGEN':
minalpher.c: minalpher.c:473:25: warning: variable 'j' set but not used [-Wunused-but-set-variable]
minalpher.c:   473 |   unsigned long long i, j, blocknum;
minalpher.c:       |                         ^
minalpher.c: minalpher.c: In function 'AEAD_MGEN':
minalpher.c: minalpher.c:560:15: warning: variable 'cnt' set but not used [-Wunused-but-set-variable]
minalpher.c:   560 |   int d, pad, cnt;
minalpher.c:       |               ^~~
minalpher.c: minalpher.c:560:10: warning: variable 'pad' set but not used [-Wunused-but-set-variable]
minalpher.c:   560 |   int d, pad, cnt;
minalpher.c:       |          ^~~

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

Namespace violations


encrypt.o crypto_mac_gen T
encrypt.o crypto_mac_verif T
minalpher.o AEAD_DEC T
minalpher.o AEAD_ENC T
minalpher.o MAC_GEN T
minalpher.o MAC_VERIF T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)