Implementation notes: amd64, speed2supercop, crypto_aead/minalpherv11

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: minalpherv11
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3007643263 128 059288 960 872T:avx2clang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3052043319 128 059520 960 872T:avx2clang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3084839671 8 547253321 768 6432T:avx2g++_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3089639624 128 051632 960 856T:avx2clang++_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3092042021 8 547257970 776 6432T:avx2g++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3099240753 8 547254698 776 6432T:avx2g++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3284037050 128 050042 952 920T:avx2clang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
3618833915 8 547246381 752 6400T:avx2g++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
204787211550 0 027670 792 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
216742413461 0 030846 792 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
25649608320 0 024207 760 928T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
290399214409 0 031974 792 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
30381767517 0 021793 792 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
36057685658 0 019030 792 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
39130926368 0 020247 760 928T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
40885244960 0 017314 736 896T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
47901765950 0 019444 744 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

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:   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:   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:     __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:     __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:     __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:     __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:     __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:     __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:     __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:     __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: 4, namely:
ImplementationCompiler
T:avx2clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avx2clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avx2clang++ -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avx2clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall

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: 4, namely:
ImplementationCompiler
T:avx2g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avx2g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avx2g++ -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avx2g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall

Compiler output


encrypt.c: encrypt.c:116:7: warning: variable 'ret' set but not used [-Wunused-but-set-variable]
encrypt.c:   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:   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:   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:   int d, pad, cnt;
minalpher.c:               ^
minalpher.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

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: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)