Implementation notes: amd64, rumba5, crypto_kem/sikep751

Computer: rumba5
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20220506
Operation: crypto_kem
Primitive: sikep751
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11802580496392 0 0116556 812 1712T:mulxadxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
11805789596392 0 0116556 812 1712T:mulxadxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
118156254118886 0 0139372 812 1712T:mulxadxclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
11818041396994 0 0117252 812 1712T:mulxadxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
11853551546112 0 064498 804 1712T:mulxadxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
11935186980278 0 0102721 812 1744T:mulxadxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12143679038750 0 059129 812 1744T:mulxadxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
121974207118253 0 0138732 812 1712T:mulxclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
12199617036206 0 056201 812 1744T:mulxadxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12205968595759 0 0115916 812 1712T:mulxclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
12206086995759 0 0115916 812 1712T:mulxclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
12209434096361 0 0116612 812 1712T:mulxclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
12240669745479 0 063858 804 1712T:mulxclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
12335144232063 0 051009 804 1712T:mulxadxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12370297479645 0 0102081 812 1744T:mulxgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12544269338117 0 058489 812 1744T:mulxgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12712120435573 0 055625 812 1744T:mulxgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
12744270531430 0 050369 804 1712T:mulxgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
131331775118514 0 0138988 812 1712T:amd64asmclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
13140169496020 0 0116172 812 1712T:amd64asmclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
13143831696020 0 0116172 812 1712T:amd64asmclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
13147060996622 0 0116868 812 1712T:amd64asmclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
13157928345740 0 064178 804 1712T:amd64asmclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
13310077279906 0 0102401 812 1744T:amd64asmgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
13518277138378 0 058745 812 1744T:amd64asmgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
13667283335834 0 055881 812 1744T:amd64asmgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
13680855331691 0 050625 804 1712T:amd64asmgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
95122895798480 0 0118708 812 1712T:amd64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
95523756989246 0 0109500 812 1712T:amd64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
95551716089246 0 0109500 812 1712T:amd64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
986077962120452 0 0140972 812 1712T:amd64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
1036713867142038 0 0164497 812 1744T:amd64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
123879959938892 0 059273 812 1744T:amd64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
125772994445617 0 064026 804 1712T:amd64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110820211108
130641985436443 0 056497 812 1744T:amd64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
202358624025887 0 044841 804 1712T:amd64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
1184126037872038 1136 0309056 2108 1776T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
1184752299449102 1088 0282223 2068 1744T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110920211108
1186997909134943 1088 0265629 2060 1744T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110920211108
1188680385843309 1088 0277279 2068 1744T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110920211108
1189928132444834 1088 0277903 2068 1744T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110920211108
1196561385644834 1088 0277903 2068 1744T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2021110920211108
1196961645135783 1136 0269216 2100 1744T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110820211108
1198987505538984 1136 0273888 2108 1776T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110920211108
1221216594238923 1136 0273456 2108 1776T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021110920211108

Namespace violations

Implementation: T:amd64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
P751.o A_gen R
P751.o Alice_order R
P751.o B_gen R
P751.o Bob_order R
P751.o EphemeralKeyGeneration_A_SIDHp751 T
P751.o EphemeralKeyGeneration_B_SIDHp751 T
P751.o EphemeralSecretAgreement_A_SIDHp751 T
P751.o EphemeralSecretAgreement_B_SIDHp751 T
P751.o Montgomery_R2 R
P751.o Montgomery_one R
P751.o clear_words T
P751.o copy_words T
P751.o ct_cmov T
P751.o ct_compare T
P751.o eval_3_isog T
P751.o eval_4_isog T
P751.o fp2add751 T
P751.o fp2copy751 T
P751.o fp2correction751 T
P751.o fp2div2_751 T
P751.o fp2inv751_mont T
P751.o fp2mul751_mont T
P751.o fp2neg751 T
P751.o fp2sqr751_mont T
P751.o fp2sub751 T
P751.o fp2zero751 T
P751.o fpcopy751 T
P751.o fpinv751_chain_mont T
P751.o fpinv751_mont T
P751.o fpmul751_mont T
P751.o fpsqr751_mont T
P751.o fpzero751 T
P751.o from_fp2mont T
P751.o from_mont T
P751.o get_3_isog T
P751.o get_4_isog T
P751.o get_A T
P751.o inv_3_way T
P751.o j_inv T
P751.o mp_add T
P751.o mp_shiftl1 T
P751.o mp_shiftleft T
P751.o mp_shiftr1 T
P751.o mp_sub T
P751.o p751 R
P751.o p751p1 R
P751.o p751x16p R
P751.o p751x2 R
P751.o p751x4 R
P751.o random_mod_order_A_SIDHp751 T
P751.o random_mod_order_B_SIDHp751 T
P751.o strat_Alice R
P751.o strat_Bob R
P751.o to_fp2mont T
P751.o to_mont T
P751.o xDBL T
P751.o xDBLADD T
P751.o xDBLe T
P751.o xTPL T
P751.o xTPLe T
fips202.o KeccakF1600_StatePermute T
fips202.o shake128 T
fips202.o shake128_absorb T
fips202.o shake128_squeezeblocks T
fips202.o shake256 T
fips202.o shake256_absorb T
fips202.o shake256_squeezeblocks T
fp_generic.o digit_x_digit T
fp_generic.o fpadd751 T
fp_generic.o fpcorrection751 T
fp_generic.o fpdiv2_751 T
fp_generic.o fpneg751 T
fp_generic.o fpsub751 T
fp_generic.o mp_mul T
fp_generic.o mp_sub751_p2 T
fp_generic.o mp_sub751_p4 T
fp_generic.o rdc_mont T

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64

Namespace violations

Implementation: T:amd64asm
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
P751.o A_gen R
P751.o Alice_order R
P751.o B_gen R
P751.o Bob_order R
P751.o EphemeralKeyGeneration_A_SIDHp751 T
P751.o EphemeralKeyGeneration_B_SIDHp751 T
P751.o EphemeralSecretAgreement_A_SIDHp751 T
P751.o EphemeralSecretAgreement_B_SIDHp751 T
P751.o Montgomery_R2 R
P751.o Montgomery_one R
P751.o clear_words T
P751.o copy_words T
P751.o ct_cmov T
P751.o ct_compare T
P751.o eval_3_isog T
P751.o eval_4_isog T
P751.o fp2add751 T
P751.o fp2copy751 T
P751.o fp2correction751 T
P751.o fp2div2_751 T
P751.o fp2inv751_mont T
P751.o fp2mul751_mont T
P751.o fp2neg751 T
P751.o fp2sqr751_mont T
P751.o fp2sub751 T
P751.o fp2zero751 T
P751.o fpcopy751 T
P751.o fpinv751_chain_mont T
P751.o fpinv751_mont T
P751.o fpmul751_mont T
P751.o fpsqr751_mont T
P751.o fpzero751 T
P751.o from_fp2mont T
P751.o from_mont T
P751.o get_3_isog T
P751.o get_4_isog T
P751.o get_A T
P751.o inv_3_way T
P751.o j_inv T
P751.o mp_add T
P751.o mp_shiftl1 T
P751.o mp_shiftleft T
P751.o mp_shiftr1 T
P751.o mp_sub T
P751.o p751 R
P751.o p751p1 R
P751.o p751x16p R
P751.o p751x2 R
P751.o p751x4 R
P751.o random_mod_order_A_SIDHp751 T
P751.o random_mod_order_B_SIDHp751 T
P751.o strat_Alice R
P751.o strat_Bob R
P751.o to_fp2mont T
P751.o to_mont T
P751.o xDBL T
P751.o xDBLADD T
P751.o xDBLe T
P751.o xTPL T
P751.o xTPLe T
fips202.o KeccakF1600_StatePermute T
fips202.o shake128 T
fips202.o shake128_absorb T
fips202.o shake128_squeezeblocks T
fips202.o shake256 T
fips202.o shake256_absorb T
fips202.o shake256_squeezeblocks T
fp_x64.o fpadd751 T
fp_x64.o fpcorrection751 T
fp_x64.o fpdiv2_751 T
fp_x64.o fpneg751 T
fp_x64.o fpsub751 T
fp_x64.o mp_mul T
fp_x64.o mp_sub751_p2 T
fp_x64.o mp_sub751_p4 T
fp_x64.o rdc_mont T
fp_x64_asm.o fpadd751_asm T
fp_x64_asm.o fpsub751_asm T
fp_x64_asm.o mp_add751_asm T
fp_x64_asm.o mp_dblsub751x2_asm T
fp_x64_asm.o mp_sub751_p2_asm T
fp_x64_asm.o mp_sub751_p4_asm T
fp_x64_asm.o mp_subadd751x2_asm T
fp_x64_asm.o mul751_asm T
fp_x64_asm.o rdc751_asm T

Number of similar (compiler,implementation) pairs: 27, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64asm
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64asm
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64asm
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64asm
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:amd64asm
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64asm
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64asm
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64asm
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:amd64asm
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulx
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulx
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulxadx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulxadx
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulxadx
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulxadx
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:mulxadx
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulxadx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulxadx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulxadx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:mulxadx

Namespace violations

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
api_generic.o crypto_kem_dec_generic T
api_generic.o crypto_kem_enc_generic T
api_generic.o crypto_kem_keypair_generic T
encoding.o clear_free T
encoding.o encapstoos T
encoding.o encapstoos_alloc T
encoding.o encapstoos_len T
encoding.o fp2toos T
encoding.o fp2toos_alloc T
encoding.o fp2toos_len T
encoding.o ostoencaps T
encoding.o ostofp T
encoding.o ostofp2 T
encoding.o ostoi T
encoding.o ostopk T
encoding.o ostosk T
encoding.o pktoos T
encoding.o pktoos_alloc T
encoding.o pktoos_len T
encoding.o sktoos T
encoding.o sktoos_len T
fips202.o KeccakF1600_StatePermute T
fips202.o cshake128_simple T
fips202.o cshake128_simple_absorb T
fips202.o cshake128_simple_squeezeblocks T
fips202.o cshake256_simple T
fips202.o cshake256_simple_absorb T
fips202.o cshake256_simple_squeezeblocks T
fips202.o shake128 T
fips202.o shake128_absorb T
fips202.o shake128_squeezeblocks T
fips202.o shake256 T
fips202.o shake256_absorb T
fips202.o shake256_squeezeblocks T
fp.o fp_Add T
fp.o fp_Clear T
fp.o fp_Constant T
fp.o fp_Copy T
fp.o fp_ImportHex T
fp.o fp_Init T
fp.o fp_Invert T
fp.o fp_IsBitSet T
fp.o fp_IsConstant T
fp.o fp_IsEqual T
fp.o fp_Multiply T
fp.o fp_Negative T
fp.o fp_Pow T
fp.o fp_Rand T
fp.o fp_Square T
fp.o fp_Subtract T
fp.o fp_Unity T
fp.o fp_Zero T
fp.o mp_export T
fp.o mp_import T
fp.o mp_mod T
fp.o mp_pow T
fp.o mp_sizeinbase T
fp.o set_gmp_fp_params T
fp2.o fp2_Add T
fp2.o fp2_AddDeg1 T
fp2.o fp2_Clear T
fp2.o fp2_Copy T
fp2.o fp2_Init T
fp2.o fp2_Init_set T
fp2.o fp2_Invert T
fp2.o fp2_IsConst T
fp2.o fp2_IsEqual T
fp2.o fp2_Multiply T
fp2.o fp2_Negative T
fp2.o fp2_Rand T
fp2.o fp2_Set T
fp2.o fp2_Sqrt T
fp2.o fp2_Square T
fp2.o fp2_Sub T
isogeny.o curve_2_iso T
isogeny.o curve_3_iso T
isogeny.o curve_4_iso T
isogeny.o eval_2_iso T
isogeny.o eval_3_iso T
isogeny.o eval_4_iso T
isogeny.o iso_2_e T
isogeny.o iso_3_e T
montgomery.o get_xR T
montgomery.o get_yP_yQ_A_B T
montgomery.o j_inv T
montgomery.o mont_curve_clear T
montgomery.o mont_curve_copy T
montgomery.o mont_curve_init T
montgomery.o mont_double_and_add T
montgomery.o mont_pt_clear T
montgomery.o mont_pt_copy T
montgomery.o mont_pt_init T
montgomery.o public_key_clear T
montgomery.o public_key_init T
montgomery.o xADD T
montgomery.o xDBL T
montgomery.o xDBLe T
montgomery.o xTPL T
montgomery.o xTPLe T
sidh.o sidh_isoex T
sidh.o sidh_isogen T
sidh.o sidh_sk_keygen T
sike.o sike_kem_decaps T
sike.o sike_kem_encaps T
sike.o sike_kem_keygen T
sike.o sike_pke_dec T
sike.o sike_pke_enc T
sike_params.o SIKEp434 D
sike_params.o SIKEp503 D
sike_params.o SIKEp610 D
sike_params.o SIKEp751 D
sike_params.o sike_setup_params T
sike_params.o sike_teardown_params T

Number of similar (compiler,implementation) pairs: 9, 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
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref