Implementation notes: aarch64, pi3aplus, crypto_kem/sikep751comp

Computer: pi3aplus
Microarchitecture: aarch64; Cortex-A53 (410fd034)
Architecture: aarch64
CPU ID: 410fd034
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: sikep751comp
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5422586821045108 0 81061813 792 1568T:arm64asmclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010720231212
543465506974840 0 8993344 856 1568T:arm64asmgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
546284030927316 0 8944592 856 1552T:arm64asmgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
546330062902600 0 8918904 840 1552T:arm64asmgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
550633344919444 0 8936664 856 1552T:arm64asmgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
2513946630981696 0 81000264 872 1568T:arm64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
2514432686981696 0 81000264 872 1568T:amd64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
27392712971020532 0 81037189 808 1568T:arm64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010720231212
27398134561020532 0 81037189 808 1568T:amd64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024010720231212
3307321002926704 0 8944040 872 1552T:arm64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
3308710906926704 0 8944040 872 1552T:amd64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
4232416024918276 0 8935552 872 1552T:amd64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
4232574982918276 0 8935552 872 1552T:arm64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
5466973168898268 0 8914640 856 1552T:amd64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212
5468847079898268 0 8914640 856 1552T:arm64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024010720231212

Compiler output

Implementation: T:arm64asm
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
fp_arm64.c: fp_arm64.c:71:5: warning: implicit declaration of function 'mp_shiftr1' is invalid in C99 [-Wimplicit-function-declaration]
fp_arm64.c: mp_shiftr1(c, NWORDS_FIELD);
fp_arm64.c: ^
fp_arm64.c: 1 warning generated.

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

Compiler output

Implementation: T:arm64asm
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
fp_arm64.c: fp_arm64.c: In function 'fpdiv2_751':
fp_arm64.c: fp_arm64.c:71:5: warning: implicit declaration of function 'mp_shiftr1' [-Wimplicit-function-declaration]
fp_arm64.c: mp_shiftr1(c, NWORDS_FIELD);
fp_arm64.c: ^~~~~~~~~~

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

Namespace violations

Implementation: T:amd64
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
P751_compressed.o A_basis_zero R
P751_compressed.o A_gen R
P751_compressed.o Alice_order R
P751_compressed.o B_basis_zero R
P751_compressed.o B_gen R
P751_compressed.o B_gen_3_tors R
P751_compressed.o Bob_order R
P751_compressed.o CompleteMPoint T
P751_compressed.o Double T
P751_compressed.o EphemeralKeyGeneration_A_SIDHp751_Compressed T
P751_compressed.o EphemeralKeyGeneration_B_SIDHp751_Compressed T
P751_compressed.o EphemeralSecretAgreement_A_SIDHp751_Compressed T
P751_compressed.o EphemeralSecretAgreement_B_SIDHp751_Compressed T
P751_compressed.o FormatPrivKey_B T
P751_compressed.o Ladder T
P751_compressed.o Montgomery_R2 R
P751_compressed.o Montgomery_RB1 R
P751_compressed.o Montgomery_RB2 R
P751_compressed.o Montgomery_inversion_mod_order_bingcd T
P751_compressed.o Montgomery_multiply_mod_order T
P751_compressed.o Montgomery_neg T
P751_compressed.o Montgomery_one R
P751_compressed.o T_tate2_P R
P751_compressed.o T_tate2_Q R
P751_compressed.o T_tate2_firststep_P R
P751_compressed.o T_tate2_firststep_Q R
P751_compressed.o T_tate3 R
P751_compressed.o Tate2_pairings T
P751_compressed.o Tate3_pairings T
P751_compressed.o Traverse_w_div_e_fullsigned T
P751_compressed.o Traverse_w_div_e_torus T
P751_compressed.o Traverse_w_notdiv_e_fullsigned T
P751_compressed.o U3 R
P751_compressed.o XQB3 R
P751_compressed.o clear_words T
P751_compressed.o cmp_f2elm T
P751_compressed.o copy_words T
P751_compressed.o ct_cmov T
P751_compressed.o ct_compare T
P751_compressed.o cube_Fp2_cycl T
P751_compressed.o eval_3_isog T
P751_compressed.o eval_4_isog T
P751_compressed.o fp2_conj T
P751_compressed.o fp2add751 T
P751_compressed.o fp2copy751 T
P751_compressed.o fp2correction751 T
P751_compressed.o fp2div2_751 T
P751_compressed.o fp2inv751_mont T
P751_compressed.o fp2inv751_mont_bingcd T
P751_compressed.o fp2mul751_mont T
P751_compressed.o fp2neg751 T
P751_compressed.o fp2shl T
P751_compressed.o fp2sqr751_mont T
P751_compressed.o fp2sub751 T
P751_compressed.o fp2zero751 T
P751_compressed.o fpcopy751 T
P751_compressed.o fpinv751_chain_mont T
P751_compressed.o fpinv751_mont T
P751_compressed.o fpinv751_mont_bingcd T
P751_compressed.o fpmul751_mont T
P751_compressed.o fpsqr751_mont T
P751_compressed.o fpzero751 T
P751_compressed.o from_Montgomery_mod_order T
P751_compressed.o from_base T
P751_compressed.o from_fp2mont T
P751_compressed.o from_mont T
P751_compressed.o fromproj T
P751_compressed.o g_R_S_im R
P751_compressed.o get_3_isog T
P751_compressed.o get_4_isog T
P751_compressed.o get_A T
P751_compressed.o highest_2t T
P751_compressed.o highest_t T
P751_compressed.o inv_3_way T
P751_compressed.o inv_Fp2_cycl_proj T
P751_compressed.o inv_mod_orderA T
P751_compressed.o is_sqr_fp2 T
P751_compressed.o j_inv T
P751_compressed.o mod T
P751_compressed.o mod3 T
P751_compressed.o mont_n_way_inv T
P751_compressed.o mp_add T
P751_compressed.o mp_shiftl1 T
P751_compressed.o mp_shiftleft T
P751_compressed.o mp_shiftr1 T
P751_compressed.o mp_sub T
P751_compressed.o mul3 T
P751_compressed.o mulmixed_montproj T
P751_compressed.o multiply T
P751_compressed.o ord2w_dlog T
P751_compressed.o ord2w_dloghyb T
P751_compressed.o p751 R
P751_compressed.o p751p1 R
P751_compressed.o p751x16p R
P751_compressed.o p751x2 R
P751_compressed.o p751x4 R
P751_compressed.o ph2_CT R
P751_compressed.o ph2_G R
P751_compressed.o ph2_Log R
P751_compressed.o ph2_Texp R
P751_compressed.o ph2_path R
P751_compressed.o ph3_T B
P751_compressed.o ph3_T1 R
P751_compressed.o ph3_T2 R
P751_compressed.o ph3_path R
P751_compressed.o random_mod_order_A_SIDHp751 T
P751_compressed.o random_mod_order_B_SIDHp751 T
P751_compressed.o recover_os T
P751_compressed.o reverse_bits T
P751_compressed.o solve_dlog T
P751_compressed.o sqr_Fp2_cycl T
P751_compressed.o sqr_Fp2_cycl_proj T
P751_compressed.o sqrt_Fp2 T
P751_compressed.o strat_Alice R
P751_compressed.o strat_Bob R
P751_compressed.o table_r_qnr R
P751_compressed.o table_r_qr R
P751_compressed.o table_v_qnr R
P751_compressed.o table_v_qr R
P751_compressed.o threeinv R
P751_compressed.o to_Montgomery_mod_order T
P751_compressed.o to_fp2mont T
P751_compressed.o to_mont T
P751_compressed.o toproj T
P751_compressed.o u_entang R
P751_compressed.o v_3_torsion R
P751_compressed.o validate_ciphertext T
P751_compressed.o xDBL T
P751_compressed.o xDBLADD T
P751_compressed.o xDBL_e T
P751_compressed.o xDBLe T
P751_compressed.o xTPL T
P751_compressed.o xTPL_fast T
P751_compressed.o xTPLe T
P751_compressed.o xTPLe_fast 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: 10, namely:
CompilerImplementations
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
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:arm64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:arm64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:arm64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:arm64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:arm64

Namespace violations

Implementation: T:arm64asm
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
P751_compressed.o A_basis_zero R
P751_compressed.o A_gen R
P751_compressed.o Alice_order R
P751_compressed.o B_basis_zero R
P751_compressed.o B_gen R
P751_compressed.o B_gen_3_tors R
P751_compressed.o Bob_order R
P751_compressed.o CompleteMPoint T
P751_compressed.o Double T
P751_compressed.o EphemeralKeyGeneration_A_SIDHp751_Compressed T
P751_compressed.o EphemeralKeyGeneration_B_SIDHp751_Compressed T
P751_compressed.o EphemeralSecretAgreement_A_SIDHp751_Compressed T
P751_compressed.o EphemeralSecretAgreement_B_SIDHp751_Compressed T
P751_compressed.o FormatPrivKey_B T
P751_compressed.o Ladder T
P751_compressed.o Montgomery_R2 R
P751_compressed.o Montgomery_RB1 R
P751_compressed.o Montgomery_RB2 R
P751_compressed.o Montgomery_inversion_mod_order_bingcd T
P751_compressed.o Montgomery_multiply_mod_order T
P751_compressed.o Montgomery_neg T
P751_compressed.o Montgomery_one R
P751_compressed.o T_tate2_P R
P751_compressed.o T_tate2_Q R
P751_compressed.o T_tate2_firststep_P R
P751_compressed.o T_tate2_firststep_Q R
P751_compressed.o T_tate3 R
P751_compressed.o Tate2_pairings T
P751_compressed.o Tate3_pairings T
P751_compressed.o Traverse_w_div_e_fullsigned T
P751_compressed.o Traverse_w_div_e_torus T
P751_compressed.o Traverse_w_notdiv_e_fullsigned T
P751_compressed.o U3 R
P751_compressed.o XQB3 R
P751_compressed.o clear_words T
P751_compressed.o cmp_f2elm T
P751_compressed.o copy_words T
P751_compressed.o ct_cmov T
P751_compressed.o ct_compare T
P751_compressed.o cube_Fp2_cycl T
P751_compressed.o eval_3_isog T
P751_compressed.o eval_4_isog T
P751_compressed.o fp2_conj T
P751_compressed.o fp2add751 T
P751_compressed.o fp2copy751 T
P751_compressed.o fp2correction751 T
P751_compressed.o fp2div2_751 T
P751_compressed.o fp2inv751_mont T
P751_compressed.o fp2inv751_mont_bingcd T
P751_compressed.o fp2mul751_mont T
P751_compressed.o fp2neg751 T
P751_compressed.o fp2shl T
P751_compressed.o fp2sqr751_mont T
P751_compressed.o fp2sub751 T
P751_compressed.o fp2zero751 T
P751_compressed.o fpcopy751 T
P751_compressed.o fpinv751_chain_mont T
P751_compressed.o fpinv751_mont T
P751_compressed.o fpinv751_mont_bingcd T
P751_compressed.o fpmul751_mont T
P751_compressed.o fpsqr751_mont T
P751_compressed.o fpzero751 T
P751_compressed.o from_Montgomery_mod_order T
P751_compressed.o from_base T
P751_compressed.o from_fp2mont T
P751_compressed.o from_mont T
P751_compressed.o fromproj T
P751_compressed.o g_R_S_im R
P751_compressed.o get_3_isog T
P751_compressed.o get_4_isog T
P751_compressed.o get_A T
P751_compressed.o highest_2t T
P751_compressed.o highest_t T
P751_compressed.o inv_3_way T
P751_compressed.o inv_Fp2_cycl_proj T
P751_compressed.o inv_mod_orderA T
P751_compressed.o is_sqr_fp2 T
P751_compressed.o j_inv T
P751_compressed.o mod T
P751_compressed.o mod3 T
P751_compressed.o mont_n_way_inv T
P751_compressed.o mp_add T
P751_compressed.o mp_shiftl1 T
P751_compressed.o mp_shiftleft T
P751_compressed.o mp_shiftr1 T
P751_compressed.o mp_sub T
P751_compressed.o mul3 T
P751_compressed.o mulmixed_montproj T
P751_compressed.o multiply T
P751_compressed.o ord2w_dlog T
P751_compressed.o ord2w_dloghyb T
P751_compressed.o p751 R
P751_compressed.o p751p1 R
P751_compressed.o p751x16p R
P751_compressed.o p751x2 R
P751_compressed.o p751x4 R
P751_compressed.o ph2_CT R
P751_compressed.o ph2_G R
P751_compressed.o ph2_Log R
P751_compressed.o ph2_Texp R
P751_compressed.o ph2_path R
P751_compressed.o ph3_T B
P751_compressed.o ph3_T1 R
P751_compressed.o ph3_T2 R
P751_compressed.o ph3_path R
P751_compressed.o random_mod_order_A_SIDHp751 T
P751_compressed.o random_mod_order_B_SIDHp751 T
P751_compressed.o recover_os T
P751_compressed.o reverse_bits T
P751_compressed.o solve_dlog T
P751_compressed.o sqr_Fp2_cycl T
P751_compressed.o sqr_Fp2_cycl_proj T
P751_compressed.o sqrt_Fp2 T
P751_compressed.o strat_Alice R
P751_compressed.o strat_Bob R
P751_compressed.o table_r_qnr R
P751_compressed.o table_r_qr R
P751_compressed.o table_v_qnr R
P751_compressed.o table_v_qr R
P751_compressed.o threeinv R
P751_compressed.o to_Montgomery_mod_order T
P751_compressed.o to_fp2mont T
P751_compressed.o to_mont T
P751_compressed.o toproj T
P751_compressed.o u_entang R
P751_compressed.o v_3_torsion R
P751_compressed.o validate_ciphertext T
P751_compressed.o xDBL T
P751_compressed.o xDBLADD T
P751_compressed.o xDBL_e T
P751_compressed.o xDBLe T
P751_compressed.o xTPL T
P751_compressed.o xTPL_fast T
P751_compressed.o xTPLe T
P751_compressed.o xTPLe_fast 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_arm64.o fpadd751 T
fp_arm64.o fpcorrection751 T
fp_arm64.o fpdiv2_751 T
fp_arm64.o fpneg751 T
fp_arm64.o fpsub751 T
fp_arm64.o mp_mul T
fp_arm64.o mp_sub751_p2 T
fp_arm64.o mp_sub751_p4 T
fp_arm64.o rdc_mont T
fp_arm64_asm.o fpadd751_asm T
fp_arm64_asm.o fpsub751_asm T
fp_arm64_asm.o mp_add751_asm T
fp_arm64_asm.o mp_add751x2_asm T
fp_arm64_asm.o mp_dblsub751x2_asm T
fp_arm64_asm.o mp_sub751_p2_asm T
fp_arm64_asm.o mp_sub751_p4_asm T
fp_arm64_asm.o mp_subadd751x2_asm T
fp_arm64_asm.o mul751_asm T
fp_arm64_asm.o rdc751_asm T

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