Skip to content

HOL-Light: Minor clean-ups - #1502

Merged
hanno-becker merged 1 commit into
mainfrom
hol-speedup-followup
Nov 4, 2026
Merged

hanno-becker merged 1 commit into
mainfrom
hol-speedup-followup

Conversation

@mkannwischer

Copy link
Copy Markdown
Contributor

No description provided.

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44, REDUCE-RAM)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1334s 1314s +1.5%
caddq LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 27s 27s +0%
decompose LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
fqmul LP64 bitwuzla* ✅ 23s 24s -4%
LP64 z3_smt_only ✅ 21s 20s +5%
fqscale LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 3s 1s +200%
intt_native_aarch64 LP64 bitwuzla ✅ 23s 24s -4%
LP64 z3* ✅ 2s 2s +0%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 1s +200%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 2s 2s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 11s 9s +22%
LP64 z3 ✅ 2s 3s -33%
intt_native_x86_64 LP64 bitwuzla ✅ 19s 16s +19%
LP64 z3* ✅ 4s 3s +33%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 6s 6s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 5s 5s +0%
LP64 cvc5_arrays_exp ✅ 8s 7s +14%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 4s 3s +33%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 3s -67%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 1s +100%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 3s 4s -25%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
keccak_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 4s 2s +100%
keccak_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 5s -40%
LP64 z3 ✅ 1s 2s -50%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_permute LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 2s -50%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 3s 1s +200%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 4s 2s +100%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 15s -20%
LP64 z3* ✅ 11s 13s -15%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 4s 2s +100%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
make_hint LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 117s 127s -8%
mld_check_pct LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 3s 5s -40%
mld_compute_pack_z LP64 cadical ✅ 38s 43s -12%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 1s +200%
ILP32 cvc5_arrays_exp ✅ 2s 2s +0%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 1s 1s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 2s 1s +100%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_no_bv_extract ✅ 47s 47s +0%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_h LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
mld_invntt_layer LP64 bitwuzla* ✅ 68s 66s +3%
LP64 z3_smt_only ✅ 76s 80s -5%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 1s +200%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 1s +200%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 10s 12s -17%
LP64 z3_no_bv_extract ✅ 195s 196s -1%
mld_ntt_layer LP64 bitwuzla* ✅ 22s 25s -12%
LP64 z3_no_bv_extract ✅ 3s 3s +0%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 29s 30s -3%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 95s 91s +4%
LP64 z3* ✅ 3s 2s +50%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 4s 4s +0%
mld_sign_finish LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
mld_sign_hook_resume LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 1s +400%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 1s +200%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 3s 4s -25%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 5s 2s +150%
LP64 z3* ✅ 4s 2s +100%
ntt_native_aarch64 LP64 bitwuzla ✅ 21s 19s +11%
LP64 z3* ✅ 2s 4s -50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 6s 5s +20%
LP64 z3 ✅ 2s 1s +100%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s 1s +200%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 3s -33%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 20s -15%
LP64 z3* ✅ 2s 3s -33%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 194s 191s +2%
LP64 z3* ✅ 3s 3s +0%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
pack_sig_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3_no_bv_extract* ✅ 2s 1s +100%
pack_sig_z LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
pointwise_acc_native_aarch64 LP64 cadical ✅ 59s 65s -9%
LP64 z3_smt_only* ✅ 5s 3s +67%
pointwise_acc_native_x86_64 LP64 cadical ✅ 54s 56s -4%
LP64 z3_smt_only* ✅ 4s 4s +0%
pointwise_native_aarch64 LP64 bitwuzla ✅ 22s 23s -4%
LP64 z3* ✅ 2s 3s -33%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 1s 3s -67%
LP64 cvc5_mbqi_enum ✅ 9s 11s -18%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 3s 3s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 23s 22s +5%
LP64 z3* ✅ 3s 3s +0%
poly_add LP64 cadical ✅ 49s 49s +0%
LP64 z3* ✅ 11s 10s +10%
poly_caddq LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_c LP64 bitwuzla ✅ 19s 19s +0%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native LP64 bitwuzla ✅ 113s 112s +1%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 34s +3%
LP64 z3* ✅ 3s 1s +200%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 129s 130s -1%
LP64 z3* ✅ 2s 2s +0%
poly_challenge LP64 bitwuzla ✅ 25s 25s +0%
LP64 z3* ✅ 13s 12s +8%
poly_chknorm LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 3s 2s +50%
poly_chknorm_c LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 8s 8s +0%
poly_chknorm_native LP64 bitwuzla ✅ 7s 8s -12%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 5s 3s +67%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
poly_decompose LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 1s 1s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 5s 2s +150%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 217s 232s -6%
LP64 z3* ✅ 4s 4s +0%
poly_decompose_native LP64 cadical ✅ 15s 14s +7%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 10s +0%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont_c LP64 bitwuzla ✅ 149s 161s -7%
LP64 z3_smt_only* ✅ 5s 5s +0%
poly_invntt_tomont_native LP64 bitwuzla ✅ 46s 43s +7%
LP64 z3* ✅ 4s 3s +33%
poly_ntt LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 5s 3s +67%
poly_ntt_c LP64 bitwuzla ✅ 53s 52s +2%
LP64 z3_smt_only* ✅ 10s 11s -9%
poly_ntt_native LP64 bitwuzla ✅ 29s 25s +16%
LP64 z3* ✅ 1s 3s -67%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 9s +0%
LP64 z3* ✅ 1s 2s -50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 194s 192s +1%
LP64 z3* ✅ 40s 40s +0%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 53s 54s -2%
LP64 z3* ✅ 2s 1s +100%
poly_power2round LP64 bitwuzla ✅ 311s 309s +1%
LP64 z3* ✅ 1s 4s -75%
poly_reduce LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 2s 3s -33%
poly_shiftl LP64 bitwuzla ✅ 10s 11s -9%
LP64 z3* ✅ 3s 4s -25%
poly_sub LP64 bitwuzla ✅ 15s 14s +7%
LP64 z3* ✅ 4s 1s +300%
poly_uniform LP64 bitwuzla ✅ 190s 166s +14%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_4x LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_eta LP64 bitwuzla ✅ 82s 81s +1%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_eta_4x LP64 cadical ✅ 61s 61s +0%
LP64 z3* ✅ 10s 8s +25%
poly_uniform_gamma1 LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_gamma1_4x LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 21s 19s +11%
LP64 z3* ✅ 5s 2s +150%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 10s 11s -9%
LP64 z3* ✅ 1s 4s -75%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 95s 89s +7%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 37s 33s +12%
LP64 z3* ✅ 1s 1s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 34s 32s +6%
LP64 z3* ✅ 4s 3s +33%
polyeta_pack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 1s +100%
polyeta_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 10s 8s +25%
polyt0_pack LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 1s 2s -50%
polyt0_unpack LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 8s 7s +14%
polyt1_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyt1_unpack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 2s 3s -33%
polyvec_matrix_expand_serial LP64 z3* ✅ 4s 1s +300%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 37s 43s -14%
LP64 z3_no_bv_extract* ✅ 3s 6s -50%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 464s 464s +0%
LP64 z3* ✅ 142s 144s -1%
polyveck_caddq LP64 cadical ✅ 103s 102s +1%
LP64 z3* ✅ 3s 3s +0%
polyveck_decompose_pack_w1 LP64 cadical ✅ 109s 106s +3%
LP64 z3* ✅ 2s 4s -50%
polyveck_invntt_tomont LP64 cadical ✅ 136s 136s +0%
LP64 z3* ✅ 3s 3s +0%
polyveck_ntt LP64 cadical ✅ 1s 1s +0%
LP64 z3* ✅ 1s 3s -67%
polyveck_reduce LP64 cadical ✅ 112s 134s -16%
LP64 z3* ✅ 5s 3s +67%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 17s 16s +6%
LP64 z3* ✅ 2s 2s +0%
polyvecl_chknorm LP64 cadical ✅ 53s 52s +2%
LP64 z3* ✅ 3s 1s +200%
polyvecl_ntt LP64 cadical ✅ 116s 115s +1%
LP64 z3* ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3_smt_only* ✅ 1s 3s -67%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s 2s +0%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 2s 1s +100%
LP64 z3_smt_only* ✅ 1s 2s -50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3* ✅ 3s 1s +200%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 30s 33s -9%
LP64 z3* ✅ 2s 1s +100%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 26s 25s +4%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 1s 2s -50%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 1s +100%
polyw1_unpack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack_32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
polyw1_unpack_88 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyz_pack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 2s +100%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 4s 3s +33%
polyz_unpack_c LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 8s 8s +0%
polyz_unpack_native LP64 bitwuzla ✅ 25s 27s -7%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 15s 17s -12%
LP64 z3* ✅ 5s 3s +67%
power2round LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
reduce32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
rej_eta LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 3s -33%
rej_eta_c LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 14s 14s +0%
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 17s 17s +0%
rej_uniform LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 9s 10s -10%
rej_uniform_c LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 8s 10s -20%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 4s 1s +300%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3_smt_only* ✅ 3s 2s +50%
rej_uniform_native LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 9s 9s +0%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3_smt_only* ✅ 8s 8s +0%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
shake128_release LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 2s +0%
shake128_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 1s 1s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 1s 3s -67%
shake256 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 3s -67%
shake256_absorb LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 1s 1s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
shake256_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
shake256_squeeze LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 2s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 3s -67%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 4s 1s +300%
sig_unpack_hints LP64 bitwuzla ✅ 53s 51s +4%
LP64 z3* ✅ 22s 20s +10%
sign_keypair LP64 cadical ✅ 47s 45s +4%
LP64 z3* ✅ 7s 5s +40%
sign_keypair_internal LP64 cadical ✅ 173s 147s +18%
LP64 z3_no_bv_extract* ✅ 15s 15s +0%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 30s 32s -6%
sign_signature LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 2s +50%
sign_signature_extmu LP64 cadical ✅ 21s 23s -9%
LP64 z3* ✅ 5s 3s +67%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 11s 13s -15%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 11s 13s -15%
LP64 z3* ✅ 5s 4s +25%
sign_verify LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
sign_verify_extmu LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 1s +200%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 224s 223s +0%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 2s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 1s 1s +0%
sk_s2hat_get_poly LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 13s 12s +8%
LP64 z3* ✅ 2s 2s +0%
unpack_sk LP64 cadical ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 1s 2s -50%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
unpack_sk_t0hat LP64 cadical ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
use_hint LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
yvec_get_poly LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
yvec_init LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1665s 1660s +0.3%
caddq LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 65s 65s +0%
decompose LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
fqmul LP64 bitwuzla* ✅ 22s 24s -8%
LP64 z3_smt_only ✅ 19s 19s +0%
fqscale LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 3s 2s +50%
intt_native_aarch64 LP64 bitwuzla ✅ 21s 21s +0%
LP64 z3* ✅ 3s 1s +200%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 1s +200%
LP64 cvc5_mbqi_enum ✅ 6s 8s -25%
LP64 z3 ✅ 2s 3s -33%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 2s +50%
intt_native_x86_64 LP64 bitwuzla ✅ 20s 18s +11%
LP64 z3* ✅ 3s 3s +0%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 6s 5s +20%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 4s 6s -33%
LP64 cvc5_arrays_exp ✅ 7s 9s -22%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 4s 2s +100%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 4s -50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 1s 2s -50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
keccak_init LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 3s +0%
keccak_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 1s 2s -50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 3s -33%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_smt_only ✅ 2s 3s -33%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 3s 2s +50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 1s 1s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 14s 14s +0%
LP64 z3* ✅ 12s 13s -8%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 4s -75%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 221s 222s -0%
mld_check_pct LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 5s 5s +0%
mld_compute_pack_z LP64 cadical ✅ 76s 65s +17%
LP64 z3_no_bv_extract* ✅ 3s 4s -25%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 2s +50%
ILP32 cvc5_arrays_exp ✅ 2s 1s +100%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 5s 1s +400%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 4s -75%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 1s 1s +0%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_no_bv_extract ✅ 46s 46s +0%
mld_ct_sel_int32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
mld_invntt_layer LP64 bitwuzla* ✅ 67s 66s +2%
LP64 z3_smt_only ✅ 89s 81s +10%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 3s +67%
LP64 z3* ✅ 4s 4s +0%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 4s -50%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 15s 15s +0%
LP64 z3_no_bv_extract ✅ 65s 59s +10%
mld_ntt_layer LP64 bitwuzla* ✅ 25s 23s +9%
LP64 z3_no_bv_extract ✅ 1s 2s -50%
mld_polymat_expand_entry LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
mld_sample_pack_s1_s2 LP64 cadical ✅ 34s 29s +17%
LP64 z3* ✅ 1s 3s -67%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 88s 92s -4%
LP64 z3* ✅ 1s 2s -50%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
mld_sign_finish LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 2s +100%
mld_value_barrier_i64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 1s +200%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
ntt_native_aarch64 LP64 bitwuzla ✅ 17s 22s -23%
LP64 z3* ✅ 2s 3s -33%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 5s 8s -38%
LP64 z3 ✅ 3s 3s +0%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 6s 5s +20%
LP64 z3 ✅ 2s 1s +100%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 18s -6%
LP64 z3* ✅ 3s 4s -25%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 183s 185s -1%
LP64 z3* ✅ 3s 1s +200%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
pack_sig_h LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
pack_sig_z LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
pointwise_acc_native_aarch64 LP64 cadical ✅ 56s 67s -16%
LP64 z3_smt_only* ✅ 1s 4s -75%
pointwise_acc_native_x86_64 LP64 cadical ✅ 65s 55s +18%
LP64 z3_smt_only* ✅ 3s 3s +0%
pointwise_native_aarch64 LP64 bitwuzla ✅ 20s 20s +0%
LP64 z3* ✅ 1s 3s -67%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 5s -60%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 2s 1s +100%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 2s +50%
pointwise_native_x86_64 LP64 bitwuzla ✅ 24s 22s +9%
LP64 z3* ✅ 5s 2s +150%
poly_add LP64 cadical ✅ 48s 48s +0%
LP64 z3* ✅ 11s 10s +10%
poly_caddq LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_c LP64 bitwuzla ✅ 18s 18s +0%
LP64 z3* ✅ 4s 4s +0%
poly_caddq_native LP64 bitwuzla ✅ 108s 110s -2%
LP64 z3* ✅ 4s 2s +100%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 34s 34s +0%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 121s 105s +15%
LP64 z3* ✅ 2s 2s +0%
poly_challenge LP64 bitwuzla ✅ 24s 27s -11%
LP64 z3* ✅ 13s 13s +0%
poly_chknorm LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_c LP64 bitwuzla ✅ 10s 8s +25%
LP64 z3* ✅ 6s 7s -14%
poly_chknorm_native LP64 bitwuzla ✅ 6s 9s -33%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 5s 4s +25%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
poly_decompose LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 1s 3s -67%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 219s 185s +18%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native LP64 cadical ✅ 14s 14s +0%
LP64 z3* ✅ 4s 2s +100%
poly_decompose_native_x86_64 LP64 cadical ✅ 10s 11s -9%
LP64 z3* ✅ 3s 5s -40%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 6s -17%
LP64 z3* ✅ 4s 3s +33%
poly_invntt_tomont_c LP64 bitwuzla ✅ 156s 159s -2%
LP64 z3_smt_only* ✅ 5s 5s +0%
poly_invntt_tomont_native LP64 bitwuzla ✅ 41s 43s -5%
LP64 z3* ✅ 2s 1s +100%
poly_ntt LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
poly_ntt_c LP64 bitwuzla ✅ 49s 48s +2%
LP64 z3_smt_only* ✅ 11s 9s +22%
poly_ntt_native LP64 bitwuzla ✅ 26s 24s +8%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery LP64 bitwuzla ✅ 8s 10s -20%
LP64 z3* ✅ 3s 2s +50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 191s 176s +9%
LP64 z3* ✅ 65s 63s +3%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 56s 52s +8%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ✅ 285s 267s +7%
LP64 z3* ✅ 2s 4s -50%
poly_reduce LP64 bitwuzla ✅ 7s 8s -12%
LP64 z3* ✅ 3s 3s +0%
poly_shiftl LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 2s 3s -33%
poly_sub LP64 bitwuzla ✅ 13s 15s -13%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 bitwuzla ✅ 165s 180s -8%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_4x LP64 cadical ✅ 59s 59s +0%
LP64 z3* ✅ 6s 6s +0%
poly_uniform_eta LP64 bitwuzla ✅ 77s 74s +4%
LP64 z3* ✅ 1s 3s -67%
poly_uniform_eta_4x LP64 cadical ✅ 61s 71s -14%
LP64 z3* ✅ 10s 10s +0%
poly_uniform_gamma1 LP64 cadical ✅ 4s 1s +300%
LP64 z3* ✅ 4s 3s +33%
poly_uniform_gamma1_4x LP64 cadical ✅ 13s 11s +18%
LP64 z3* ✅ 1s 2s -50%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 23s 23s +0%
LP64 z3* ✅ 3s 2s +50%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 12s -8%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 94s 94s +0%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 31s 33s -6%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 36s 32s +12%
LP64 z3* ✅ 3s 3s +0%
polyeta_pack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 4s 3s +33%
polyeta_unpack LP64 bitwuzla ✅ 7s 4s +75%
LP64 z3* ✅ 8s 7s +14%
polyt0_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 9s 7s +29%
polyt1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
polyt1_unpack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 13s 11s +18%
polyvec_matrix_expand_serial LP64 z3* ✅ 4s 4s +0%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 98s 100s -2%
LP64 z3_no_bv_extract* ✅ 4s 1s +300%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 234s 234s +0%
LP64 z3* ✅ 7s 5s +40%
polyveck_caddq LP64 cadical ✅ 101s 101s +0%
LP64 z3* ✅ 2s 2s +0%
polyveck_decompose_pack_w1 LP64 cadical ✅ 106s 106s +0%
LP64 z3* ✅ 3s 4s -25%
polyveck_invntt_tomont LP64 cadical ✅ 136s 135s +1%
LP64 z3* ✅ 6s 4s +50%
polyveck_ntt LP64 cadical ✅ 122s 116s +5%
LP64 z3* ✅ 3s 2s +50%
polyveck_reduce LP64 cadical ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 26s 27s -4%
LP64 z3* ✅ 3s 1s +200%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 15s 16s -6%
LP64 z3* ✅ 2s 2s +0%
polyvecl_chknorm LP64 cadical ✅ 51s 52s -2%
LP64 z3* ✅ 4s 2s +100%
polyvecl_ntt LP64 cadical ✅ 114s 113s +1%
LP64 z3* ✅ 1s 2s -50%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 5s 7s -29%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 91s 99s -8%
LP64 z3_smt_only* ✅ 95s 96s -1%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 149s 156s -4%
LP64 z3_smt_only* ✅ 3s 2s +50%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 38s 38s +0%
LP64 z3* ✅ 2s 1s +100%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 42s 42s +0%
LP64 z3* ✅ 1s 2s -50%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 32s 28s +14%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 27s 28s -4%
LP64 z3* ✅ 3s 2s +50%
polyw1_pack LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 3s -33%
polyw1_pack_32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_88 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 4s -25%
polyz_pack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
polyz_unpack_c LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 6s -33%
polyz_unpack_native LP64 bitwuzla ✅ 22s 25s -12%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 16s 17s -6%
LP64 z3* ✅ 5s 1s +400%
power2round LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
reduce32 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 3s +0%
rej_eta LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 4s -25%
rej_eta_c LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 16s 15s +7%
rej_eta_native LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3_smt_only ✅ 17s 17s +0%
rej_uniform LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 10s 8s +25%
rej_uniform_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 11s 15s -27%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 1s +0%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3_smt_only* ✅ 3s 1s +200%
rej_uniform_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 9s 10s -10%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3_smt_only* ✅ 7s 10s -30%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
shake128_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
shake128_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 1s 1s +0%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
shake256 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 1s 3s -67%
shake256_absorb LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
shake256_init LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 4s -50%
shake256_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake256_squeeze LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 3s 2s +50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 1s 5s -80%
LP64 z3 ✅ 3s 2s +50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 3s -33%
sig_unpack_hints LP64 bitwuzla ✅ 51s 54s -6%
LP64 z3* ✅ 35s 34s +3%
sign_keypair LP64 cadical ✅ 58s 60s -3%
LP64 z3* ✅ 3s 4s -25%
sign_keypair_internal LP64 cadical ✅ 142s 146s -3%
LP64 z3_no_bv_extract* ✅ 8s 8s +0%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 30s 30s +0%
sign_signature LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 4s 2s +100%
sign_signature_extmu LP64 cadical ✅ 19s 20s -5%
LP64 z3* ✅ 3s 2s +50%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 102s 97s +5%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 3s 3s +0%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 10s 13s -23%
LP64 z3* ✅ 4s 4s +0%
sign_verify LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 5s 2s +150%
sign_verify_extmu LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 4s 2s +100%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 328s 313s +5%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 5s -20%
sk_s1hat_get_poly LP64 bitwuzla ✅ 29s 29s +0%
LP64 z3* ✅ 3s 2s +50%
sk_s2hat_get_poly LP64 bitwuzla ✅ 28s 29s -3%
LP64 z3* ✅ 3s 4s -25%
sk_t0hat_get_poly LP64 bitwuzla ✅ 29s 30s -3%
LP64 z3* ✅ 1s 2s -50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 10s 12s -17%
LP64 z3* ✅ 4s 4s +0%
unpack_sk LP64 cadical ✅ 34s 34s +0%
LP64 z3* ✅ 3s 2s +50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 241s 250s -4%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 253s 246s +3%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_t0hat LP64 cadical ✅ 36s 37s -3%
LP64 z3* ✅ 3s 3s +0%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 3s +0%
yvec_get_poly LP64 bitwuzla ✅ 31s 32s -3%
LP64 z3* ✅ 2s 4s -50%
yvec_init LP64 bitwuzla ✅ 38s 38s +0%
LP64 z3* ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65, REDUCE-RAM)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1267s 1224s +3.5%
caddq LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 32s 30s +7%
decompose LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
fqmul LP64 bitwuzla* ✅ 26s 23s +13%
LP64 z3_smt_only ✅ 19s 19s +0%
fqscale LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 4s -50%
intt_native_aarch64 LP64 bitwuzla ✅ 24s 20s +20%
LP64 z3* ✅ 2s 4s -50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 4s 3s +33%
LP64 cvc5_mbqi_enum ✅ 8s 7s +14%
LP64 z3 ✅ 3s 3s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 5s 2s +150%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 3s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 17s 16s +6%
LP64 z3* ✅ 2s 3s -33%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 6s 6s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 6s +0%
LP64 cvc5_arrays_exp ✅ 8s 9s -11%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 3s -33%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 1s +200%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 3s 2s +50%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
keccak_init LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
keccak_squeeze LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 3s 2s +50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 3s 3s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 5s 1s +400%
keccakf1600_permute LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 1s 2s -50%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 11s +9%
LP64 z3* ✅ 12s 12s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 3s 4s -25%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 4s 1s +300%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 120s 113s +6%
mld_check_pct LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 4s 5s -20%
mld_compute_pack_z LP64 cadical ✅ 36s 33s +9%
LP64 z3_no_bv_extract* ✅ 6s 5s +20%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 3s -33%
ILP32 cvc5_arrays_exp ✅ 1s 3s -67%
ILP32 z3 ✅ 2s 1s +100%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 1s +0%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_no_bv_extract ✅ 48s 48s +0%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 2s +50%
mld_h LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 5s -60%
mld_invntt_layer LP64 bitwuzla* ✅ 69s 67s +3%
LP64 z3_smt_only ✅ 84s 73s +15%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 4s 4s +0%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 3s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 15s 13s +15%
LP64 z3_no_bv_extract ✅ 192s 182s +5%
mld_ntt_layer LP64 bitwuzla* ✅ 23s 21s +10%
LP64 z3_no_bv_extract ✅ 3s 2s +50%
mld_polymat_expand_entry LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_sample_pack_s1_s2 LP64 cadical ✅ 48s 48s +0%
LP64 z3* ✅ 3s 2s +50%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 238s 230s +3%
LP64 z3* ✅ 2s 2s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_sign_finish LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 23s 17s +35%
LP64 z3* ✅ 2s 2s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 1s 3s -67%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 3s 1s +200%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 5s 5s +0%
LP64 z3 ✅ 2s 2s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 15s +27%
LP64 z3* ✅ 3s 3s +0%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 202s 183s +10%
LP64 z3* ✅ 2s 3s -33%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3_no_bv_extract* ✅ 4s 4s +0%
pack_sig_z LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
pointwise_acc_native_aarch64 LP64 cadical ✅ 80s 75s +7%
LP64 z3_smt_only* ✅ 4s 4s +0%
pointwise_acc_native_x86_64 LP64 cadical ✅ 81s 77s +5%
LP64 z3_smt_only* ✅ 4s 2s +100%
pointwise_native_aarch64 LP64 bitwuzla ✅ 22s 20s +10%
LP64 z3* ✅ 4s 2s +100%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 6s 2s +200%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 4s 4s +0%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 23s 22s +5%
LP64 z3* ✅ 3s 1s +200%
poly_add LP64 cadical ✅ 51s 58s -12%
LP64 z3* ✅ 13s 11s +18%
poly_caddq LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 1s +0%
poly_caddq_c LP64 bitwuzla ✅ 18s 18s +0%
LP64 z3* ✅ 1s 4s -75%
poly_caddq_native LP64 bitwuzla ✅ 126s 110s +15%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 34s 33s +3%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 122s 123s -1%
LP64 z3* ✅ 3s 1s +200%
poly_challenge LP64 bitwuzla ✅ 25s 20s +25%
LP64 z3* ✅ 12s 12s +0%
poly_chknorm LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
poly_chknorm_c LP64 bitwuzla ✅ 11s 8s +38%
LP64 z3* ✅ 8s 6s +33%
poly_chknorm_native LP64 bitwuzla ✅ 7s 6s +17%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
poly_decompose LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 1s 4s -75%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 7s 7s +0%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 254s 174s +46%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native LP64 cadical ✅ 13s 12s +8%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 7s +29%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont_c LP64 bitwuzla ✅ 176s 156s +13%
LP64 z3_smt_only* ✅ 3s 4s -25%
poly_invntt_tomont_native LP64 bitwuzla ✅ 51s 48s +6%
LP64 z3* ✅ 2s 2s +0%
poly_ntt LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 3s 2s +50%
poly_ntt_c LP64 bitwuzla ✅ 51s 52s -2%
LP64 z3_smt_only* ✅ 9s 10s -10%
poly_ntt_native LP64 bitwuzla ✅ 29s 26s +12%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 10s 8s +25%
LP64 z3* ✅ 1s 2s -50%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 209s 187s +12%
LP64 z3* ✅ 45s 39s +15%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 52s 53s -2%
LP64 z3* ✅ 2s 4s -50%
poly_power2round LP64 bitwuzla ✅ 316s 239s +32%
LP64 z3* ✅ 2s 3s -33%
poly_reduce LP64 bitwuzla ✅ 6s 7s -14%
LP64 z3* ✅ 2s 2s +0%
poly_shiftl LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 3s 3s +0%
poly_sub LP64 bitwuzla ✅ 14s 13s +8%
LP64 z3* ✅ 2s 1s +100%
poly_uniform LP64 bitwuzla ✅ 195s 178s +10%
LP64 z3* ✅ 3s 4s -25%
poly_uniform_4x LP64 cadical ✅ 4s 1s +300%
LP64 z3* ✅ 1s 2s -50%
poly_uniform_eta LP64 bitwuzla ✅ 59s 52s +13%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_eta_4x LP64 cadical ✅ 56s 54s +4%
LP64 z3* ✅ 10s 8s +25%
poly_uniform_gamma1 LP64 cadical ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_gamma1_4x LP64 cadical ✅ 1s 6s -83%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 25s 22s +14%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 12s 11s +9%
LP64 z3* ✅ 2s 6s -67%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 91s 87s +5%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 33s 27s +22%
LP64 z3* ✅ 1s 1s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 31s 27s +15%
LP64 z3* ✅ 3s 3s +0%
polyeta_pack LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 1s +100%
polyeta_unpack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
polyt0_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 3s +0%
polyt0_unpack LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 8s 7s +14%
polyt1_pack LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 4s 3s +33%
polyt1_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 3s +0%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 1s 3s -67%
polyvec_matrix_expand_serial LP64 z3* ✅ 3s 2s +50%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 43s 40s +7%
LP64 z3_no_bv_extract* ✅ 5s 4s +25%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 810s 736s +10%
LP64 z3* ✅ 88s 87s +1%
polyveck_caddq LP64 cadical ✅ 224s 211s +6%
LP64 z3* ✅ 4s 2s +100%
polyveck_decompose_pack_w1 LP64 cadical ✅ 180s 166s +8%
LP64 z3* ✅ 15s 16s -6%
polyveck_invntt_tomont LP64 cadical ✅ 192s 186s +3%
LP64 z3* ✅ 4s 2s +100%
polyveck_ntt LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 2s 2s +0%
polyveck_reduce LP64 cadical ✅ 207s 173s +20%
LP64 z3* ✅ 3s 3s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 17s 19s -11%
LP64 z3* ✅ 2s 3s -33%
polyvecl_chknorm LP64 cadical ✅ 73s 71s +3%
LP64 z3* ✅ 2s 1s +100%
polyvecl_ntt LP64 cadical ✅ 167s 153s +9%
LP64 z3* ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 1s 1s +0%
LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 4s 3s +33%
LP64 z3_smt_only* ✅ 1s 3s -67%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3_smt_only* ✅ 3s 4s -25%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s 3s -33%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 32s 31s +3%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 35s 36s -3%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_pack LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 2s 6s -67%
polyz_unpack LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 3s +67%
polyz_unpack_native LP64 bitwuzla ✅ 29s 25s +16%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 18s 13s +38%
LP64 z3* ✅ 3s 3s +0%
power2round LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 1s 2s -50%
reduce32 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
rej_eta LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 5s 4s +25%
rej_eta_c LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 17s 13s +31%
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 12s 8s +50%
rej_uniform LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 10s 9s +11%
rej_uniform_c LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 9s 7s +29%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 3s 4s -25%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3_smt_only* ✅ 1s 3s -67%
rej_uniform_native LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 9s 9s +0%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 3s 1s +200%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3_smt_only* ✅ 10s 9s +11%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 3s 2s +50%
shake128_release LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
shake128_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 3s 1s +200%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 3s -33%
shake256 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
shake256_absorb LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
shake256_finalize LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake256_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 3s -67%
shake256_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 1s 2s -50%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 1s +100%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 1s 3s -67%
sig_unpack_hints LP64 bitwuzla ✅ 1525s 1309s +17%
LP64 z3* ✅ 18s 18s +0%
sign_keypair LP64 cadical ✅ 483s 398s +21%
LP64 z3* ✅ 6s 5s +20%
sign_keypair_internal LP64 cadical ✅ 191s 192s -1%
LP64 z3_no_bv_extract* ✅ 16s 15s +7%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 27s 24s +12%
sign_signature LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 4s 5s -20%
sign_signature_extmu LP64 cadical ✅ 29s 27s +7%
LP64 z3* ✅ 4s 3s +33%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 15s 12s +25%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 14s 14s +0%
LP64 z3* ✅ 4s 2s +100%
sign_verify LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 3s -67%
sign_verify_extmu LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 4s -25%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 203s 182s +12%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 4s 6s -33%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 3s +0%
sk_s1hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
sk_s2hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
sk_t0hat_get_poly LP64 bitwuzla ✅ 3s 5s -40%
LP64 z3* ✅ 2s 4s -50%
sys_check_capability LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 1s 1s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 11s +0%
LP64 z3* ✅ 3s 3s +0%
unpack_sk LP64 cadical ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 2s 5s -60%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_t0hat LP64 cadical ✅ 4s 1s +300%
LP64 z3* ✅ 2s 1s +100%
use_hint LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
yvec_get_poly LP64 bitwuzla ✅ 7s 6s +17%
LP64 z3* ✅ 1s 3s -67%
yvec_init LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 2195s 2018s +8.8%
caddq LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 3s 2s +50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 141s 126s +12%
decompose LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 3s -33%
fqmul LP64 bitwuzla* ✅ 27s 23s +17%
LP64 z3_smt_only ✅ 19s 19s +0%
fqscale LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 3s 2s +50%
intt_native_aarch64 LP64 bitwuzla ✅ 24s 22s +9%
LP64 z3* ✅ 2s 4s -50%
intt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 3s 2s +50%
intt_native_rv32im_slowmul ILP32 z3* ✅ 1s 2s -50%
LP64 cvc5_mbqi_enum ✅ 9s 8s +12%
LP64 z3 ✅ 2s 2s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 21s 17s +24%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 2s 5s -60%
LP64 z3* ✅ 6s 6s +0%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 4s 5s -20%
LP64 cvc5_arrays_exp ✅ 9s 7s +29%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 2s 4s -50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 4s -50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3 ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3_smt_only ✅ 2s 1s +100%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
keccak_init LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 3s -67%
keccak_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 3s 2s +50%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 2s 3s -33%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 1s 3s -67%
keccakf1600_permute LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 3s +33%
keccakf1600_permute_native LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 2s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 1s 2s -50%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 15s -20%
LP64 z3* ✅ 12s 12s +0%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 3s -33%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
make_hint LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 220s 216s +2%
mld_check_pct LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 6s 6s +0%
mld_compute_pack_z LP64 cadical ✅ 73s 70s +4%
LP64 z3_no_bv_extract* ✅ 5s 5s +0%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 2s +0%
ILP32 cvc5_arrays_exp ✅ 3s 1s +200%
ILP32 z3 ✅ 2s 1s +100%
LP64 bitwuzla ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 1s 4s -75%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 3s 2s +50%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 48s 46s +4%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
mld_h LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 5s -60%
mld_invntt_layer LP64 bitwuzla* ✅ 71s 59s +20%
LP64 z3_smt_only ✅ 97s 88s +10%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 4s 5s -20%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 13s 12s +8%
LP64 z3_no_bv_extract ✅ 71s 63s +13%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 23s +22%
LP64 z3_no_bv_extract ✅ 3s 4s -25%
mld_polymat_expand_entry LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 4s -50%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_sample_pack_s1_s2 LP64 cadical ✅ 49s 44s +11%
LP64 z3* ✅ 6s 2s +200%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 237s 223s +6%
LP64 z3* ✅ 4s 6s -33%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 3s -33%
mld_sign_finish LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
mld_sign_hook_resume LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 1s 4s -75%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
ntt_native_aarch64 LP64 bitwuzla ✅ 23s 22s +5%
LP64 z3* ✅ 3s 3s +0%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 6s +17%
LP64 z3 ✅ 4s 1s +300%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s 1s +200%
LP64 cvc5_mbqi_enum ✅ 8s 8s +0%
LP64 z3 ✅ 3s 1s +200%
ntt_native_x86_64 LP64 bitwuzla ✅ 21s 17s +24%
LP64 z3* ✅ 3s 2s +50%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 201s 176s +14%
LP64 z3* ✅ 3s 5s -40%
pack_sig_c LP64 cvc5_arrays_exp ✅ 2s 4s -50%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3_no_bv_extract* ✅ 2s 3s -33%
pack_sig_z LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 1s +200%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 3s -33%
pointwise_acc_native_aarch64 LP64 cadical ✅ 80s 76s +5%
LP64 z3_smt_only* ✅ 4s 3s +33%
pointwise_acc_native_x86_64 LP64 cadical ✅ 81s 74s +9%
LP64 z3_smt_only* ✅ 5s 3s +67%
pointwise_native_aarch64 LP64 bitwuzla ✅ 24s 22s +9%
LP64 z3* ✅ 1s 2s -50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 1s +100%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 3s 3s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 21s 21s +0%
LP64 z3* ✅ 1s 5s -80%
poly_add LP64 cadical ✅ 51s 48s +6%
LP64 z3* ✅ 12s 11s +9%
poly_caddq LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 5s 1s +400%
poly_caddq_c LP64 bitwuzla ✅ 21s 18s +17%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_native LP64 bitwuzla ✅ 123s 103s +19%
LP64 z3* ✅ 3s 2s +50%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 37s 33s +12%
LP64 z3* ✅ 4s 3s +33%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 139s 114s +22%
LP64 z3* ✅ 3s 3s +0%
poly_challenge LP64 bitwuzla ✅ 23s 20s +15%
LP64 z3* ✅ 13s 11s +18%
poly_chknorm LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
poly_chknorm_c LP64 bitwuzla ✅ 12s 10s +20%
LP64 z3* ✅ 8s 6s +33%
poly_chknorm_native LP64 bitwuzla ✅ 9s 9s +0%
LP64 z3* ✅ 4s 3s +33%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 4s -50%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 4s -50%
poly_decompose LP64 bitwuzla ✅ 4s 7s -43%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 8s 8s +0%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 256s 190s +35%
LP64 z3* ✅ 4s 2s +100%
poly_decompose_native LP64 cadical ✅ 12s 15s -20%
LP64 z3* ✅ 3s 1s +200%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 11s -18%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 2s +0%
poly_invntt_tomont_c LP64 bitwuzla ✅ 174s 148s +18%
LP64 z3_smt_only* ✅ 5s 3s +67%
poly_invntt_tomont_native LP64 bitwuzla ✅ 51s 44s +16%
LP64 z3* ✅ 3s 3s +0%
poly_ntt LP64 bitwuzla ✅ 5s 5s +0%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ✅ 58s 44s +32%
LP64 z3_smt_only* ✅ 8s 8s +0%
poly_ntt_native LP64 bitwuzla ✅ 29s 25s +16%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 4s 1s +300%
poly_pointwise_montgomery LP64 bitwuzla ✅ 13s 10s +30%
LP64 z3* ✅ 2s 2s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 202s 183s +10%
LP64 z3* ✅ 68s 64s +6%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 55s -2%
LP64 z3* ✅ 2s 4s -50%
poly_power2round LP64 bitwuzla ✅ 338s 290s +17%
LP64 z3* ✅ 5s 4s +25%
poly_reduce LP64 bitwuzla ✅ 10s 9s +11%
LP64 z3* ✅ 4s 2s +100%
poly_shiftl LP64 bitwuzla ✅ 14s 10s +40%
LP64 z3* ✅ 1s 1s +0%
poly_sub LP64 bitwuzla ✅ 17s 15s +13%
LP64 z3* ✅ 3s 2s +50%
poly_uniform LP64 bitwuzla ✅ 196s 172s +14%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_4x LP64 cadical ✅ 74s 60s +23%
LP64 z3* ✅ 9s 8s +12%
poly_uniform_eta LP64 bitwuzla ✅ 55s 51s +8%
LP64 z3* ✅ 4s 1s +300%
poly_uniform_eta_4x LP64 cadical ✅ 58s 51s +14%
LP64 z3* ✅ 9s 9s +0%
poly_uniform_gamma1 LP64 cadical ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
poly_uniform_gamma1_4x LP64 cadical ✅ 10s 11s -9%
LP64 z3* ✅ 3s 1s +200%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 24s 23s +4%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 13s 11s +18%
LP64 z3* ✅ 1s 3s -67%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 85s 88s -3%
LP64 z3* ✅ 2s 3s -33%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 32s 28s +14%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 32s 30s +7%
LP64 z3* ✅ 1s 2s -50%
polyeta_pack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 4s -25%
polyt0_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 9s 10s -10%
polyt1_pack LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 4s 5s -20%
polyt1_unpack LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 4s -25%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 62s 57s +9%
polyvec_matrix_expand_serial LP64 z3* ✅ 12s 12s +0%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 250s 246s +2%
LP64 z3_no_bv_extract* ✅ 2s 1s +100%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 423s 437s -3%
LP64 z3* ✅ 3s 5s -40%
polyveck_caddq LP64 cadical ✅ 227s 203s +12%
LP64 z3* ✅ 2s 2s +0%
polyveck_decompose_pack_w1 LP64 cadical ✅ 219s 174s +26%
LP64 z3* ✅ 7s 6s +17%
polyveck_invntt_tomont LP64 cadical ✅ 196s 184s +7%
LP64 z3* ✅ 3s 3s +0%
polyveck_ntt LP64 cadical ✅ 205s 193s +6%
LP64 z3* ✅ 1s 3s -67%
polyveck_reduce LP64 cadical ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 42s 40s +5%
LP64 z3* ✅ 2s 1s +100%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 20s 17s +18%
LP64 z3* ✅ 3s 3s +0%
polyvecl_chknorm LP64 cadical ✅ 75s 69s +9%
LP64 z3* ✅ 4s 4s +0%
polyvecl_ntt LP64 cadical ✅ 166s 151s +10%
LP64 z3* ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 9s 7s +29%
LP64 z3_smt_only* ✅ 4s 1s +300%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 134s 110s +22%
LP64 z3_smt_only* ✅ 231s 194s +19%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 118s 115s +3%
LP64 z3_smt_only* ✅ 4s 1s +300%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 35s 34s +3%
LP64 z3* ✅ 3s 3s +0%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 34s 35s -3%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 35s 32s +9%
LP64 z3* ✅ 3s 2s +50%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 35s 32s +9%
LP64 z3* ✅ 3s 3s +0%
polyw1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 4s -25%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 5s 3s +67%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 5s -60%
LP64 z3* ✅ 2s 3s -33%
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
polyz_pack LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 1s 2s -50%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 4s +0%
polyz_unpack_native LP64 bitwuzla ✅ 30s 24s +25%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 15s +13%
LP64 z3* ✅ 2s 4s -50%
power2round LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 4s -50%
reduce32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
rej_eta LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 4s 4s +0%
rej_eta_c LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 14s 12s +17%
rej_eta_native LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 12s 11s +9%
rej_uniform LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 10s 8s +25%
rej_uniform_c LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 14s 14s +0%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 4s -50%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3_smt_only* ✅ 4s 2s +100%
rej_uniform_native LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 11s 9s +22%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 3s +0%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s 7s -43%
LP64 z3_smt_only* ✅ 11s 10s +10%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 3s -33%
shake128_init LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 4s 1s +300%
shake128_release LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
shake128_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 cvc5_arrays_exp ✅ 1s 3s -67%
shake128x4_absorb_once LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 1s 2s -50%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 2s 5s -60%
LP64 z3 ✅ 2s 3s -33%
shake256 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 2s +0%
shake256_absorb LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 3s -33%
shake256_finalize LP64 cvc5_arrays_exp ✅ 1s 3s -67%
LP64 z3* ✅ 3s 2s +50%
shake256_init LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 1s 3s -67%
shake256_release LP64 bitwuzla ✅ 1s 5s -80%
LP64 z3* ✅ 2s 2s +0%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 2s +0%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 2s +0%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 2s +50%
sig_unpack_hints LP64 bitwuzla ✅ 1502s 1249s +20%
LP64 z3* ✅ 22s 21s +5%
sign_keypair LP64 cadical ✅ 503s 394s +28%
LP64 z3* ✅ 6s 4s +50%
sign_keypair_internal LP64 cadical ✅ 192s 174s +10%
LP64 z3_no_bv_extract* ✅ 17s 15s +13%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 38s 32s +19%
sign_signature LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 6s -50%
sign_signature_extmu LP64 cadical ✅ 31s 26s +19%
LP64 z3* ✅ 5s 2s +150%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 172s 156s +10%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 4s -25%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 15s 13s +15%
LP64 z3* ✅ 4s 3s +33%
sign_verify LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 5s -40%
sign_verify_extmu LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 5s 3s +67%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 463s 402s +15%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 5s -40%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 4s 3s +33%
sk_s1hat_get_poly LP64 bitwuzla ✅ 41s 38s +8%
LP64 z3* ✅ 3s 3s +0%
sk_s2hat_get_poly LP64 bitwuzla ✅ 31s 28s +11%
LP64 z3* ✅ 3s 2s +50%
sk_t0hat_get_poly LP64 bitwuzla ✅ 31s 28s +11%
LP64 z3* ✅ 2s 3s -33%
sys_check_capability LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 13s -15%
LP64 z3* ✅ 3s 2s +50%
unpack_sk LP64 cadical ✅ 52s 46s +13%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 90s 85s +6%
LP64 z3* ✅ 2s 4s -50%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 163s 149s +9%
LP64 z3* ✅ 1s 3s -67%
unpack_sk_t0hat LP64 cadical ✅ 88s 84s +5%
LP64 z3* ✅ 2s 3s -33%
use_hint LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 1s 1s +0%
yvec_get_poly LP64 bitwuzla ✅ 37s 30s +23%
LP64 z3* ✅ 1s 2s -50%
yvec_init LP64 bitwuzla ✅ 9s 10s -10%
LP64 z3* ✅ 3s 2s +50%

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87, REDUCE-RAM)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 1419s 1267s +12.0%
caddq LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 24s 25s -4%
decompose LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
fqmul LP64 bitwuzla* ✅ 25s 24s +4%
LP64 z3_smt_only ✅ 20s 21s -5%
fqscale LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 2s 2s +0%
intt_native_aarch64 LP64 bitwuzla ✅ 23s 21s +10%
LP64 z3* ✅ 1s 3s -67%
intt_native_rv32im_fastmul ILP32 z3* ✅ 3s 4s -25%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 3s 3s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 1s 3s -67%
intt_native_x86_64 LP64 bitwuzla ✅ 17s 17s +0%
LP64 z3* ✅ 2s 3s -33%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 5s -40%
LP64 z3* ✅ 7s 5s +40%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 4s 4s +0%
LP64 cvc5_arrays_exp ✅ 10s 6s +67%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3_no_bv_extract ✅ 1s 2s -50%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3 ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 1s +100%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 4s -50%
keccak_init LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 4s 1s +300%
keccak_squeeze LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3 ✅ 2s 2s +0%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 4s -25%
LP64 z3 ✅ 2s 2s +0%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 1s +100%
keccakf1600_permute LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 1s 1s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 1s 2s -50%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 1s 1s +0%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 3s -33%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 14s -14%
LP64 z3* ✅ 15s 12s +25%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 1s +100%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_no_bv_extract ✅ 2s 3s -33%
make_hint LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 177s 157s +13%
mld_check_pct LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 3s 6s -50%
mld_compute_pack_z LP64 cadical ✅ 38s 35s +9%
LP64 z3_no_bv_extract* ✅ 4s 4s +0%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 2s 3s -33%
ILP32 cvc5_arrays_exp ✅ 2s 1s +100%
ILP32 z3 ✅ 2s 2s +0%
LP64 bitwuzla ✅ 4s 2s +100%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 5s -80%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 2s 3s -33%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 1s +100%
mld_ct_memcmp LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_no_bv_extract ✅ 54s 48s +12%
mld_ct_sel_int32 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 3s +0%
mld_h LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 3s 2s +50%
mld_invntt_layer LP64 bitwuzla* ✅ 77s 65s +18%
LP64 z3_smt_only ✅ 90s 75s +20%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 1s 1s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 4s +25%
LP64 z3* ✅ 3s 5s -40%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 3s 2s +50%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 16s 13s +23%
LP64 z3_no_bv_extract ✅ 197s 179s +10%
mld_ntt_layer LP64 bitwuzla* ✅ 28s 25s +12%
LP64 z3_no_bv_extract ✅ 4s 2s +100%
mld_polymat_expand_entry LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 77s 71s +8%
LP64 z3* ✅ 6s 4s +50%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 554s 535s +4%
LP64 z3* ✅ 5s 5s +0%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 4s 3s +33%
mld_sign_finish LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
mld_sign_hook_resume LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
mld_value_barrier_i64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 3s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
ntt_native_aarch64 LP64 bitwuzla ✅ 22s 18s +22%
LP64 z3* ✅ 3s 2s +50%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 7s 8s -12%
LP64 z3 ✅ 3s 2s +50%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 3s 6s -50%
LP64 cvc5_mbqi_enum ✅ 6s 7s -14%
LP64 z3 ✅ 2s 1s +100%
ntt_native_x86_64 LP64 bitwuzla ✅ 19s 19s +0%
LP64 z3* ✅ 3s 4s -25%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 206s 169s +22%
LP64 z3* ✅ 2s 3s -33%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_no_bv_extract* ✅ 1s 2s -50%
pack_sig_z LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 1s 1s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 3s +33%
pointwise_acc_native_aarch64 LP64 cadical ✅ 95s 86s +10%
LP64 z3_smt_only* ✅ 6s 4s +50%
pointwise_acc_native_x86_64 LP64 cadical ✅ 91s 87s +5%
LP64 z3_smt_only* ✅ 5s 4s +25%
pointwise_native_aarch64 LP64 bitwuzla ✅ 23s 21s +10%
LP64 z3* ✅ 3s 2s +50%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 7s 9s -22%
LP64 z3 ✅ 2s 2s +0%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 3s 2s +50%
LP64 cvc5_mbqi_enum ✅ 9s 9s +0%
LP64 z3 ✅ 4s 2s +100%
pointwise_native_x86_64 LP64 bitwuzla ✅ 23s 21s +10%
LP64 z3* ✅ 1s 3s -67%
poly_add LP64 cadical ✅ 50s 46s +9%
LP64 z3* ✅ 10s 10s +0%
poly_caddq LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 3s 3s +0%
poly_caddq_c LP64 bitwuzla ✅ 20s 21s -5%
LP64 z3* ✅ 1s 1s +0%
poly_caddq_native LP64 bitwuzla ✅ 128s 104s +23%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 35s 36s -3%
LP64 z3* ✅ 2s 1s +100%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 137s 118s +16%
LP64 z3* ✅ 1s 3s -67%
poly_challenge LP64 bitwuzla ✅ 38s 33s +15%
LP64 z3* ✅ 15s 11s +36%
poly_chknorm LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
poly_chknorm_c LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 8s 7s +14%
poly_chknorm_native LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 1s 1s +0%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 2s +50%
poly_decompose LP64 bitwuzla ✅ 7s 5s +40%
LP64 z3* ✅ 2s 1s +100%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 8s 8s +0%
LP64 z3* ✅ 1s 1s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 1s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 221s 229s -3%
LP64 z3* ✅ 2s 5s -60%
poly_decompose_native LP64 cadical ✅ 15s 11s +36%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_native_x86_64 LP64 cadical ✅ 11s 7s +57%
LP64 z3* ✅ 3s 2s +50%
poly_invntt_tomont LP64 bitwuzla ✅ 5s 7s -29%
LP64 z3* ✅ 2s 4s -50%
poly_invntt_tomont_c LP64 bitwuzla ✅ 171s 153s +12%
LP64 z3_smt_only* ✅ 4s 6s -33%
poly_invntt_tomont_native LP64 bitwuzla ✅ 48s 44s +9%
LP64 z3* ✅ 3s 2s +50%
poly_ntt LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ✅ 51s 43s +19%
LP64 z3_smt_only* ✅ 12s 9s +33%
poly_ntt_native LP64 bitwuzla ✅ 26s 28s -7%
LP64 z3* ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 4s -50%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 10s -10%
LP64 z3* ✅ 3s 3s +0%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 200s 159s +26%
LP64 z3* ✅ 44s 40s +10%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 55s 59s -7%
LP64 z3* ✅ 2s 3s -33%
poly_power2round LP64 bitwuzla ✅ 300s 266s +13%
LP64 z3* ✅ 4s 2s +100%
poly_reduce LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 3s 1s +200%
poly_shiftl LP64 bitwuzla ✅ 12s 11s +9%
LP64 z3* ✅ 3s 4s -25%
poly_sub LP64 bitwuzla ✅ 16s 13s +23%
LP64 z3* ✅ 2s 2s +0%
poly_uniform LP64 bitwuzla ✅ 205s 174s +18%
LP64 z3* ✅ 3s 3s +0%
poly_uniform_4x LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_eta LP64 bitwuzla ✅ 84s 74s +14%
LP64 z3* ✅ 2s 1s +100%
poly_uniform_eta_4x LP64 cadical ✅ 64s 58s +10%
LP64 z3* ✅ 10s 10s +0%
poly_uniform_gamma1 LP64 cadical ✅ 1s 1s +0%
LP64 z3* ✅ 4s 1s +300%
poly_uniform_gamma1_4x LP64 cadical ✅ 1s 3s -67%
LP64 z3* ✅ 1s 4s -75%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 25s 23s +9%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 13s 12s +8%
LP64 z3* ✅ 4s 3s +33%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 87s 88s -1%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 32s 28s +14%
LP64 z3* ✅ 2s 1s +100%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 33s 29s +14%
LP64 z3* ✅ 4s 2s +100%
polyeta_pack LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 10s 8s +25%
polyt0_pack LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 2s 3s -33%
polyt0_unpack LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 10s 11s -9%
polyt1_pack LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
polyt1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 6s 3s +100%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 1s 2s -50%
polyvec_matrix_expand_serial LP64 z3* ✅ 1s 2s -50%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 49s 54s -9%
LP64 z3_no_bv_extract* ✅ 3s 7s -57%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 1357s 1251s +8%
LP64 z3* ✅ 110s 90s +22%
polyveck_caddq LP64 cadical ✅ 1240s 1180s +5%
LP64 z3* ✅ 2s 3s -33%
polyveck_decompose_pack_w1 LP64 cadical ✅ 212s 198s +7%
LP64 z3* ✅ 5s 3s +67%
polyveck_invntt_tomont LP64 cadical ✅ 384s 303s +27%
LP64 z3* ✅ 4s 2s +100%
polyveck_ntt LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 1s 2s -50%
polyveck_reduce LP64 cadical ✅ 266s 249s +7%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 5s 2s +150%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 19s 17s +12%
LP64 z3* ✅ 1s 3s -67%
polyvecl_chknorm LP64 cadical ✅ 143s 135s +6%
LP64 z3* ✅ 4s 3s +33%
polyvecl_ntt LP64 cadical ✅ 197s 182s +8%
LP64 z3* ✅ 5s 5s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 3s 3s +0%
LP64 z3_smt_only* ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 2s 4s -50%
LP64 z3_smt_only* ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 1s 3s -67%
LP64 z3_smt_only* ✅ 3s 1s +200%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 2s 1s +100%
LP64 z3* ✅ 1s 2s -50%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 49s 45s +9%
LP64 z3* ✅ 2s 1s +100%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 50s 45s +11%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_32 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack_88 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
polyw1_unpack LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 2s +100%
polyw1_unpack_32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
polyw1_unpack_88 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 3s 2s +50%
polyz_pack LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
polyz_unpack_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 5s -20%
polyz_unpack_native LP64 bitwuzla ✅ 28s 23s +22%
LP64 z3* ✅ 4s 1s +300%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 17s 16s +6%
LP64 z3* ✅ 1s 1s +0%
power2round LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
reduce32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 1s 1s +0%
rej_eta LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 2s 2s +0%
rej_eta_c LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 13s 11s +18%
rej_eta_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_smt_only ✅ 19s 13s +46%
rej_uniform LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 10s 10s +0%
rej_uniform_c LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 12s 8s +50%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 2s 3s -33%
rej_uniform_native LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_smt_only ✅ 9s 7s +29%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 3s 2s +50%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3_smt_only* ✅ 10s 8s +25%
shake128_absorb LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake128_init LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
shake128_release LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
shake128_squeeze LP64 bitwuzla* ✅ 3s 3s +0%
LP64 cvc5_arrays_exp ✅ 3s 2s +50%
shake128x4_absorb_once LP64 bitwuzla* ✅ 4s 2s +100%
LP64 z3_smt_only ✅ 3s 1s +200%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 5s 1s +400%
LP64 z3 ✅ 1s 1s +0%
shake256 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 2s +50%
shake256_absorb LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
shake256_finalize LP64 cvc5_arrays_exp ✅ 2s 1s +100%
LP64 z3* ✅ 2s 1s +100%
shake256_init LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 3s -33%
shake256_release LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
shake256_squeeze LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 3s 1s +200%
shake256x4_absorb_once LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 3s 2s +50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_smt_only ✅ 2s 2s +0%
sig_unpack_hints LP64 bitwuzla ✅ 26s 24s +8%
LP64 z3* ✅ 40s 37s +8%
sign_keypair LP64 cadical ✅ 618s 529s +17%
LP64 z3* ✅ 8s 5s +60%
sign_keypair_internal LP64 cadical ✅ 224s 215s +4%
LP64 z3_no_bv_extract* ✅ 19s 16s +19%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 30s 27s +11%
sign_signature LP64 bitwuzla ✅ 5s 2s +150%
LP64 z3* ✅ 3s 4s -25%
sign_signature_extmu LP64 cadical ✅ 60s 52s +15%
LP64 z3* ✅ 4s 3s +33%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 16s 12s +33%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3* ✅ 2s 2s +0%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 26s 22s +18%
LP64 z3* ✅ 5s 5s +0%
sign_verify LP64 bitwuzla ✅ 4s 7s -43%
LP64 z3* ✅ 1s 2s -50%
sign_verify_extmu LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 2s 2s +0%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 217s 171s +27%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 1s +100%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
sk_s1hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
sk_s2hat_get_poly LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 2s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
sys_check_capability LP64 cvc5_arrays_exp ✅ 1s 2s -50%
LP64 z3* ✅ 2s 1s +100%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 11s +0%
LP64 z3* ✅ 2s 2s +0%
unpack_sk LP64 cadical ✅ 3s 4s -25%
LP64 z3* ✅ 1s 2s -50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 3s 2s +50%
LP64 z3* ✅ 3s 3s +0%
unpack_sk_t0hat LP64 cadical ✅ 4s 3s +33%
LP64 z3* ✅ 1s 3s -67%
use_hint LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
yvec_get_poly LP64 bitwuzla ✅ 6s 5s +20%
LP64 z3* ✅ 2s 2s +0%
yvec_init LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 3s 2s +50%

