Implementation notes: amd64, firefly, crypto_sign/gemss256

Computer: firefly
Architecture: amd64
CPU ID: AuthenticAMD-00800f12-178bfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: gemss256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
7319240274103796 0 0106246 840 1624T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
785602266995781 0 098610 832 1592T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
8025757655107004 0 0109046 840 1624T:skylakegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
8046961884104084 0 0106534 840 1624T:skylakegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
815250695296101 0 098898 832 1592T:skylakegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
8181624354106704 0 0108694 840 1624T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
3579281061161214 112 71600150 4088 6704T:refclang++_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121320201130
3700979553559636 112 71597946 4088 6704T:refclang++_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121320201130
3716557184457669 112 71599771 4096 6768T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
3729281048939127 112 71576888 4088 6736T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
3763428182946497 112 71578520 4080 6704T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121320201130
3785393502659636 112 71597946 4088 6704T:refclang++_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121320201130
3821290948148818 112 71587404 4096 6768T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130
4346604176943880 112 71580887 4096 6768T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121320201130

Test failure

Implementation: T:opt
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt T:skylake

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
mul_gf2x.c: mul_gf2x.c:13:12: warning: implicit declaration of function '_mm_cvtsi128_si64x' is invalid in C99 [-Wimplicit-function-declaration]
mul_gf2x.c: return MUL64LOW(x,y,0);
mul_gf2x.c: ^
mul_gf2x.c: ./mul_gf2x.h:905:27: note: expanded from macro 'MUL64LOW'
mul_gf2x.c: #define MUL64LOW(x,y,pos) _mm_cvtsi128_si64x(_mm_clmulepi64_si128(x, y, pos))
mul_gf2x.c: ^
mul_gf2x.c: 1 warning generated.
signHFE.c: signHFE.c:415:22: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.c: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.c: ~^~~~~~~~~~~~~~~~~
signHFE.c: signHFE.c:676:22: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.c: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.c: ~^~~~~~~~~~~~~~~~~
signHFE.c: signHFE.c:1280:26: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.c: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.c: ~^~~~~~~~~~~~~~~~~
signHFE.c: 3 warnings generated.
sqr_gf2x.c: sqr_gf2x.c:27:12: warning: implicit declaration of function '_mm_cvtsi128_si64x' is invalid in C99 [-Wimplicit-function-declaration]
sqr_gf2x.c: return _mm_cvtsi128_si64x(_mm_clmulepi64_si128(x,x,0));
sqr_gf2x.c: ^
sqr_gf2x.c: 1 warning generated.
try.c: crypto_sign_gemss256.a(mul_gf2x.o): In function `GeMSS_256U_mul64low':
try.c: mul_gf2x.c:(.text+0x...): undefined reference to `_mm_cvtsi128_si64x'
try.c: crypto_sign_gemss256.a(sqr_gf2x.o): In function `GeMSS_256U_sqr64low':
try.c: sqr_gf2x.c:(.text+0x...): undefined reference to `_mm_cvtsi128_si64x'
try.c: crypto_sign_gemss256.a(sqr_gf2x.o): In function `GeMSS_256U_old_square64low':
try.c: sqr_gf2x.c:(.text+0x...): undefined reference to `_mm_cvtsi128_si64x'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:skylake
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:skylake
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:skylake
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:skylake

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
arith_gf2n.c: In file included from arith_gf2n.c:1:
arith_gf2n.c: In file included from ./arith_gf2n.h:9:
arith_gf2n.c: In file included from ./tools_gf2n.h:162:
arith_gf2n.c: ./mul_gf2x.h:17:14: fatal error: 'gf2x/gf2x_mul1.h' file not found
arith_gf2n.c: #include <gf2x/gf2x_mul1.h>
arith_gf2n.c: ^
arith_gf2n.c: 1 error generated.

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opt T:skylake

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bit.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
convMQS_gf2.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
evalMQnocst_gf2.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
KAT_int.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
printgf2x.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
sign.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
sign_openHFE.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
signHFE.cpp: signHFE.cpp:411:26: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
signHFE.cpp: for(i=0;i<(NB_WORD_GFqv-1);++i)
signHFE.cpp: ~^~~~~~~~~~~~~~~~~
signHFE.cpp: 1 warning generated.

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Namespace violations

Implementation: T:opt
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
arith_gf2n.o GeMSS_256U_mulmod_gf2n T
arith_gf2n.o GeMSS_256U_squaremod_gf2n T
changeVariablesMQS_gf2.o GeMSS_256U_changeVariablesMQS64_gf2 T
chooseRootHFE_gf2nx.o GeMSS_256U_chooseRootHFE_gf2nx T
convMQS_gf2.o GeMSS_256U_convMQS_one_eq_to_hybrid_representation_gf2 T
convMQS_gf2.o GeMSS_256U_convMQS_one_to_m_compressed_equations_gf2 T
convMQS_gf2.o GeMSS_256U_convMQS_one_to_m_equations_gf2 T
conv_gf2nx.o GeMSS_256U_convHFEpolynomialSparseToDense_gf2nx T
conv_gf2nx.o GeMSS_256U_convMonic_gf2nx T
determinantn_gf2.o GeMSS_256U_determinantn_gf2 T
determinantn_gf2.o GeMSS_256U_determinantn_nocst_gf2 T
determinantnv_gf2.o GeMSS_256U_determinantnv_gf2 T
determinantnv_gf2.o GeMSS_256U_determinantnv_nocst_gf2 T
div_gf2nx.o GeMSS_256U_div_qr_gf2nx T
div_gf2nx.o GeMSS_256U_div_qr_not_monic_gf2nx T
div_gf2nx.o GeMSS_256U_div_r_HFE_gf2nx T
div_gf2nx.o GeMSS_256U_div_r_HFE_gf2nx_cst T
div_gf2nx.o GeMSS_256U_div_r_HFE_gf2nx_d_cst T
div_gf2nx.o GeMSS_256U_div_r_gf2nx T
div_gf2nx.o GeMSS_256U_div_r_not_monic_gf2nx T
dotProduct_gf2n.o GeMSS_256U_dotProduct_noSIMD_gf2n T
dotProduct_gf2n.o GeMSS_256U_doubleDotProduct_noSIMD_gf2n T
evalMQS_gf2.o GeMSS_256U_evalMQS_classical_gf2 T
evalMQS_gf2.o GeMSS_256U_evalMQS_unrolled_gf2 T
evalMQShybrid_gf2.o GeMSS_256U_evalMQShybrid_nocst_gf2_m T
evalMQSnocst_gf2.o GeMSS_256U_evalMQSnocst_unrolled_gf2 T
evalMQSnocst_quo_gf2.o GeMSS_256U_evalMQSnocst_unrolled_quo_gf2 T
evalMQSv_gf2.o GeMSS_256U_evalMQSv_classical_gf2 T
evalMQSv_gf2.o GeMSS_256U_evalMQSv_unrolled_gf2 T
evalMQnocst_gf2.o GeMSS_256U_evalMQSnocst_noSIMD_gf2_m T
evalMQnocst_gf2.o GeMSS_256U_evalMQnocst_noSIMD2_gf2 T
evalMQnocst_gf2.o GeMSS_256U_evalMQnocst_noSIMD_gf2 T
findRootsSplit_gf2nx.o GeMSS_256U_findRootsSplit_gf2nx T
findRoots_gf2nx.o GeMSS_256U_findRootsHFE_gf2nx T
findRoots_gf2nx.o GeMSS_256U_findRoots_gf2nx T
findRoots_gf2nx.o GeMSS_256U_findUniqRootHFE_gf2nx T
frobeniusMap_gf2nx.o GeMSS_256U_frobeniusMap_HFE_gf2nx T
frobeniusMap_gf2nx.o GeMSS_256U_frobeniusMap_gf2nx T
frobeniusMap_gf2nx.o GeMSS_256U_frobeniusMap_multisqr_HFE_gf2nx T
gcd_gf2nx.o GeMSS_256U_gcd_gf2nx T
genCanonicalBasis_gf2n.o GeMSS_256U_genCanonicalBasisVertical_gf2n T
genCanonicalBasis_gf2n.o GeMSS_256U_genCanonicalBasis_gf2n T
genSecretMQS_gf2.o GeMSS_256U_genSecretMQS_gf2 T
initListDifferences_gf2nx.o GeMSS_256U_initListDifferences_gf2nx T
initMatrixId_gf2.o GeMSS_256U_initMatrixIdn_gf2 T
initMatrixId_gf2.o GeMSS_256U_initMatrixIdnv_gf2 T
invMatrixn_gf2.o GeMSS_256U_invMatrixLUn_gf2 T
invMatrixn_gf2.o GeMSS_256U_invMatrixn_gf2 T
invMatrixn_gf2.o GeMSS_256U_invMatrixn_nocst_gf2 T
invMatrixnv_gf2.o GeMSS_256U_invMatrixLUnv_gf2 T
invMatrixnv_gf2.o GeMSS_256U_invMatrixnv_gf2 T
invMatrixnv_gf2.o GeMSS_256U_invMatrixnv_nocst_gf2 T
inv_gf2n.o GeMSS_256U_inv_EEA_gf2n T
inv_gf2n.o GeMSS_256U_inv_ITMIA_gf2n T
matVecProduct_gf2.o GeMSS_256U_matVecProduct_gf2 T
mixEquationsMQS_gf2.o GeMSS_256U_mixEquationsMQS_gf2_left T
mixEquationsMQS_gf2.o GeMSS_256U_mixEquationsMQS_gf2_right T
mul_gf2x.o GeMSS_256U_mul128 T
mul_gf2x.o GeMSS_256U_mul160 T
mul_gf2x.o GeMSS_256U_mul192 T
mul_gf2x.o GeMSS_256U_mul224 T
mul_gf2x.o GeMSS_256U_mul256 T
mul_gf2x.o GeMSS_256U_mul288 T
mul_gf2x.o GeMSS_256U_mul320 T
mul_gf2x.o GeMSS_256U_mul352 T
mul_gf2x.o GeMSS_256U_mul384 T
mul_gf2x.o GeMSS_256U_mul416 T
mul_gf2x.o GeMSS_256U_mul448 T
mul_gf2x.o GeMSS_256U_mul480 T
mul_gf2x.o GeMSS_256U_mul512 T
mul_gf2x.o GeMSS_256U_mul544 T
mul_gf2x.o GeMSS_256U_mul576 T
mul_gf2x.o GeMSS_256U_mul64 T
mul_gf2x.o GeMSS_256U_mul64low T
mul_gf2x.o GeMSS_256U_mul96 T
predicate.o GeMSS_256U_CMP_GT T
predicate.o GeMSS_256U_CMP_LT T
predicate.o GeMSS_256U_ISEQUAL T
predicate.o GeMSS_256U_ISONE T
predicate.o GeMSS_256U_ISZERO T
printHFE.o GeMSS_256U_printDocument T
printHFE.o GeMSS_256U_printSignature T
printHFE.o GeMSS_256U_printSignature_uncompressed T
print_gf2x.o GeMSS_256U_print_gf2x T
quickSort_gf2n.o GeMSS_256U_quickSort_gf2n T
randMatrix_gf2.o GeMSS_256U_genLowerMatrixn T
randMatrix_gf2.o GeMSS_256U_genLowerMatrixnv T
randMatrix_gf2.o GeMSS_256U_randInvMatrixLU_gf2_n T
randMatrix_gf2.o GeMSS_256U_randInvMatrixLU_gf2_nv T
randMatrix_gf2.o GeMSS_256U_randInvMatrix_gf2_n T
randMatrix_gf2.o GeMSS_256U_randInvMatrix_gf2_nv T
randMatrix_gf2.o GeMSS_256U_randMatrix_gf2_n T
randMatrix_gf2.o GeMSS_256U_randMatrix_gf2_nv T
rand_gf2nx.o GeMSS_256U_randMonicHFE_gf2nx T
rand_gf2nx.o GeMSS_256U_randMonicHFEv_gf2nx T
rand_gf2nx.o GeMSS_256U_randMonic_gf2nx T
rand_gf2nx.o GeMSS_256U_rand_gf2nx T
rem_gf2n.o GeMSS_256U_rem_noSIMD_gf2n T
rem_gf2x.o GeMSS_256U_rem128_pentanom T
rem_gf2x.o GeMSS_256U_rem128_pentanom_k128 T
rem_gf2x.o GeMSS_256U_rem128_trinom T
rem_gf2x.o GeMSS_256U_rem160_pentanom T
rem_gf2x.o GeMSS_256U_rem160_trinom T
rem_gf2x.o GeMSS_256U_rem192_pentanom T
rem_gf2x.o GeMSS_256U_rem192_pentanom_k192 T
rem_gf2x.o GeMSS_256U_rem192_trinom T
rem_gf2x.o GeMSS_256U_rem224_pentanom T
rem_gf2x.o GeMSS_256U_rem224_trinom T
rem_gf2x.o GeMSS_256U_rem256_pentanom T
rem_gf2x.o GeMSS_256U_rem256_pentanom_k256 T
rem_gf2x.o GeMSS_256U_rem256_trinom T
rem_gf2x.o GeMSS_256U_rem288_pentanom T
rem_gf2x.o GeMSS_256U_rem288_trinom T
rem_gf2x.o GeMSS_256U_rem320_pentanom T
rem_gf2x.o GeMSS_256U_rem320_pentanom_k320 T
rem_gf2x.o GeMSS_256U_rem320_trinom T
rem_gf2x.o GeMSS_256U_rem32_pentanom T
rem_gf2x.o GeMSS_256U_rem32_trinom T
rem_gf2x.o GeMSS_256U_rem352_pentanom T
rem_gf2x.o GeMSS_256U_rem352_trinom T
rem_gf2x.o GeMSS_256U_rem384_pentanom T
rem_gf2x.o GeMSS_256U_rem384_pentanom_k384 T
rem_gf2x.o GeMSS_256U_rem384_trinom T
rem_gf2x.o GeMSS_256U_rem416_pentanom T
rem_gf2x.o GeMSS_256U_rem416_trinom T
rem_gf2x.o GeMSS_256U_rem448_pentanom T
rem_gf2x.o GeMSS_256U_rem448_pentanom_k448 T
rem_gf2x.o GeMSS_256U_rem448_trinom T
rem_gf2x.o GeMSS_256U_rem480_pentanom T
rem_gf2x.o GeMSS_256U_rem480_trinom T
rem_gf2x.o GeMSS_256U_rem512_pentanom T
rem_gf2x.o GeMSS_256U_rem512_trinom T
rem_gf2x.o GeMSS_256U_rem544_pentanom T
rem_gf2x.o GeMSS_256U_rem544_trinom T
rem_gf2x.o GeMSS_256U_rem576_pentanom T
rem_gf2x.o GeMSS_256U_rem576_trinom T
rem_gf2x.o GeMSS_256U_rem64_pentanom T
rem_gf2x.o GeMSS_256U_rem64_trinom T
rem_gf2x.o GeMSS_256U_rem96_pentanom T
rem_gf2x.o GeMSS_256U_rem96_trinom T
signHFE.o GeMSS_256U_precSignHFE T
signHFE.o GeMSS_256U_signHFE1 T
signHFE.o GeMSS_256U_signHFE1withPrec T
signHFE.o GeMSS_256U_signHFE_FeistelPatarin T
sign_keypairHFE.o GeMSS_256U_sign_keypairHFE T
sign_openHFE.o GeMSS_256U_sign_openHFE T
sqr_gf2nx.o GeMSS_256U_sqr_HFE_gf2nx T
sqr_gf2nx.o GeMSS_256U_sqr_gf2nx T
sqr_gf2x.o GeMSS_256U_old_square128 T
sqr_gf2x.o GeMSS_256U_old_square160 T
sqr_gf2x.o GeMSS_256U_old_square192 T
sqr_gf2x.o GeMSS_256U_old_square224 T
sqr_gf2x.o GeMSS_256U_old_square256 T
sqr_gf2x.o GeMSS_256U_old_square288 T
sqr_gf2x.o GeMSS_256U_old_square320 T
sqr_gf2x.o GeMSS_256U_old_square352 T
sqr_gf2x.o GeMSS_256U_old_square384 T
sqr_gf2x.o GeMSS_256U_old_square416 T
sqr_gf2x.o GeMSS_256U_old_square448 T
sqr_gf2x.o GeMSS_256U_old_square480 T
sqr_gf2x.o GeMSS_256U_old_square512 T
sqr_gf2x.o GeMSS_256U_old_square544 T
sqr_gf2x.o GeMSS_256U_old_square576 T
sqr_gf2x.o GeMSS_256U_old_square64 T
sqr_gf2x.o GeMSS_256U_old_square64low T
sqr_gf2x.o GeMSS_256U_old_square96 T
sqr_gf2x.o GeMSS_256U_sqr128 T
sqr_gf2x.o GeMSS_256U_sqr160 T
sqr_gf2x.o GeMSS_256U_sqr192 T
sqr_gf2x.o GeMSS_256U_sqr224 T
sqr_gf2x.o GeMSS_256U_sqr256 T
sqr_gf2x.o GeMSS_256U_sqr288 T
sqr_gf2x.o GeMSS_256U_sqr320 T
sqr_gf2x.o GeMSS_256U_sqr352 T
sqr_gf2x.o GeMSS_256U_sqr384 T
sqr_gf2x.o GeMSS_256U_sqr416 T
sqr_gf2x.o GeMSS_256U_sqr448 T
sqr_gf2x.o GeMSS_256U_sqr480 T
sqr_gf2x.o GeMSS_256U_sqr512 T
sqr_gf2x.o GeMSS_256U_sqr544 T
sqr_gf2x.o GeMSS_256U_sqr576 T
sqr_gf2x.o GeMSS_256U_sqr64 T
sqr_gf2x.o GeMSS_256U_sqr64low T
sqr_gf2x.o GeMSS_256U_sqr96 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductm_64 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductn_64 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductnv_64 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductnvn_64 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductnvn_start_64 T
vecMatProduct_gf2.o GeMSS_256U_vecMatProductv_64 T

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:skylake
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:skylake
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:skylake