Implementation notes: amd64, hertz, crypto_sign/redgemss192

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_sign
Primitive: redgemss192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1147231690414 0 093700 828 1800T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
1156726890372 0 093636 828 1800T:skylakegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
12125331122942 0 0122164 836 1896T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
12180484122903 0 0122100 836 1896T:skylakegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
12195256100908 0 0102284 836 1832T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
12234878100869 0 0102220 836 1832T:skylakegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
6297176041600 56 01971182 3844 6760T:refclang++_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
62981011131501 56 02018748 3852 6760T:refclang++_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
6328793354918 56 01983717 3820 6760T:refg++_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
64036348153404 56 02019952 3852 6760T:refclang++_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
6438434265458 56 01993709 3820 6792T:refg++_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716
6725103838664 56 01968105 3812 6728T:refg++_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071720240716

Compiler output


mul_gf2x.c: mul_gf2x.c:13:12: error: call to undeclared function '_mm_cvtsi128_si64x'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
mul_gf2x.c:    13 |     return MUL64LOW(x,y,0);
mul_gf2x.c:       |            ^
mul_gf2x.c: ./mul_gf2x.h:905:27: note: expanded from macro 'MUL64LOW'
mul_gf2x.c:   905 | #define MUL64LOW(x,y,pos) _mm_cvtsi128_si64x(_mm_clmulepi64_si128(x, y, pos))
mul_gf2x.c:       |                           ^
mul_gf2x.c: mul_gf2x.c:13:12: note: did you mean '_mm_cvtsi128_si64'?
mul_gf2x.c: ./mul_gf2x.h:905:27: note: expanded from macro 'MUL64LOW'
mul_gf2x.c:   905 | #define MUL64LOW(x,y,pos) _mm_cvtsi128_si64x(_mm_clmulepi64_si128(x, y, pos))
mul_gf2x.c:       |                           ^
mul_gf2x.c: /usr/lib/llvm-18/lib/clang/18/include/emmintrin.h:3339:48: note: '_mm_cvtsi128_si64' declared here
mul_gf2x.c:  3339 | static __inline__ long long __DEFAULT_FN_ATTRS _mm_cvtsi128_si64(__m128i __a) {
mul_gf2x.c:       |                                                ^
mul_gf2x.c: 1 error generated.

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

Compiler output


KAT_int.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
bit.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
convMQS_gf2.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
evalMQnocst_gf2.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
printgf2x.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sign.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
sign_openHFE.c: clang++: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
chooseRootHFE.cpp: chooseRootHFE.cpp:253:36: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
chooseRootHFE.cpp:   253 |             static_gf2n roots_UINT[NB_WORD_GFqn*l];
chooseRootHFE.cpp:       |                                    ^~~~~~~~~~~~~~
chooseRootHFE.cpp: ./config_HFE.h:480:26: note: expanded from macro 'NB_WORD_GFqn'
chooseRootHFE.cpp:   480 |     #define NB_WORD_GFqn (HFEnq+1)
chooseRootHFE.cpp:       |                          ^
chooseRootHFE.cpp: chooseRootHFE.cpp:253:49: note: read of non-const variable 'l' is not allowed in a constant expression
chooseRootHFE.cpp:   253 |             static_gf2n roots_UINT[NB_WORD_GFqn*l];
chooseRootHFE.cpp:       |                                                 ^
chooseRootHFE.cpp: chooseRootHFE.cpp:181:18: note: declared here
chooseRootHFE.cpp:   181 |     unsigned int l;
chooseRootHFE.cpp:       |                  ^
chooseRootHFE.cpp: 1 warning 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))

Namespace violations


arith_gf2n.o RedGeMSS_192U_mulmod_gf2n T
arith_gf2n.o RedGeMSS_192U_squaremod_gf2n T
changeVariablesMQS_gf2.o RedGeMSS_192U_changeVariablesMQS64_gf2 T
chooseRootHFE_gf2nx.o RedGeMSS_192U_chooseRootHFE_gf2nx T
convMQS_gf2.o RedGeMSS_192U_convMQS_one_eq_to_hybrid_representation_gf2 T
convMQS_gf2.o RedGeMSS_192U_convMQS_one_to_m_compressed_equations_gf2 T
convMQS_gf2.o RedGeMSS_192U_convMQS_one_to_m_equations_gf2 T
conv_gf2nx.o RedGeMSS_192U_convHFEpolynomialSparseToDense_gf2nx T
conv_gf2nx.o RedGeMSS_192U_convMonic_gf2nx T
determinantn_gf2.o RedGeMSS_192U_determinantn_gf2 T
determinantn_gf2.o RedGeMSS_192U_determinantn_nocst_gf2 T
determinantnv_gf2.o RedGeMSS_192U_determinantnv_gf2 T
determinantnv_gf2.o RedGeMSS_192U_determinantnv_nocst_gf2 T
div_gf2nx.o RedGeMSS_192U_div_qr_gf2nx T
div_gf2nx.o RedGeMSS_192U_div_qr_not_monic_gf2nx T
div_gf2nx.o RedGeMSS_192U_div_r_HFE_gf2nx T
div_gf2nx.o RedGeMSS_192U_div_r_HFE_gf2nx_cst T
div_gf2nx.o RedGeMSS_192U_div_r_HFE_gf2nx_d_cst T
div_gf2nx.o RedGeMSS_192U_div_r_gf2nx T
div_gf2nx.o RedGeMSS_192U_div_r_not_monic_gf2nx T
dotProduct_gf2n.o RedGeMSS_192U_dotProduct_noSIMD_gf2n T
dotProduct_gf2n.o RedGeMSS_192U_doubleDotProduct_noSIMD_gf2n T
evalMQS_gf2.o RedGeMSS_192U_evalMQS_classical_gf2 T
evalMQS_gf2.o RedGeMSS_192U_evalMQS_unrolled_gf2 T
evalMQShybrid_gf2.o RedGeMSS_192U_evalMQShybrid_nocst_gf2_m T
evalMQSnocst_gf2.o RedGeMSS_192U_evalMQSnocst_unrolled_gf2 T
evalMQSnocst_quo_gf2.o RedGeMSS_192U_evalMQSnocst_unrolled_quo_gf2 T
evalMQSv_gf2.o RedGeMSS_192U_evalMQSv_classical_gf2 T
evalMQSv_gf2.o RedGeMSS_192U_evalMQSv_unrolled_gf2 T
evalMQnocst_gf2.o RedGeMSS_192U_evalMQSnocst_noSIMD_gf2_m T
evalMQnocst_gf2.o RedGeMSS_192U_evalMQnocst_noSIMD2_gf2 T
evalMQnocst_gf2.o RedGeMSS_192U_evalMQnocst_noSIMD_gf2 T
findRootsSplit_gf2nx.o RedGeMSS_192U_findRootsSplit_gf2nx T
findRoots_gf2nx.o RedGeMSS_192U_findRootsHFE_gf2nx T
findRoots_gf2nx.o RedGeMSS_192U_findRoots_gf2nx T
findRoots_gf2nx.o RedGeMSS_192U_findUniqRootHFE_gf2nx T
frobeniusMap_gf2nx.o RedGeMSS_192U_frobeniusMap_HFE_gf2nx T
frobeniusMap_gf2nx.o RedGeMSS_192U_frobeniusMap_gf2nx T
frobeniusMap_gf2nx.o RedGeMSS_192U_frobeniusMap_multisqr_HFE_gf2nx T
gcd_gf2nx.o RedGeMSS_192U_gcd_gf2nx T
genCanonicalBasis_gf2n.o RedGeMSS_192U_genCanonicalBasisVertical_gf2n T
genCanonicalBasis_gf2n.o RedGeMSS_192U_genCanonicalBasis_gf2n T
genSecretMQS_gf2.o RedGeMSS_192U_genSecretMQS_gf2 T
initListDifferences_gf2nx.o RedGeMSS_192U_initListDifferences_gf2nx T
initMatrixId_gf2.o RedGeMSS_192U_initMatrixIdn_gf2 T
initMatrixId_gf2.o RedGeMSS_192U_initMatrixIdnv_gf2 T
invMatrixn_gf2.o RedGeMSS_192U_invMatrixLUn_gf2 T
invMatrixn_gf2.o RedGeMSS_192U_invMatrixn_gf2 T
invMatrixn_gf2.o RedGeMSS_192U_invMatrixn_nocst_gf2 T
invMatrixnv_gf2.o RedGeMSS_192U_invMatrixLUnv_gf2 T
invMatrixnv_gf2.o RedGeMSS_192U_invMatrixnv_gf2 T
invMatrixnv_gf2.o RedGeMSS_192U_invMatrixnv_nocst_gf2 T
inv_gf2n.o RedGeMSS_192U_inv_EEA_gf2n T
inv_gf2n.o RedGeMSS_192U_inv_ITMIA_gf2n T
matVecProduct_gf2.o RedGeMSS_192U_matVecProduct_gf2 T
mixEquationsMQS_gf2.o RedGeMSS_192U_mixEquationsMQS_gf2_left T
mixEquationsMQS_gf2.o RedGeMSS_192U_mixEquationsMQS_gf2_right T
mul_gf2x.o RedGeMSS_192U_mul128 T
mul_gf2x.o RedGeMSS_192U_mul160 T
mul_gf2x.o RedGeMSS_192U_mul192 T
mul_gf2x.o RedGeMSS_192U_mul224 T
mul_gf2x.o RedGeMSS_192U_mul256 T
mul_gf2x.o RedGeMSS_192U_mul288 T
mul_gf2x.o RedGeMSS_192U_mul320 T
mul_gf2x.o RedGeMSS_192U_mul352 T
mul_gf2x.o RedGeMSS_192U_mul384 T
mul_gf2x.o RedGeMSS_192U_mul416 T
mul_gf2x.o RedGeMSS_192U_mul448 T
mul_gf2x.o RedGeMSS_192U_mul480 T
mul_gf2x.o RedGeMSS_192U_mul512 T
mul_gf2x.o RedGeMSS_192U_mul544 T
mul_gf2x.o RedGeMSS_192U_mul576 T
mul_gf2x.o RedGeMSS_192U_mul64 T
mul_gf2x.o RedGeMSS_192U_mul64low T
mul_gf2x.o RedGeMSS_192U_mul96 T
predicate.o RedGeMSS_192U_CMP_GT T
predicate.o RedGeMSS_192U_CMP_LT T
predicate.o RedGeMSS_192U_ISEQUAL T
predicate.o RedGeMSS_192U_ISONE T
predicate.o RedGeMSS_192U_ISZERO T
printHFE.o RedGeMSS_192U_printDocument T
printHFE.o RedGeMSS_192U_printSignature T
printHFE.o RedGeMSS_192U_printSignature_uncompressed T
print_gf2x.o RedGeMSS_192U_print_gf2x T
quickSort_gf2n.o RedGeMSS_192U_quickSort_gf2n T
randMatrix_gf2.o RedGeMSS_192U_genLowerMatrixn T
randMatrix_gf2.o RedGeMSS_192U_genLowerMatrixnv T
randMatrix_gf2.o RedGeMSS_192U_randInvMatrixLU_gf2_n T
randMatrix_gf2.o RedGeMSS_192U_randInvMatrixLU_gf2_nv T
randMatrix_gf2.o RedGeMSS_192U_randInvMatrix_gf2_n T
randMatrix_gf2.o RedGeMSS_192U_randInvMatrix_gf2_nv T
randMatrix_gf2.o RedGeMSS_192U_randMatrix_gf2_n T
randMatrix_gf2.o RedGeMSS_192U_randMatrix_gf2_nv T
rand_gf2nx.o RedGeMSS_192U_randMonicHFE_gf2nx T
rand_gf2nx.o RedGeMSS_192U_randMonicHFEv_gf2nx T
rand_gf2nx.o RedGeMSS_192U_randMonic_gf2nx T
rand_gf2nx.o RedGeMSS_192U_rand_gf2nx T
rem_gf2n.o RedGeMSS_192U_rem_noSIMD_gf2n T
rem_gf2x.o RedGeMSS_192U_rem128_pentanom T
rem_gf2x.o RedGeMSS_192U_rem128_pentanom_k128 T
rem_gf2x.o RedGeMSS_192U_rem128_trinom T
rem_gf2x.o RedGeMSS_192U_rem160_pentanom T
rem_gf2x.o RedGeMSS_192U_rem160_trinom T
rem_gf2x.o RedGeMSS_192U_rem192_pentanom T
rem_gf2x.o RedGeMSS_192U_rem192_pentanom_k192 T
rem_gf2x.o RedGeMSS_192U_rem192_trinom T
rem_gf2x.o RedGeMSS_192U_rem224_pentanom T
rem_gf2x.o RedGeMSS_192U_rem224_trinom T
rem_gf2x.o RedGeMSS_192U_rem256_pentanom T
rem_gf2x.o RedGeMSS_192U_rem256_pentanom_k256 T
rem_gf2x.o RedGeMSS_192U_rem256_trinom T
rem_gf2x.o RedGeMSS_192U_rem288_pentanom T
rem_gf2x.o RedGeMSS_192U_rem288_trinom T
rem_gf2x.o RedGeMSS_192U_rem320_pentanom T
rem_gf2x.o RedGeMSS_192U_rem320_pentanom_k320 T
rem_gf2x.o RedGeMSS_192U_rem320_trinom T
rem_gf2x.o RedGeMSS_192U_rem32_pentanom T
rem_gf2x.o RedGeMSS_192U_rem32_trinom T
rem_gf2x.o RedGeMSS_192U_rem352_pentanom T
rem_gf2x.o RedGeMSS_192U_rem352_trinom T
rem_gf2x.o RedGeMSS_192U_rem384_pentanom T
rem_gf2x.o RedGeMSS_192U_rem384_pentanom_k384 T
rem_gf2x.o RedGeMSS_192U_rem384_trinom T
rem_gf2x.o RedGeMSS_192U_rem416_pentanom T
rem_gf2x.o RedGeMSS_192U_rem416_trinom T
rem_gf2x.o RedGeMSS_192U_rem448_pentanom T
rem_gf2x.o RedGeMSS_192U_rem448_pentanom_k448 T
rem_gf2x.o RedGeMSS_192U_rem448_trinom T
rem_gf2x.o RedGeMSS_192U_rem480_pentanom T
rem_gf2x.o RedGeMSS_192U_rem480_trinom T
rem_gf2x.o RedGeMSS_192U_rem512_pentanom T
rem_gf2x.o RedGeMSS_192U_rem512_trinom T
rem_gf2x.o RedGeMSS_192U_rem544_pentanom T
rem_gf2x.o RedGeMSS_192U_rem544_trinom T
rem_gf2x.o RedGeMSS_192U_rem576_pentanom T
rem_gf2x.o RedGeMSS_192U_rem576_trinom T
rem_gf2x.o RedGeMSS_192U_rem64_pentanom T
rem_gf2x.o RedGeMSS_192U_rem64_trinom T
rem_gf2x.o RedGeMSS_192U_rem96_pentanom T
rem_gf2x.o RedGeMSS_192U_rem96_trinom T
signHFE.o RedGeMSS_192U_precSignHFE T
signHFE.o RedGeMSS_192U_signHFE1 T
signHFE.o RedGeMSS_192U_signHFE1withPrec T
signHFE.o RedGeMSS_192U_signHFE_FeistelPatarin T
sign_keypairHFE.o RedGeMSS_192U_sign_keypairHFE T
sign_openHFE.o RedGeMSS_192U_sign_openHFE T
sqr_gf2nx.o RedGeMSS_192U_sqr_HFE_gf2nx T
sqr_gf2nx.o RedGeMSS_192U_sqr_gf2nx T
sqr_gf2x.o RedGeMSS_192U_old_square128 T
sqr_gf2x.o RedGeMSS_192U_old_square160 T
sqr_gf2x.o RedGeMSS_192U_old_square192 T
sqr_gf2x.o RedGeMSS_192U_old_square224 T
sqr_gf2x.o RedGeMSS_192U_old_square256 T
sqr_gf2x.o RedGeMSS_192U_old_square288 T
sqr_gf2x.o RedGeMSS_192U_old_square320 T
sqr_gf2x.o RedGeMSS_192U_old_square352 T
sqr_gf2x.o RedGeMSS_192U_old_square384 T
sqr_gf2x.o RedGeMSS_192U_old_square416 T
sqr_gf2x.o RedGeMSS_192U_old_square448 T
sqr_gf2x.o RedGeMSS_192U_old_square480 T
sqr_gf2x.o RedGeMSS_192U_old_square512 T
sqr_gf2x.o RedGeMSS_192U_old_square544 T
sqr_gf2x.o RedGeMSS_192U_old_square576 T
sqr_gf2x.o RedGeMSS_192U_old_square64 T
sqr_gf2x.o RedGeMSS_192U_old_square64low T
sqr_gf2x.o RedGeMSS_192U_old_square96 T
sqr_gf2x.o RedGeMSS_192U_sqr128 T
sqr_gf2x.o RedGeMSS_192U_sqr160 T
sqr_gf2x.o RedGeMSS_192U_sqr192 T
sqr_gf2x.o RedGeMSS_192U_sqr224 T
sqr_gf2x.o RedGeMSS_192U_sqr256 T
sqr_gf2x.o RedGeMSS_192U_sqr288 T
sqr_gf2x.o RedGeMSS_192U_sqr320 T
sqr_gf2x.o RedGeMSS_192U_sqr352 T
sqr_gf2x.o RedGeMSS_192U_sqr384 T
sqr_gf2x.o RedGeMSS_192U_sqr416 T
sqr_gf2x.o RedGeMSS_192U_sqr448 T
sqr_gf2x.o RedGeMSS_192U_sqr480 T
sqr_gf2x.o RedGeMSS_192U_sqr512 T
sqr_gf2x.o RedGeMSS_192U_sqr544 T
sqr_gf2x.o RedGeMSS_192U_sqr576 T
sqr_gf2x.o RedGeMSS_192U_sqr64 T
sqr_gf2x.o RedGeMSS_192U_sqr64low T
sqr_gf2x.o RedGeMSS_192U_sqr96 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductm_64 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductn_64 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductnv_64 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductnvn_64 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductnvn_start_64 T
vecMatProduct_gf2.o RedGeMSS_192U_vecMatProductv_64 T

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