@oqs-bot

oqs-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87)

* default.

Full Results (433 configurations)
Proof DM Solver Status Current Previous Change
**TOTAL** - - ✅ 3464s 3575s -3.1%
caddq LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 4s -50%
compute_pack_t0_t1 LP64 z3_no_bv_extract* ✅ 166s 164s +1%
decompose LP64 bitwuzla ✅ 4s 1s +300%
LP64 z3* ✅ 3s 2s +50%
fqmul LP64 bitwuzla* ✅ 24s 24s +0%
LP64 z3_smt_only ✅ 18s 19s -5%
fqscale LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 2s 2s +0%
intt_native_aarch64 LP64 bitwuzla ✅ 22s 24s -8%
LP64 z3* ✅ 3s 3s +0%
intt_native_rv32im_fastmul ILP32 z3* ✅ 1s 3s -67%
LP64 cvc5_mbqi_enum ✅ 8s 9s -11%
LP64 z3 ✅ 3s 3s +0%
intt_native_rv32im_slowmul ILP32 z3* ✅ 2s 3s -33%
LP64 cvc5_mbqi_enum ✅ 6s 9s -33%
LP64 z3 ✅ 2s 2s +0%
intt_native_x86_64 LP64 bitwuzla ✅ 16s 18s -11%
LP64 z3* ✅ 3s 2s +50%
keccak_absorb LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 7s 11s -36%
keccak_absorb_once_x4 LP64 bitwuzla* ✅ 6s 6s +0%
LP64 cvc5_arrays_exp ✅ 8s 6s +33%
keccak_f1600_x1_native_aarch64 LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 3s +0%
keccak_f1600_x4_native_aarch64_v84a LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3 ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3_smt_only ✅ 3s 4s -25%
keccak_f1600_x4_native_avx2 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
keccak_finalize LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 2s 1s +100%
keccak_init LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 1s +0%
keccak_squeeze LP64 bitwuzla* ✅ 2s 2s +0%
LP64 z3 ✅ 2s 1s +100%
keccak_squeezeblocks_x4 LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 4s 1s +300%
keccakf1600_extract_bytes (big endian) LP64 cvc5_arrays_exp ✅ 4s 1s +300%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_permute LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 2s 2s +0%
keccakf1600_permute_native LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 3s -33%
keccakf1600_xor_bytes LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 1s 1s +0%
keccakf1600_xor_bytes (big endian) LP64 bitwuzla* ✅ 3s 7s -57%
LP64 z3_smt_only ✅ 2s 2s +0%
keccakf1600x4_extract_bytes LP64 bitwuzla* ✅ 3s 6s -50%
LP64 z3 ✅ 1s 3s -67%
keccakf1600x4_extract_bytes_native LP64 bitwuzla* ✅ 3s 6s -50%
LP64 z3 ✅ 2s 2s +0%
keccakf1600x4_permute LP64 cvc5_arrays_exp ✅ 1s 1s +0%
LP64 z3* ✅ 2s 2s +0%
keccakf1600x4_permute_native LP64 cvc5_arrays_exp ✅ 12s 13s -8%
LP64 z3* ✅ 14s 15s -7%
keccakf1600x4_xor_bytes LP64 bitwuzla* ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 3s 1s +200%
keccakf1600x4_xor_bytes_native LP64 bitwuzla* ✅ 2s 3s -33%
LP64 z3_no_bv_extract ✅ 2s 5s -60%
make_hint LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 3s 4s -25%
mld_attempt_signature_generation LP64 z3_no_bv_extract* ✅ 235s 269s -13%
mld_check_pct LP64 bitwuzla ✅ 8s 5s +60%
LP64 z3* ✅ 4s 4s +0%
mld_compute_pack_z LP64 cadical ✅ 82s 85s -4%
LP64 z3_no_bv_extract* ✅ 5s 3s +67%
mld_ct_abs_i32 ILP32 bitwuzla ✅ 3s 3s +0%
ILP32 cvc5_arrays_exp ✅ 3s 1s +200%
ILP32 z3 ✅ 1s 2s -50%
LP64 bitwuzla ✅ 2s 2s +0%
LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
mld_ct_cmask_neg_i32 LP64 cvc5_arrays_exp ✅ 4s 3s +33%
LP64 z3* ✅ 1s 3s -67%
mld_ct_cmask_nonzero_u32 LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u8 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 3s 1s +200%
mld_ct_get_optblocker_u32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 1s 2s -50%
mld_ct_get_optblocker_u8 LP64 bitwuzla* ✅ 1s 4s -75%
LP64 z3_smt_only ✅ 1s 3s -67%
mld_ct_memcmp LP64 bitwuzla* ✅ 3s 1s +200%
LP64 z3_no_bv_extract ✅ 44s 49s -10%
mld_ct_sel_int32 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
mld_h LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 5s 5s +0%
mld_invntt_layer LP64 bitwuzla* ✅ 62s 69s -10%
LP64 z3_smt_only ✅ 87s 87s +0%
mld_keccakf1600_extract_bytes LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600_permute_c LP64 cvc5_arrays_exp ✅ 5s 5s +0%
LP64 z3* ✅ 4s 3s +33%
mld_keccakf1600x4_extract_bytes_c LP64 cvc5_arrays_exp ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c LP64 bitwuzla ✅ 1s 4s -75%
LP64 z3* ✅ 2s 3s -33%
mld_ntt_butterfly_block LP64 bitwuzla* ✅ 12s 12s +0%
LP64 z3_no_bv_extract ✅ 62s 69s -10%
mld_ntt_layer LP64 bitwuzla* ✅ 24s 26s -8%
LP64 z3_no_bv_extract ✅ 2s 2s +0%
mld_polymat_expand_entry LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 5s 2s +150%
mld_prepare_domain_separation_prefix LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 4s 4s +0%
mld_sample_pack_s1_s2 LP64 cadical ✅ 82s 77s +6%
LP64 z3* ✅ 7s 9s -22%
mld_sample_pack_s1_s2_serial LP64 cvc5_mbqi_enum ✅ 541s 539s +0%
LP64 z3* ✅ 7s 5s +40%
mld_sign_attempt LP64 cvc5_arrays_exp ✅ 7s 4s +75%
LP64 z3* ✅ 4s 3s +33%
mld_sign_finish LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 2s +100%
mld_sign_hook_resume LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 3s 4s -25%
mld_value_barrier_i64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 1s +100%
mld_value_barrier_u32 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
mld_value_barrier_u8 LP64 cvc5_arrays_exp ✅ 4s 2s +100%
LP64 z3* ✅ 2s 5s -60%
montgomery_reduce LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
ntt_native_aarch64 LP64 bitwuzla ✅ 21s 21s +0%
LP64 z3* ✅ 1s 3s -67%
ntt_native_rv32im_fastmul ILP32 z3* ✅ 4s 2s +100%
LP64 cvc5_mbqi_enum ✅ 7s 7s +0%
LP64 z3 ✅ 6s 1s +500%
ntt_native_rv32im_slowmul ILP32 z3* ✅ 2s 4s -50%
LP64 cvc5_mbqi_enum ✅ 7s 5s +40%
LP64 z3 ✅ 3s 3s +0%
ntt_native_x86_64 LP64 bitwuzla ✅ 17s 18s -6%
LP64 z3* ✅ 2s 4s -50%
nttunpack_native_x86_64 LP64 bitwuzla ✅ 167s 187s -11%
LP64 z3* ✅ 4s 1s +300%
pack_sig_c LP64 cvc5_arrays_exp ✅ 3s 2s +50%
LP64 z3* ✅ 3s 2s +50%
pack_sig_h LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3_no_bv_extract* ✅ 2s 3s -33%
pack_sig_z LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 2s 2s +0%
pack_sk_rho_key_tr LP64 bitwuzla ✅ 4s 2s +100%
LP64 z3* ✅ 3s 2s +50%
pointwise_acc_native_aarch64 LP64 cadical ✅ 86s 105s -18%
LP64 z3_smt_only* ✅ 4s 4s +0%
pointwise_acc_native_x86_64 LP64 cadical ✅ 105s 91s +15%
LP64 z3_smt_only* ✅ 3s 4s -25%
pointwise_native_aarch64 LP64 bitwuzla ✅ 21s 18s +17%
LP64 z3* ✅ 3s 5s -40%
pointwise_native_rv32im_fastmul ILP32 z3* ✅ 3s 3s +0%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 4s 2s +100%
pointwise_native_rv32im_slowmul ILP32 z3* ✅ 2s 2s +0%
LP64 cvc5_mbqi_enum ✅ 10s 8s +25%
LP64 z3 ✅ 3s 3s +0%
pointwise_native_x86_64 LP64 bitwuzla ✅ 22s 21s +5%
LP64 z3* ✅ 3s 2s +50%
poly_add LP64 cadical ✅ 48s 44s +9%
LP64 z3* ✅ 11s 10s +10%
poly_caddq LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 2s 4s -50%
poly_caddq_c LP64 bitwuzla ✅ 20s 17s +18%
LP64 z3* ✅ 2s 2s +0%
poly_caddq_native LP64 bitwuzla ✅ 103s 110s -6%
LP64 z3* ✅ 2s 3s -33%
poly_caddq_native_aarch64 LP64 cvc5_mbqi_enum ✅ 34s 34s +0%
LP64 z3* ✅ 1s 2s -50%
poly_caddq_native_x86_64 LP64 bitwuzla ✅ 112s 116s -3%
LP64 z3* ✅ 3s 3s +0%
poly_challenge LP64 bitwuzla ✅ 33s 33s +0%
LP64 z3* ✅ 12s 11s +9%
poly_chknorm LP64 bitwuzla ✅ 5s 3s +67%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_c LP64 bitwuzla ✅ 8s 8s +0%
LP64 z3* ✅ 8s 6s +33%
poly_chknorm_native LP64 bitwuzla ✅ 6s 8s -25%
LP64 z3* ✅ 5s 3s +67%
poly_chknorm_native_aarch64 LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
poly_chknorm_native_x86_64 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 4s 3s +33%
poly_decompose LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 3s 2s +50%
poly_decompose_32_native_aarch64 LP64 cadical ✅ 10s 7s +43%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_88_native_aarch64 LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
poly_decompose_c LP64 cvc5_mbqi_enum ✅ 173s 231s -25%
LP64 z3* ✅ 4s 6s -33%
poly_decompose_native LP64 cadical ✅ 14s 12s +17%
LP64 z3* ✅ 4s 3s +33%
poly_decompose_native_x86_64 LP64 cadical ✅ 9s 10s -10%
LP64 z3* ✅ 2s 1s +100%
poly_invntt_tomont LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 1s 2s -50%
poly_invntt_tomont_c LP64 bitwuzla ✅ 151s 156s -3%
LP64 z3_smt_only* ✅ 4s 5s -20%
poly_invntt_tomont_native LP64 bitwuzla ✅ 44s 46s -4%
LP64 z3* ✅ 2s 3s -33%
poly_ntt LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 2s 3s -33%
poly_ntt_c LP64 bitwuzla ✅ 45s 50s -10%
LP64 z3_smt_only* ✅ 10s 10s +0%
poly_ntt_native LP64 bitwuzla ✅ 27s 26s +4%
LP64 z3* ✅ 2s 5s -60%
poly_permute_bitrev_to_custom_optional LP64 bitwuzla ✅ 3s 1s +200%
LP64 z3* ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native LP64 bitwuzla ✅ 5s 4s +25%
LP64 z3* ✅ 1s 1s +0%
poly_pointwise_montgomery LP64 bitwuzla ✅ 9s 9s +0%
LP64 z3* ✅ 2s 3s -33%
poly_pointwise_montgomery_c LP64 bitwuzla ✅ 178s 193s -8%
LP64 z3* ✅ 58s 61s -5%
poly_pointwise_montgomery_native LP64 cvc5_mbqi_enum ✅ 54s 51s +6%
LP64 z3* ✅ 2s 2s +0%
poly_power2round LP64 bitwuzla ✅ 292s 308s -5%
LP64 z3* ✅ 3s 4s -25%
poly_reduce LP64 bitwuzla ✅ 7s 7s +0%
LP64 z3* ✅ 1s 4s -75%
poly_shiftl LP64 bitwuzla ✅ 10s 12s -17%
LP64 z3* ✅ 2s 2s +0%
poly_sub LP64 bitwuzla ✅ 15s 13s +15%
LP64 z3* ✅ 3s 1s +200%
poly_uniform LP64 bitwuzla ✅ 173s 178s -3%
LP64 z3* ✅ 2s 2s +0%
poly_uniform_4x LP64 cadical ✅ 60s 60s +0%
LP64 z3* ✅ 8s 9s -11%
poly_uniform_eta LP64 bitwuzla ✅ 74s 74s +0%
LP64 z3* ✅ 4s 3s +33%
poly_uniform_eta_4x LP64 cadical ✅ 59s 61s -3%
LP64 z3* ✅ 10s 13s -23%
poly_uniform_gamma1 LP64 cadical ✅ 2s 5s -60%
LP64 z3* ✅ 2s 3s -33%
poly_uniform_gamma1_4x LP64 cadical ✅ 10s 11s -9%
LP64 z3* ✅ 1s 1s +0%
poly_use_hint LP64 cvc5_mbqi_enum ✅ 24s 22s +9%
LP64 z3* ✅ 3s 1s +200%
poly_use_hint_c LP64 cvc5_enum_inst ✅ 11s 14s -21%
LP64 z3* ✅ 7s 3s +133%
poly_use_hint_native LP64 cvc5_mbqi_enum ✅ 93s 93s +0%
LP64 z3* ✅ 2s 2s +0%
poly_use_hint_native_aarch64 LP64 bitwuzla ✅ 27s 31s -13%
LP64 z3* ✅ 3s 3s +0%
poly_use_hint_native_x86_64 LP64 bitwuzla ✅ 27s 29s -7%
LP64 z3* ✅ 2s 2s +0%
polyeta_pack LP64 bitwuzla ✅ 3s 6s -50%
LP64 z3* ✅ 2s 3s -33%
polyeta_unpack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 11s 7s +57%
polyt0_pack LP64 bitwuzla ✅ 6s 6s +0%
LP64 z3* ✅ 1s 5s -80%
polyt0_unpack LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 9s 8s +12%
polyt1_pack LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 3s 3s +0%
polyt1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 4s 5s -20%
polyvec_matrix_expand LP64 z3_no_bv_extract* ✅ 85s 86s -1%
polyvec_matrix_expand_serial LP64 z3* ✅ 23s 27s -15%
polyvec_matrix_pointwise_montgomery_row LP64 cadical ✅ 578s 585s -1%
LP64 z3_no_bv_extract* ✅ 3s 2s +50%
polyvec_matrix_pointwise_montgomery_yvec LP64 cadical ✅ 757s 770s -2%
LP64 z3* ✅ 6s 4s +50%
polyveck_caddq LP64 cadical ✅ 1181s 1191s -1%
LP64 z3* ✅ 2s 3s -33%
polyveck_decompose_pack_w1 LP64 cadical ✅ 194s 206s -6%
LP64 z3* ✅ 3s 2s +50%
polyveck_invntt_tomont LP64 cadical ✅ 324s 316s +3%
LP64 z3* ✅ 3s 6s -50%
polyveck_ntt LP64 cadical ✅ 1049s 1049s +0%
LP64 z3* ✅ 4s 4s +0%
polyveck_reduce LP64 cadical ✅ 1s 2s -50%
LP64 z3* ✅ 3s 2s +50%
polyveck_unpack_eta LP64 cvc5_mbqi_enum ✅ 52s 53s -2%
LP64 z3* ✅ 2s 2s +0%
polyveck_unpack_eta_chknorm LP64 cvc5_mbqi_enum ✅ 20s 18s +11%
LP64 z3* ✅ 2s 2s +0%
polyvecl_chknorm LP64 cadical ✅ 134s 138s -3%
LP64 z3* ✅ 5s 3s +67%
polyvecl_ntt LP64 cadical ✅ 184s 189s -3%
LP64 z3* ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery LP64 cvc5_mbqi_enum ✅ 15s 12s +25%
LP64 z3_smt_only* ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery_c LP64 cadical ✅ 149s 155s -4%
LP64 z3_smt_only* ✅ 990s 1060s -7%
polyvecl_pointwise_acc_montgomery_native LP64 cvc5_mbqi_enum ✅ 172s 170s +1%
LP64 z3_smt_only* ✅ 3s 3s +0%
polyvecl_uniform_gamma1 LP64 cvc5_mbqi_enum ✅ 76s 78s -3%
LP64 z3* ✅ 3s 3s +0%
polyvecl_uniform_gamma1_serial LP64 cvc5_mbqi_enum ✅ 47s 47s +0%
LP64 z3* ✅ 4s 2s +100%
polyvecl_unpack_eta LP64 cvc5_mbqi_enum ✅ 46s 47s -2%
LP64 z3* ✅ 4s 3s +33%
polyvecl_unpack_z LP64 cvc5_mbqi_enum ✅ 45s 47s -4%
LP64 z3* ✅ 2s 2s +0%
polyw1_pack LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 3s 4s -25%
polyw1_pack_32 LP64 bitwuzla ✅ 1s 1s +0%
LP64 z3* ✅ 5s 2s +150%
polyw1_pack_88 LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 1s 3s -67%
polyw1_unpack_32 LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
polyw1_unpack_88 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 3s 3s +0%
polyz_pack LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 1s 3s -67%
polyz_unpack LP64 bitwuzla ✅ 8s 5s +60%
LP64 z3* ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 4s -50%
polyz_unpack_19_native_aarch64 LP64 bitwuzla ✅ 5s 1s +400%
LP64 z3* ✅ 3s 2s +50%
polyz_unpack_c LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 9s 9s +0%
polyz_unpack_native LP64 bitwuzla ✅ 25s 26s -4%
LP64 z3* ✅ 3s 4s -25%
polyz_unpack_native_x86_64 LP64 bitwuzla ✅ 14s 15s -7%
LP64 z3* ✅ 2s 1s +100%
power2round LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 1s 1s +0%
reduce32 LP64 bitwuzla ✅ 1s 3s -67%
LP64 z3* ✅ 2s 2s +0%
rej_eta LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3_smt_only ✅ 3s 5s -40%
rej_eta_c LP64 bitwuzla* ✅ 2s 4s -50%
LP64 z3 ✅ 14s 14s +0%
rej_eta_native LP64 bitwuzla* ✅ 4s 4s +0%
LP64 z3_smt_only ✅ 15s 17s -12%
rej_uniform LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 10s 9s +11%
rej_uniform_c LP64 bitwuzla ✅ 2s 3s -33%
LP64 z3* ✅ 11s 12s -8%
rej_uniform_eta_native_aarch64 LP64 bitwuzla* ✅ 1s 3s -67%
LP64 z3_smt_only ✅ 2s 4s -50%
rej_uniform_eta_native_x86_64 LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3_smt_only* ✅ 2s 2s +0%
rej_uniform_native LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 9s 10s -10%
rej_uniform_native_aarch64 LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 4s 3s +33%
rej_uniform_native_x86_64 LP64 bitwuzla ✅ 4s 6s -33%
LP64 z3_smt_only* ✅ 9s 11s -18%
shake128_absorb LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 2s +0%
shake128_finalize LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 1s 2s -50%
shake128_init LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 1s 2s -50%
shake128_release LP64 bitwuzla ✅ 2s 2s +0%
LP64 z3* ✅ 3s 1s +200%
shake128_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 cvc5_arrays_exp ✅ 2s 2s +0%
shake128x4_absorb_once LP64 bitwuzla* ✅ 3s 2s +50%
LP64 z3_smt_only ✅ 2s 1s +100%
shake128x4_squeezeblocks LP64 bitwuzla* ✅ 3s 3s +0%
LP64 z3 ✅ 2s 3s -33%
shake256 LP64 bitwuzla ✅ 2s 4s -50%
LP64 z3* ✅ 1s 2s -50%
shake256_absorb LP64 bitwuzla ✅ 3s 2s +50%
LP64 z3* ✅ 2s 1s +100%
shake256_finalize LP64 cvc5_arrays_exp ✅ 3s 4s -25%
LP64 z3* ✅ 2s 3s -33%
shake256_init LP64 cvc5_arrays_exp ✅ 2s 3s -33%
LP64 z3* ✅ 2s 3s -33%
shake256_release LP64 bitwuzla ✅ 1s 2s -50%
LP64 z3* ✅ 3s 1s +200%
shake256_squeeze LP64 bitwuzla* ✅ 1s 2s -50%
LP64 z3 ✅ 2s 3s -33%
shake256x4_absorb_once LP64 bitwuzla* ✅ 5s 1s +400%
LP64 z3 ✅ 3s 2s +50%
shake256x4_squeezeblocks LP64 bitwuzla* ✅ 2s 1s +100%
LP64 z3_smt_only ✅ 2s 3s -33%
sig_unpack_hints LP64 bitwuzla ✅ 25s 24s +4%
LP64 z3* ✅ 12s 12s +0%
sign_keypair LP64 cadical ✅ 491s 597s -18%
LP64 z3* ✅ 5s 4s +25%
sign_keypair_internal LP64 cadical ✅ 220s 220s +0%
LP64 z3_no_bv_extract* ✅ 25s 26s -4%
sign_pk_from_sk LP64 z3_no_bv_extract* ✅ 30s 29s +3%
sign_signature LP64 bitwuzla ✅ 4s 5s -20%
LP64 z3* ✅ 6s 5s +20%
sign_signature_extmu LP64 cadical ✅ 53s 73s -27%
LP64 z3* ✅ 7s 2s +250%
sign_signature_internal LP64 z3_no_bv_extract* ✅ 250s 235s +6%
sign_signature_pre_hash_internal LP64 bitwuzla ✅ 4s 3s +33%
LP64 z3* ✅ 4s 4s +0%
sign_signature_pre_hash_shake256 LP64 cadical ✅ 21s 21s +0%
LP64 z3* ✅ 5s 4s +25%
sign_verify LP64 bitwuzla ✅ 6s 3s +100%
LP64 z3* ✅ 6s 2s +200%
sign_verify_extmu LP64 bitwuzla ✅ 4s 4s +0%
LP64 z3* ✅ 5s 3s +67%
sign_verify_internal LP64 z3_no_bv_extract* ✅ 822s 825s -0%
sign_verify_pre_hash_internal LP64 bitwuzla ✅ 2s 1s +100%
LP64 z3* ✅ 2s 2s +0%
sign_verify_pre_hash_shake256 LP64 bitwuzla ✅ 3s 4s -25%
LP64 z3* ✅ 2s 4s -50%
sk_s1hat_get_poly LP64 bitwuzla ✅ 33s 34s -3%
LP64 z3* ✅ 2s 1s +100%
sk_s2hat_get_poly LP64 bitwuzla ✅ 33s 37s -11%
LP64 z3* ✅ 3s 3s +0%
sk_t0hat_get_poly LP64 bitwuzla ✅ 32s 34s -6%
LP64 z3* ✅ 5s 3s +67%
sys_check_capability LP64 cvc5_arrays_exp ✅ 2s 2s +0%
LP64 z3* ✅ 2s 2s +0%
unpack_pk_t1 LP64 bitwuzla ✅ 11s 10s +10%
LP64 z3* ✅ 4s 4s +0%
unpack_sk LP64 cadical ✅ 63s 66s -5%
LP64 z3* ✅ 1s 2s -50%
unpack_sk_s1hat LP64 cvc5_mbqi_enum ✅ 87s 90s -3%
LP64 z3* ✅ 2s 1s +100%
unpack_sk_s2hat LP64 cvc5_mbqi_enum ✅ 310s 315s -2%
LP64 z3* ✅ 6s 3s +100%
unpack_sk_t0hat LP64 cadical ✅ 124s 128s -3%
LP64 z3* ✅ 3s 1s +200%
use_hint LP64 bitwuzla ✅ 3s 3s +0%
LP64 z3* ✅ 3s 1s +200%
yvec_get_poly LP64 bitwuzla ✅ 39s 38s +3%
LP64 z3* ✅ 2s 1s +100%
yvec_init LP64 bitwuzla ✅ 14s 15s -7%
LP64 z3* ✅ 2s 2s +0%

@mkannwischer mkannwischer added this to the v2.1 milestone Nov 2, 2026
@mkannwischer
mkannwischer marked this pull request as ready for review November 2, 2026 09:22
@mkannwischer
mkannwischer requested a review from a team as a code owner November 2, 2026 09:22

@hanno-becker hanno-becker left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the 2nd commit is a step back; see comment. Happy with the first.

aarch64_utils.ml redefined SIMD_SIMPLIFY_CONV and SIMD_SIMPLIFY_TAC,
shadowing the shared definitions in common/mldsa_specs.ml that it
already loads. The conversion is identical and the shared tactic only
additionally matches x86 int256 registers, which never occur in Arm
goals, so use the shared definitions.

Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
@hanno-becker
hanno-becker added this pull request to the merge queue Nov 4, 2026
Merged via the queue into main with commit e350574 Nov 4, 2026
445 checks passed
@hanno-becker
hanno-becker deleted the hol-speedup-followup branch November 4, 2026 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants