Skip to content

CI: Build macOS FIPS202 sanitizer tests with clang 22 - #1205

Merged
mkannwischer merged 1 commit into
mainfrom
ci-pin-fips202-macos15
Jun 26, 2026
Merged

mkannwischer merged 1 commit into
mainfrom
ci-pin-fips202-macos15

Conversation

@hanno-becker

@hanno-becker hanno-becker commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor
    CI: Build macOS FIPS202 sanitizer tests with clang 22

    The macos-latest label has migrated to the macOS 26 (Tahoe) arm64 image,
    whose default-toolchain ASan runtime (nixpkgs clang 21.x) deadlocks at
    process startup: compiler-rt's shadow-memory init re-enters the
    uninitialized allocator. This made the AArch64 FIPS202 backend_tests job
    hang until the 6h job timeout, intermittently, depending on which image a
    matrix leg landed on. Same symptom as python/cpython#145199.

    The fix landed upstream in LLVM >= 22 (llvm/llvm-project#191039, backported
    as #192082). Point the macOS sanitizer job at the existing 'clang22' dev
    shell so it builds with clang 22 and can run on macos-latest again.

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

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

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 1602s 1664s -3.7%
mld_invntt_layer ✅ 166s 172s -3%
polyvec_matrix_pointwise_montgomery_yvec ✅ 148s 162s -9%
poly_pointwise_montgomery_c ✅ 132s 135s -2%
rej_uniform_native ✅ 119s 128s -7%
mld_ct_memcmp ✅ 67s 69s -3%
mld_ntt_layer ✅ 44s 44s +0%
fqmul ✅ 41s 44s -7%
mld_attempt_signature_generation ✅ 33s 35s -6%
keccakf1600x4_permute_native ✅ 23s 22s +5%
poly_chknorm_c ✅ 22s 19s +16%
mld_ntt_butterfly_block ✅ 21s 23s -9%
sign_verify_internal ✅ 21s 22s -5%
polyveck_decompose ✅ 18s 16s +12%
polyt0_unpack ✅ 16s 15s +7%
rej_uniform_c ✅ 15s 16s -6%
poly_uniform_eta_4x ✅ 14s 14s +0%
polyeta_unpack ✅ 14s 15s -7%
polyvecl_chknorm ✅ 13s 11s +18%
poly_add ✅ 12s 12s +0%
mld_check_pct ✅ 11s 11s +0%
compute_pack_t0_t1 ✅ 10s 11s -9%
polyvecl_ntt ✅ 10s 9s +11%
keccak_absorb_once_x4 ✅ 9s 8s +12%
sign_pk_from_sk ✅ 9s 6s +50%
mld_keccakf1600_permute_c ✅ 8s 5s +60%
pointwise_acc_native_aarch64 ✅ 8s 8s +0%
pointwise_acc_native_x86_64 ✅ 7s 7s +0%
poly_invntt_tomont_c ✅ 7s 7s +0%
polyveck_invntt_tomont ✅ 7s 7s +0%
polyz_unpack_c ✅ 7s 7s +0%
sign ✅ 7s 7s +0%
mld_h ✅ 6s 3s +100%
poly_power2round ✅ 6s 8s -25%
poly_shiftl ✅ 6s 5s +20%
polyvec_matrix_pointwise_montgomery_row ✅ 6s 9s -33%
polyveck_caddq ✅ 6s 6s +0%
polyveck_reduce ✅ 6s 6s +0%
polyz_unpack_19_native_aarch64 ✅ 6s 3s +100%
rej_eta_native ✅ 6s 5s +20%
fqscale ✅ 5s 3s +67%
intt_native_aarch64 ✅ 5s 2s +150%
keccak_absorb ✅ 5s 6s -17%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 5s 2s +150%
keccak_squeeze ✅ 5s 3s +67%
keccak_squeezeblocks_x4 ✅ 5s 4s +25%
mld_compute_pack_z ✅ 5s 4s +25%
mld_sample_s1_s2_serial ✅ 5s 6s -17%
poly_challenge ✅ 5s 6s -17%
poly_chknorm_native ✅ 5s 3s +67%
poly_decompose_c ✅ 5s 10s -50%
poly_decompose_native ✅ 5s 2s +150%
poly_invntt_tomont_native ✅ 5s 4s +25%
poly_permute_bitrev_to_custom_optional ✅ 5s 2s +150%
polyeta_pack ✅ 5s 2s +150%
polyvec_matrix_expand_serial ✅ 5s 4s +25%
polyveck_unpack_eta ✅ 5s 3s +67%
polyvecl_pointwise_acc_montgomery_c ✅ 5s 3s +67%
polyz_unpack_native_x86_64 ✅ 5s 4s +25%
power2round ✅ 5s 3s +67%
rej_uniform ✅ 5s 9s -44%
sig_unpack_hints ✅ 5s 5s +0%
sign_keypair_internal ✅ 5s 8s -38%
sign_verify_pre_hash_internal ✅ 5s 2s +150%
sign_verify_pre_hash_shake256 ✅ 5s 4s +25%
unpack_pk_t1 ✅ 5s 2s +150%
yvec_init ✅ 5s 4s +25%
caddq ✅ 4s 2s +100%
intt_native_x86_64 ✅ 4s 1s +300%
mld_ct_abs_i32 ✅ 4s 1s +300%
mld_ct_cmask_nonzero_u32 ✅ 4s 3s +33%
mld_sample_s1_s2 ✅ 4s 5s -20%
ntt_native_aarch64 ✅ 4s 2s +100%
pack_sig_h ✅ 4s 3s +33%
poly_caddq_c ✅ 4s 5s -20%
poly_caddq_native ✅ 4s 5s -20%
poly_caddq_native_aarch64 ✅ 4s 3s +33%
poly_caddq_native_x86_64 ✅ 4s 3s +33%
poly_decompose_32_native_aarch64 ✅ 4s 2s +100%
poly_decompose_88_native_aarch64 ✅ 4s 3s +33%
poly_ntt ✅ 4s 2s +100%
poly_pointwise_montgomery ✅ 4s 3s +33%
poly_reduce ✅ 4s 4s +0%
poly_sub ✅ 4s 2s +100%
poly_uniform_eta ✅ 4s 2s +100%
poly_use_hint ✅ 4s 4s +0%
poly_use_hint_native_aarch64 ✅ 4s 4s +0%
polyvec_matrix_expand ✅ 4s 2s +100%
polyveck_chknorm ✅ 4s 2s +100%
polyveck_pack_eta ✅ 4s 5s -20%
polyvecl_pack_eta ✅ 4s 2s +100%
polyvecl_uniform_gamma1_serial ✅ 4s 4s +0%
polyvecl_unpack_z ✅ 4s 2s +100%
polyz_unpack ✅ 4s 3s +33%
rej_eta_c ✅ 4s 4s +0%
rej_uniform_eta_native_aarch64 ✅ 4s 3s +33%
shake128_init ✅ 4s 4s +0%
shake128_release ✅ 4s 3s +33%
sign_open ✅ 4s 6s -33%
sign_verify_extmu ✅ 4s 4s +0%
decompose ✅ 3s 2s +50%
keccak_f1600_x1_native_aarch64 ✅ 3s 1s +200%
keccak_f1600_x4_native_aarch64_v84a ✅ 3s 5s -40%
keccakf1600_permute_native ✅ 3s 3s +0%
keccakf1600_xor_bytes ✅ 3s 4s -25%
keccakf1600x4_extract_bytes ✅ 3s 5s -40%
keccakf1600x4_extract_bytes_native ✅ 3s 4s -25%
keccakf1600x4_xor_bytes ✅ 3s 5s -40%
mld_ct_cmask_neg_i32 ✅ 3s 3s +0%
mld_ct_get_optblocker_i64 ✅ 3s 1s +200%
mld_prepare_domain_separation_prefix ✅ 3s 4s -25%
montgomery_reduce ✅ 3s 3s +0%
ntt_native_x86_64 ✅ 3s 4s -25%
pack_sk_rho_key_tr_s2 ✅ 3s 2s +50%
pack_sk_s1 ✅ 3s 3s +0%
pointwise_native_aarch64 ✅ 3s 4s -25%
poly_chknorm ✅ 3s 3s +0%
poly_chknorm_native_aarch64 ✅ 3s 3s +0%
poly_chknorm_native_x86_64 ✅ 3s 5s -40%
poly_invntt_tomont ✅ 3s 3s +0%
poly_ntt_native ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional_native ✅ 3s 3s +0%
poly_pointwise_montgomery_native ✅ 3s 3s +0%
poly_uniform_4x ✅ 3s 4s -25%
poly_uniform_gamma1 ✅ 3s 2s +50%
poly_uniform_gamma1_4x ✅ 3s 5s -40%
polyt0_pack ✅ 3s 2s +50%
polyt1_pack ✅ 3s 4s -25%
polyveck_pack_w1 ✅ 3s 3s +0%
polyvecl_unpack_eta ✅ 3s 4s -25%
polyw1_pack_32 ✅ 3s 2s +50%
polyw1_pack_88 ✅ 3s 5s -40%
polyz_pack ✅ 3s 1s +200%
polyz_unpack_native ✅ 3s 7s -57%
rej_uniform_native_aarch64 ✅ 3s 5s -40%
shake256_absorb ✅ 3s 3s +0%
shake256_release ✅ 3s 3s +0%
shake256_squeeze ✅ 3s 2s +50%
shake256x4_squeezeblocks ✅ 3s 5s -40%
sign_keypair ✅ 3s 5s -40%
sign_signature_extmu ✅ 3s 5s -40%
sign_signature_internal ✅ 3s 4s -25%
sign_signature_pre_hash_internal ✅ 3s 3s +0%
sign_signature_pre_hash_shake256 ✅ 3s 6s -50%
sys_check_capability ✅ 3s 2s +50%
unpack_sk_t0hat ✅ 3s 3s +0%
use_hint ✅ 3s 2s +50%
yvec_get_poly ✅ 3s 4s -25%
keccak_f1600_x1_native_aarch64_v84a ✅ 2s 2s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 2s 4s -50%
keccak_init ✅ 2s 3s -33%
keccakf1600_extract_bytes (big endian) ✅ 2s 1s +100%
keccakf1600_permute ✅ 2s 1s +100%
keccakf1600_xor_bytes (big endian) ✅ 2s 2s +0%
keccakf1600x4_xor_bytes_native ✅ 2s 2s +0%
make_hint ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 ✅ 2s 6s -67%
mld_ct_get_optblocker_u32 ✅ 2s 3s -33%
mld_ct_get_optblocker_u8 ✅ 2s 1s +100%
mld_ct_sel_int32 ✅ 2s 2s +0%
mld_keccakf1600_extract_bytes ✅ 2s 4s -50%
mld_keccakf1600x4_extract_bytes_c ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c ✅ 2s 3s -33%
mld_polymat_expand_entry ✅ 2s 3s -33%
mld_value_barrier_u32 ✅ 2s 5s -60%
mld_value_barrier_u8 ✅ 2s 2s +0%
nttunpack_native_x86_64 ✅ 2s 5s -60%
pack_sig_c ✅ 2s 4s -50%
pack_sig_z ✅ 2s 3s -33%
pointwise_native_x86_64 ✅ 2s 5s -60%
poly_caddq ✅ 2s 4s -50%
poly_decompose ✅ 2s 4s -50%
poly_ntt_c ✅ 2s 3s -33%
poly_uniform ✅ 2s 3s -33%
poly_use_hint_c ✅ 2s 4s -50%
poly_use_hint_native ✅ 2s 3s -33%
polyt1_unpack ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery_native ✅ 2s 3s -33%
polyw1_pack ✅ 2s 3s -33%
polyz_unpack_17_native_aarch64 ✅ 2s 6s -67%
reduce32 ✅ 2s 3s -33%
shake128_absorb ✅ 2s 3s -33%
shake128_finalize ✅ 2s 2s +0%
shake128x4_absorb_once ✅ 2s 2s +0%
shake256_finalize ✅ 2s 3s -33%
shake256_init ✅ 2s 2s +0%
shake256x4_absorb_once ✅ 2s 1s +100%
sign_signature ✅ 2s 7s -71%
sign_verify ✅ 2s 5s -60%
sk_t0hat_get_poly ✅ 2s 3s -33%
unpack_sk ✅ 2s 5s -60%
unpack_sk_s1hat ✅ 2s 2s +0%
unpack_sk_s2hat ✅ 2s 2s +0%
keccak_f1600_x4_native_avx2 ✅ 1s 1s +0%
keccak_finalize ✅ 1s 2s -50%
keccakf1600x4_permute ✅ 1s 2s -50%
mld_value_barrier_i64 ✅ 1s 4s -75%
polyveck_ntt ✅ 1s 2s -50%
polyvecl_uniform_gamma1 ✅ 1s 2s -50%
rej_eta ✅ 1s 3s -67%
shake128_squeeze ✅ 1s 2s -50%
shake128x4_squeezeblocks ✅ 1s 3s -67%
shake256 ✅ 1s 2s -50%
sk_s1hat_get_poly ✅ 1s 3s -67%
sk_s2hat_get_poly ✅ 1s 2s -50%

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

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

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 1521s 1495s +1.7%
mld_invntt_layer ✅ 162s 163s -1%
poly_pointwise_montgomery_c ✅ 132s 133s -1%
rej_uniform_native ✅ 123s 119s +3%
polyvec_matrix_pointwise_montgomery_yvec ✅ 80s 81s -1%
mld_ct_memcmp ✅ 63s 65s -3%
mld_ntt_layer ✅ 45s 41s +10%
fqmul ✅ 41s 39s +5%
polyveck_chknorm ✅ 36s 36s +0%
keccakf1600x4_permute_native ✅ 23s 22s +5%
mld_ntt_butterfly_block ✅ 22s 21s +5%
mld_attempt_signature_generation ✅ 21s 21s +0%
poly_chknorm_c ✅ 18s 17s +6%
polyt0_unpack ✅ 17s 17s +0%
polyveck_decompose ✅ 16s 16s +0%
mld_check_pct ✅ 14s 14s +0%
rej_uniform_c ✅ 14s 16s -12%
sign_verify_internal ✅ 14s 16s -12%
poly_add ✅ 13s 11s +18%
poly_uniform_eta_4x ✅ 13s 13s +0%
polyvec_matrix_pointwise_montgomery_row ✅ 12s 11s +9%
polyvecl_chknorm ✅ 12s 14s -14%
poly_invntt_tomont_c ✅ 10s 10s +0%
keccak_absorb_once_x4 ✅ 9s 8s +12%
rej_uniform ✅ 9s 7s +29%
sign ✅ 9s 6s +50%
compute_pack_t0_t1 ✅ 8s 7s +14%
pointwise_acc_native_x86_64 ✅ 8s 6s +33%
polyvecl_ntt ✅ 8s 6s +33%
poly_power2round ✅ 7s 7s +0%
polyveck_caddq ✅ 7s 7s +0%
polyveck_invntt_tomont ✅ 7s 5s +40%
polyveck_reduce ✅ 7s 4s +75%
sign_signature_pre_hash_internal ✅ 7s 4s +75%
mld_keccakf1600_permute_c ✅ 6s 6s +0%
polyeta_unpack ✅ 6s 7s -14%
rej_eta_native ✅ 6s 4s +50%
sign_pk_from_sk ✅ 6s 7s -14%
sign_signature_internal ✅ 6s 4s +50%
fqscale ✅ 5s 4s +25%
keccak_absorb ✅ 5s 5s +0%
keccak_finalize ✅ 5s 4s +25%
make_hint ✅ 5s 4s +25%
mld_sample_s1_s2_serial ✅ 5s 3s +67%
ntt_native_x86_64 ✅ 5s 4s +25%
pointwise_acc_native_aarch64 ✅ 5s 6s -17%
poly_caddq_native_x86_64 ✅ 5s 2s +150%
poly_decompose_c ✅ 5s 5s +0%
poly_shiftl ✅ 5s 4s +25%
poly_use_hint_native ✅ 5s 4s +25%
polyvec_matrix_expand_serial ✅ 5s 3s +67%
polyz_unpack_c ✅ 5s 6s -17%
power2round ✅ 5s 2s +150%
shake128_absorb ✅ 5s 3s +67%
sign_signature_extmu ✅ 5s 3s +67%
use_hint ✅ 5s 3s +67%
intt_native_aarch64 ✅ 4s 4s +0%
intt_native_x86_64 ✅ 4s 5s -20%
keccak_squeezeblocks_x4 ✅ 4s 5s -20%
keccakf1600_permute_native ✅ 4s 5s -20%
keccakf1600x4_extract_bytes ✅ 4s 2s +100%
keccakf1600x4_permute ✅ 4s 3s +33%
mld_compute_pack_z ✅ 4s 6s -33%
mld_ct_cmask_nonzero_u32 ✅ 4s 4s +0%
mld_prepare_domain_separation_prefix ✅ 4s 3s +33%
ntt_native_aarch64 ✅ 4s 3s +33%
nttunpack_native_x86_64 ✅ 4s 3s +33%
pack_sig_h ✅ 4s 4s +0%
poly_caddq_c ✅ 4s 3s +33%
poly_caddq_native ✅ 4s 3s +33%
poly_decompose ✅ 4s 2s +100%
poly_decompose_32_native_aarch64 ✅ 4s 1s +300%
poly_invntt_tomont ✅ 4s 4s +0%
poly_invntt_tomont_native ✅ 4s 2s +100%
poly_ntt ✅ 4s 3s +33%
poly_ntt_c ✅ 4s 2s +100%
poly_ntt_native ✅ 4s 4s +0%
poly_reduce ✅ 4s 3s +33%
poly_use_hint ✅ 4s 4s +0%
polyt0_pack ✅ 4s 6s -33%
polyt1_pack ✅ 4s 4s +0%
polyvecl_unpack_eta ✅ 4s 3s +33%
polyw1_pack_88 ✅ 4s 3s +33%
polyz_unpack_17_native_aarch64 ✅ 4s 4s +0%
polyz_unpack_native_x86_64 ✅ 4s 3s +33%
rej_eta ✅ 4s 2s +100%
shake256 ✅ 4s 2s +100%
shake256_squeeze ✅ 4s 2s +100%
sign_keypair ✅ 4s 6s -33%
sign_keypair_internal ✅ 4s 4s +0%
sign_open ✅ 4s 5s -20%
sign_signature_pre_hash_shake256 ✅ 4s 6s -33%
sign_verify ✅ 4s 2s +100%
sign_verify_extmu ✅ 4s 4s +0%
sign_verify_pre_hash_shake256 ✅ 4s 5s -20%
sk_s2hat_get_poly ✅ 4s 1s +300%
sys_check_capability ✅ 4s 2s +100%
unpack_sk ✅ 4s 3s +33%
unpack_sk_t0hat ✅ 4s 1s +300%
decompose ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 3s 2s +50%
keccak_init ✅ 3s 3s +0%
keccak_squeeze ✅ 3s 4s -25%
keccakf1600_permute ✅ 3s 2s +50%
keccakf1600x4_xor_bytes_native ✅ 3s 1s +200%
mld_ct_abs_i32 ✅ 3s 3s +0%
mld_ct_get_optblocker_i64 ✅ 3s 2s +50%
mld_ct_get_optblocker_u32 ✅ 3s 4s -25%
mld_ct_sel_int32 ✅ 3s 4s -25%
mld_h ✅ 3s 3s +0%
mld_polymat_expand_entry ✅ 3s 3s +0%
mld_sample_s1_s2 ✅ 3s 4s -25%
mld_value_barrier_u32 ✅ 3s 2s +50%
mld_value_barrier_u8 ✅ 3s 2s +50%
pack_sig_c ✅ 3s 3s +0%
pack_sk_s1 ✅ 3s 4s -25%
pointwise_native_x86_64 ✅ 3s 3s +0%
poly_caddq ✅ 3s 3s +0%
poly_caddq_native_aarch64 ✅ 3s 4s -25%
poly_challenge ✅ 3s 5s -40%
poly_chknorm_native_aarch64 ✅ 3s 4s -25%
poly_chknorm_native_x86_64 ✅ 3s 2s +50%
poly_decompose_88_native_aarch64 ✅ 3s 2s +50%
poly_pointwise_montgomery_native ✅ 3s 2s +50%
poly_sub ✅ 3s 3s +0%
poly_uniform ✅ 3s 3s +0%
poly_uniform_4x ✅ 3s 3s +0%
poly_uniform_eta ✅ 3s 2s +50%
polyt1_unpack ✅ 3s 3s +0%
polyvec_matrix_expand ✅ 3s 1s +200%
polyveck_pack_w1 ✅ 3s 2s +50%
polyveck_unpack_eta ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery_c ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery_native ✅ 3s 3s +0%
polyvecl_unpack_z ✅ 3s 3s +0%
polyz_unpack_19_native_aarch64 ✅ 3s 4s -25%
polyz_unpack_native ✅ 3s 2s +50%
reduce32 ✅ 3s 3s +0%
rej_eta_c ✅ 3s 2s +50%
shake128_init ✅ 3s 2s +50%
shake128_squeeze ✅ 3s 2s +50%
sign_verify_pre_hash_internal ✅ 3s 2s +50%
caddq ✅ 2s 3s -33%
keccak_f1600_x1_native_aarch64 ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a ✅ 2s 2s +0%
keccak_f1600_x4_native_avx2 ✅ 2s 2s +0%
keccakf1600_xor_bytes ✅ 2s 2s +0%
keccakf1600x4_xor_bytes ✅ 2s 3s -33%
mld_ct_cmask_neg_i32 ✅ 2s 4s -50%
mld_ct_cmask_nonzero_u8 ✅ 2s 4s -50%
mld_ct_get_optblocker_u8 ✅ 2s 3s -33%
mld_keccakf1600_extract_bytes ✅ 2s 3s -33%
mld_keccakf1600x4_xor_bytes_c ✅ 2s 1s +100%
mld_value_barrier_i64 ✅ 2s 3s -33%
montgomery_reduce ✅ 2s 5s -60%
pack_sig_z ✅ 2s 3s -33%
pack_sk_rho_key_tr_s2 ✅ 2s 2s +0%
pointwise_native_aarch64 ✅ 2s 2s +0%
poly_chknorm ✅ 2s 5s -60%
poly_chknorm_native ✅ 2s 4s -50%
poly_decompose_native ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional ✅ 2s 4s -50%
poly_permute_bitrev_to_custom_optional_native ✅ 2s 5s -60%
poly_pointwise_montgomery ✅ 2s 2s +0%
poly_uniform_gamma1_4x ✅ 2s 2s +0%
poly_use_hint_c ✅ 2s 3s -33%
polyeta_pack ✅ 2s 2s +0%
polyveck_ntt ✅ 2s 4s -50%
polyveck_pack_eta ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery ✅ 2s 2s +0%
polyvecl_uniform_gamma1 ✅ 2s 2s +0%
polyvecl_uniform_gamma1_serial ✅ 2s 3s -33%
polyw1_pack ✅ 2s 4s -50%
polyw1_pack_32 ✅ 2s 2s +0%
polyz_pack ✅ 2s 3s -33%
polyz_unpack ✅ 2s 3s -33%
rej_uniform_eta_native_aarch64 ✅ 2s 3s -33%
rej_uniform_native_aarch64 ✅ 2s 3s -33%
shake128_finalize ✅ 2s 4s -50%
shake128_release ✅ 2s 1s +100%
shake128x4_absorb_once ✅ 2s 1s +100%
shake128x4_squeezeblocks ✅ 2s 2s +0%
shake256_absorb ✅ 2s 3s -33%
shake256_finalize ✅ 2s 2s +0%
shake256_release ✅ 2s 2s +0%
shake256x4_absorb_once ✅ 2s 1s +100%
shake256x4_squeezeblocks ✅ 2s 2s +0%
sig_unpack_hints ✅ 2s 3s -33%
sign_signature ✅ 2s 3s -33%
sk_s1hat_get_poly ✅ 2s 3s -33%
sk_t0hat_get_poly ✅ 2s 2s +0%
unpack_pk_t1 ✅ 2s 1s +100%
unpack_sk_s1hat ✅ 2s 4s -50%
unpack_sk_s2hat ✅ 2s 2s +0%
yvec_get_poly ✅ 2s 3s -33%
yvec_init ✅ 2s 5s -60%
keccak_f1600_x4_native_aarch64_v84a ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 1s 3s -67%
keccakf1600_extract_bytes (big endian) ✅ 1s 1s +0%
keccakf1600_xor_bytes (big endian) ✅ 1s 3s -67%
keccakf1600x4_extract_bytes_native ✅ 1s 3s -67%
mld_keccakf1600x4_extract_bytes_c ✅ 1s 4s -75%
poly_uniform_gamma1 ✅ 1s 3s -67%
poly_use_hint_native_aarch64 ✅ 1s 3s -67%
polyvecl_pack_eta ✅ 1s 3s -67%
shake256_init ✅ 1s 2s -50%

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

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

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 1498s 1486s +0.8%
mld_invntt_layer ✅ 159s 160s -1%
poly_pointwise_montgomery_c ✅ 125s 131s -5%
rej_uniform_native ✅ 120s 115s +4%
polyvec_matrix_pointwise_montgomery_yvec ✅ 113s 111s +2%
mld_ct_memcmp ✅ 64s 63s +2%
mld_ntt_layer ✅ 42s 40s +5%
fqmul ✅ 41s 42s -2%
sign_verify_internal ✅ 25s 23s +9%
keccakf1600x4_permute_native ✅ 24s 22s +9%
mld_attempt_signature_generation ✅ 23s 24s -4%
mld_ntt_butterfly_block ✅ 19s 19s +0%
poly_chknorm_c ✅ 17s 17s +0%
polyt0_unpack ✅ 17s 18s -6%
polyeta_unpack ✅ 15s 14s +7%
mld_check_pct ✅ 14s 17s -18%
poly_uniform_eta_4x ✅ 14s 12s +17%
polyz_unpack_c ✅ 13s 11s +18%
poly_add ✅ 12s 11s +9%
rej_uniform_c ✅ 12s 16s -25%
compute_pack_t0_t1 ✅ 11s 8s +38%
polyvec_matrix_pointwise_montgomery_row ✅ 9s 9s +0%
polyveck_decompose ✅ 9s 5s +80%
rej_uniform ✅ 9s 8s +12%
keccak_absorb_once_x4 ✅ 8s 9s -11%
polyveck_chknorm ✅ 8s 9s -11%
keccak_absorb ✅ 7s 6s +17%
pointwise_acc_native_aarch64 ✅ 7s 6s +17%
poly_challenge ✅ 7s 5s +40%
poly_decompose_c ✅ 7s 6s +17%
poly_invntt_tomont_c ✅ 7s 11s -36%
poly_pointwise_montgomery ✅ 7s 3s +133%
polyveck_invntt_tomont ✅ 7s 7s +0%
sign ✅ 7s 7s +0%
fqscale ✅ 6s 2s +200%
mld_compute_pack_z ✅ 6s 6s +0%
mld_keccakf1600_permute_c ✅ 6s 5s +20%
pointwise_acc_native_x86_64 ✅ 6s 6s +0%
poly_power2round ✅ 6s 8s -25%
polyt0_pack ✅ 6s 5s +20%
sign_verify ✅ 6s 6s +0%
sign_verify_extmu ✅ 6s 5s +20%
intt_native_x86_64 ✅ 5s 3s +67%
keccak_f1600_x4_native_aarch64_v84a ✅ 5s 4s +25%
mld_sample_s1_s2_serial ✅ 5s 4s +25%
poly_invntt_tomont_native ✅ 5s 3s +67%
poly_pointwise_montgomery_native ✅ 5s 3s +67%
polyveck_caddq ✅ 5s 4s +25%
polyvecl_chknorm ✅ 5s 5s +0%
shake256x4_squeezeblocks ✅ 5s 2s +150%
sign_pk_from_sk ✅ 5s 6s -17%
sign_signature_internal ✅ 5s 3s +67%
caddq ✅ 4s 4s +0%
intt_native_aarch64 ✅ 4s 2s +100%
keccak_f1600_x4_native_avx2 ✅ 4s 3s +33%
mld_h ✅ 4s 3s +33%
mld_prepare_domain_separation_prefix ✅ 4s 5s -20%
ntt_native_x86_64 ✅ 4s 4s +0%
nttunpack_native_x86_64 ✅ 4s 3s +33%
pack_sig_c ✅ 4s 2s +100%
poly_caddq ✅ 4s 2s +100%
poly_caddq_c ✅ 4s 4s +0%
poly_decompose_32_native_aarch64 ✅ 4s 2s +100%
poly_invntt_tomont ✅ 4s 2s +100%
poly_reduce ✅ 4s 5s -20%
poly_shiftl ✅ 4s 4s +0%
poly_uniform_4x ✅ 4s 3s +33%
poly_uniform_eta ✅ 4s 3s +33%
poly_uniform_gamma1 ✅ 4s 3s +33%
polyt1_pack ✅ 4s 4s +0%
polyveck_pack_eta ✅ 4s 2s +100%
polyveck_reduce ✅ 4s 4s +0%
polyvecl_ntt ✅ 4s 3s +33%
polyvecl_uniform_gamma1 ✅ 4s 2s +100%
polyw1_pack ✅ 4s 2s +100%
polyz_unpack ✅ 4s 3s +33%
shake128_squeeze ✅ 4s 1s +300%
shake256_init ✅ 4s 2s +100%
shake256_release ✅ 4s 3s +33%
sig_unpack_hints ✅ 4s 3s +33%
sign_keypair ✅ 4s 3s +33%
sign_keypair_internal ✅ 4s 4s +0%
sign_open ✅ 4s 5s -20%
sign_signature_pre_hash_shake256 ✅ 4s 2s +100%
sign_verify_pre_hash_internal ✅ 4s 5s -20%
unpack_pk_t1 ✅ 4s 3s +33%
unpack_sk ✅ 4s 1s +300%
unpack_sk_s2hat ✅ 4s 4s +0%
keccak_f1600_x1_native_aarch64_v84a ✅ 3s 2s +50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 3s 3s +0%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 3s 2s +50%
keccak_finalize ✅ 3s 1s +200%
keccak_init ✅ 3s 2s +50%
keccak_squeeze ✅ 3s 3s +0%
keccak_squeezeblocks_x4 ✅ 3s 3s +0%
keccakf1600_extract_bytes (big endian) ✅ 3s 1s +200%
keccakf1600_xor_bytes ✅ 3s 2s +50%
keccakf1600_xor_bytes (big endian) ✅ 3s 3s +0%
make_hint ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u32 ✅ 3s 4s -25%
mld_keccakf1600_extract_bytes ✅ 3s 4s -25%
mld_polymat_expand_entry ✅ 3s 5s -40%
mld_sample_s1_s2 ✅ 3s 5s -40%
mld_value_barrier_u32 ✅ 3s 2s +50%
ntt_native_aarch64 ✅ 3s 2s +50%
pack_sk_rho_key_tr_s2 ✅ 3s 2s +50%
pointwise_native_aarch64 ✅ 3s 2s +50%
pointwise_native_x86_64 ✅ 3s 2s +50%
poly_caddq_native_aarch64 ✅ 3s 2s +50%
poly_caddq_native_x86_64 ✅ 3s 2s +50%
poly_chknorm_native_aarch64 ✅ 3s 3s +0%
poly_ntt_c ✅ 3s 2s +50%
poly_ntt_native ✅ 3s 5s -40%
poly_permute_bitrev_to_custom_optional_native ✅ 3s 2s +50%
poly_sub ✅ 3s 3s +0%
poly_uniform ✅ 3s 3s +0%
poly_uniform_gamma1_4x ✅ 3s 3s +0%
poly_use_hint_c ✅ 3s 3s +0%
polyvec_matrix_expand_serial ✅ 3s 2s +50%
polyveck_ntt ✅ 3s 2s +50%
polyveck_pack_w1 ✅ 3s 3s +0%
polyveck_unpack_eta ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery_c ✅ 3s 3s +0%
polyw1_pack_32 ✅ 3s 4s -25%
polyz_pack ✅ 3s 2s +50%
polyz_unpack_19_native_aarch64 ✅ 3s 3s +0%
polyz_unpack_native ✅ 3s 3s +0%
power2round ✅ 3s 1s +200%
rej_eta_native ✅ 3s 4s -25%
rej_uniform_eta_native_aarch64 ✅ 3s 5s -40%
shake128_absorb ✅ 3s 1s +200%
shake128_init ✅ 3s 3s +0%
shake256 ✅ 3s 2s +50%
shake256_squeeze ✅ 3s 2s +50%
sign_signature_pre_hash_internal ✅ 3s 5s -40%
sign_verify_pre_hash_shake256 ✅ 3s 4s -25%
use_hint ✅ 3s 3s +0%
yvec_init ✅ 3s 4s -25%
decompose ✅ 2s 3s -33%
keccak_f1600_x1_native_aarch64 ✅ 2s 3s -33%
keccakf1600_permute ✅ 2s 3s -33%
keccakf1600x4_extract_bytes ✅ 2s 3s -33%
keccakf1600x4_permute ✅ 2s 1s +100%
keccakf1600x4_xor_bytes ✅ 2s 2s +0%
mld_ct_abs_i32 ✅ 2s 2s +0%
mld_ct_cmask_neg_i32 ✅ 2s 3s -33%
mld_ct_cmask_nonzero_u8 ✅ 2s 3s -33%
mld_ct_get_optblocker_i64 ✅ 2s 2s +0%
mld_ct_get_optblocker_u32 ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 ✅ 2s 2s +0%
mld_keccakf1600x4_extract_bytes_c ✅ 2s 1s +100%
mld_value_barrier_i64 ✅ 2s 1s +100%
mld_value_barrier_u8 ✅ 2s 1s +100%
montgomery_reduce ✅ 2s 2s +0%
pack_sig_h ✅ 2s 3s -33%
pack_sig_z ✅ 2s 3s -33%
pack_sk_s1 ✅ 2s 4s -50%
poly_caddq_native ✅ 2s 3s -33%
poly_chknorm_native ✅ 2s 3s -33%
poly_chknorm_native_x86_64 ✅ 2s 2s +0%
poly_decompose ✅ 2s 4s -50%
poly_decompose_88_native_aarch64 ✅ 2s 2s +0%
poly_decompose_native ✅ 2s 4s -50%
poly_ntt ✅ 2s 3s -33%
poly_permute_bitrev_to_custom_optional ✅ 2s 2s +0%
poly_use_hint ✅ 2s 4s -50%
poly_use_hint_native ✅ 2s 6s -67%
poly_use_hint_native_aarch64 ✅ 2s 3s -33%
polyeta_pack ✅ 2s 2s +0%
polyt1_unpack ✅ 2s 3s -33%
polyvec_matrix_expand ✅ 2s 2s +0%
polyvecl_pack_eta ✅ 2s 3s -33%
polyvecl_pointwise_acc_montgomery ✅ 2s 4s -50%
polyvecl_pointwise_acc_montgomery_native ✅ 2s 3s -33%
polyvecl_uniform_gamma1_serial ✅ 2s 5s -60%
polyvecl_unpack_eta ✅ 2s 4s -50%
polyvecl_unpack_z ✅ 2s 4s -50%
polyw1_pack_88 ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 ✅ 2s 7s -71%
polyz_unpack_native_x86_64 ✅ 2s 3s -33%
reduce32 ✅ 2s 3s -33%
rej_eta ✅ 2s 2s +0%
rej_eta_c ✅ 2s 3s -33%
rej_uniform_native_aarch64 ✅ 2s 3s -33%
shake128_release ✅ 2s 2s +0%
shake128x4_absorb_once ✅ 2s 3s -33%
shake128x4_squeezeblocks ✅ 2s 2s +0%
shake256_absorb ✅ 2s 2s +0%
shake256_finalize ✅ 2s 3s -33%
shake256x4_absorb_once ✅ 2s 1s +100%
sign_signature ✅ 2s 4s -50%
sign_signature_extmu ✅ 2s 5s -60%
sk_s1hat_get_poly ✅ 2s 4s -50%
sk_t0hat_get_poly ✅ 2s 3s -33%
sys_check_capability ✅ 2s 4s -50%
unpack_sk_t0hat ✅ 2s 1s +100%
yvec_get_poly ✅ 2s 1s +100%
keccakf1600_permute_native ✅ 1s 2s -50%
keccakf1600x4_extract_bytes_native ✅ 1s 3s -67%
keccakf1600x4_xor_bytes_native ✅ 1s 3s -67%
mld_ct_sel_int32 ✅ 1s 3s -67%
mld_keccakf1600x4_xor_bytes_c ✅ 1s 3s -67%
poly_chknorm ✅ 1s 5s -80%
shake128_finalize ✅ 1s 1s +0%
sk_s2hat_get_poly ✅ 1s 2s -50%
unpack_sk_s1hat ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-44)

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 1823s 1841s -1.0%
mld_invntt_layer ✅ 298s 302s -1%
rej_uniform_native ✅ 145s 152s -5%
polyvecl_pointwise_acc_montgomery_c ✅ 127s 130s -2%
poly_pointwise_montgomery_c ✅ 101s 105s -4%
mld_ct_memcmp ✅ 68s 72s -6%
mld_attempt_signature_generation ✅ 62s 64s -3%
mld_ntt_layer ✅ 45s 43s +5%
fqmul ✅ 42s 42s +0%
polyvec_matrix_expand ✅ 27s 27s +0%
sign_verify_internal ✅ 25s 27s -7%
keccakf1600x4_permute_native ✅ 24s 25s -4%
poly_chknorm_c ✅ 24s 22s +9%
mld_ntt_butterfly_block ✅ 22s 24s -8%
rej_uniform ✅ 22s 21s +5%
sign_signature_internal ✅ 21s 21s +0%
polyeta_unpack ✅ 17s 18s -6%
polyt0_unpack ✅ 17s 17s +0%
rej_uniform_c ✅ 17s 12s +42%
compute_pack_t0_t1 ✅ 15s 16s -6%
mld_check_pct ✅ 15s 14s +7%
poly_uniform_4x ✅ 13s 10s +30%
poly_uniform_eta_4x ✅ 13s 11s +18%
polyz_unpack_c ✅ 12s 10s +20%
poly_add ✅ 11s 9s +22%
polyveck_chknorm ✅ 10s 12s -17%
keccak_absorb_once_x4 ✅ 9s 10s -10%
poly_invntt_tomont_c ✅ 9s 10s -10%
polyt0_pack ✅ 8s 4s +100%
polyvec_matrix_pointwise_montgomery_yvec ✅ 8s 9s -11%
polyveck_decompose ✅ 8s 8s +0%
mld_compute_pack_z ✅ 7s 9s -22%
mld_keccakf1600_permute_c ✅ 7s 7s +0%
poly_caddq_c ✅ 7s 5s +40%
polyvec_matrix_expand_serial ✅ 7s 9s -22%
polyveck_invntt_tomont ✅ 7s 4s +75%
sign ✅ 7s 8s -12%
intt_native_aarch64 ✅ 6s 6s +0%
keccak_absorb ✅ 6s 7s -14%
keccak_squeezeblocks_x4 ✅ 6s 4s +50%
keccakf1600_permute_native ✅ 6s 2s +200%
pointwise_acc_native_x86_64 ✅ 6s 7s -14%
poly_use_hint_c ✅ 6s 8s -25%
mld_ct_sel_int32 ✅ 5s 3s +67%
mld_keccakf1600x4_extract_bytes_c ✅ 5s 2s +150%
mld_sample_s1_s2 ✅ 5s 3s +67%
pack_sk_rho_key_tr_s2 ✅ 5s 4s +25%
pointwise_acc_native_aarch64 ✅ 5s 5s +0%
pointwise_native_aarch64 ✅ 5s 5s +0%
poly_challenge ✅ 5s 4s +25%
poly_decompose_c ✅ 5s 3s +67%
poly_uniform_eta ✅ 5s 7s -29%
poly_uniform_gamma1_4x ✅ 5s 6s -17%
polyveck_pack_eta ✅ 5s 3s +67%
polyvecl_chknorm ✅ 5s 3s +67%
polyvecl_ntt ✅ 5s 5s +0%
polyw1_pack ✅ 5s 3s +67%
polyw1_pack_88 ✅ 5s 8s -38%
sign_keypair ✅ 5s 4s +25%
sign_open ✅ 5s 6s -17%
sign_signature ✅ 5s 3s +67%
unpack_sk_s1hat ✅ 5s 3s +67%
keccakf1600_permute ✅ 4s 2s +100%
keccakf1600_xor_bytes ✅ 4s 4s +0%
mld_ct_cmask_nonzero_u32 ✅ 4s 5s -20%
mld_h ✅ 4s 4s +0%
mld_polymat_expand_entry ✅ 4s 2s +100%
ntt_native_x86_64 ✅ 4s 4s +0%
nttunpack_native_x86_64 ✅ 4s 5s -20%
poly_caddq_native_x86_64 ✅ 4s 4s +0%
poly_chknorm ✅ 4s 4s +0%
poly_decompose_32_native_aarch64 ✅ 4s 5s -20%
poly_invntt_tomont ✅ 4s 4s +0%
poly_invntt_tomont_native ✅ 4s 4s +0%
poly_permute_bitrev_to_custom_optional ✅ 4s 2s +100%
poly_power2round ✅ 4s 5s -20%
poly_shiftl ✅ 4s 2s +100%
poly_use_hint_native ✅ 4s 2s +100%
poly_use_hint_native_aarch64 ✅ 4s 5s -20%
polyt1_unpack ✅ 4s 3s +33%
polyvec_matrix_pointwise_montgomery_row ✅ 4s 2s +100%
polyveck_reduce ✅ 4s 2s +100%
polyvecl_pack_eta ✅ 4s 4s +0%
polyz_pack ✅ 4s 2s +100%
polyz_unpack ✅ 4s 3s +33%
polyz_unpack_native ✅ 4s 5s -20%
rej_eta_c ✅ 4s 5s -20%
rej_eta_native ✅ 4s 4s +0%
shake128_release ✅ 4s 3s +33%
shake256_init ✅ 4s 3s +33%
shake256x4_absorb_once ✅ 4s 1s +300%
sign_keypair_internal ✅ 4s 2s +100%
sign_pk_from_sk ✅ 4s 7s -43%
sign_signature_extmu ✅ 4s 4s +0%
sign_verify_pre_hash_internal ✅ 4s 4s +0%
sign_verify_pre_hash_shake256 ✅ 4s 4s +0%
sk_t0hat_get_poly ✅ 4s 5s -20%
unpack_sk ✅ 4s 3s +33%
unpack_sk_t0hat ✅ 4s 3s +33%
decompose ✅ 3s 2s +50%
fqscale ✅ 3s 3s +0%
intt_native_x86_64 ✅ 3s 4s -25%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 3s 4s -25%
keccak_f1600_x4_native_avx2 ✅ 3s 3s +0%
keccak_finalize ✅ 3s 3s +0%
keccak_init ✅ 3s 3s +0%
keccakf1600x4_permute ✅ 3s 4s -25%
keccakf1600x4_xor_bytes ✅ 3s 1s +200%
keccakf1600x4_xor_bytes_native ✅ 3s 2s +50%
mld_ct_cmask_nonzero_u8 ✅ 3s 2s +50%
mld_ct_get_optblocker_u32 ✅ 3s 1s +200%
mld_keccakf1600x4_xor_bytes_c ✅ 3s 1s +200%
mld_prepare_domain_separation_prefix ✅ 3s 3s +0%
mld_sample_s1_s2_serial ✅ 3s 4s -25%
mld_value_barrier_i64 ✅ 3s 3s +0%
mld_value_barrier_u8 ✅ 3s 1s +200%
montgomery_reduce ✅ 3s 3s +0%
ntt_native_aarch64 ✅ 3s 5s -40%
pack_sig_c ✅ 3s 2s +50%
pack_sig_z ✅ 3s 2s +50%
pack_sk_s1 ✅ 3s 3s +0%
poly_caddq_native ✅ 3s 5s -40%
poly_caddq_native_aarch64 ✅ 3s 5s -40%
poly_chknorm_native ✅ 3s 3s +0%
poly_chknorm_native_x86_64 ✅ 3s 4s -25%
poly_decompose_88_native_aarch64 ✅ 3s 3s +0%
poly_decompose_native ✅ 3s 3s +0%
poly_ntt ✅ 3s 2s +50%
poly_ntt_c ✅ 3s 5s -40%
poly_ntt_native ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional_native ✅ 3s 2s +50%
poly_pointwise_montgomery ✅ 3s 2s +50%
poly_sub ✅ 3s 3s +0%
poly_uniform ✅ 3s 3s +0%
poly_use_hint ✅ 3s 3s +0%
polyeta_pack ✅ 3s 3s +0%
polyveck_ntt ✅ 3s 4s -25%
polyveck_unpack_eta ✅ 3s 4s -25%
polyvecl_pointwise_acc_montgomery_native ✅ 3s 6s -50%
polyvecl_uniform_gamma1 ✅ 3s 3s +0%
polyvecl_uniform_gamma1_serial ✅ 3s 2s +50%
polyvecl_unpack_z ✅ 3s 3s +0%
polyz_unpack_17_native_aarch64 ✅ 3s 3s +0%
polyz_unpack_19_native_aarch64 ✅ 3s 3s +0%
power2round ✅ 3s 1s +200%
shake128_finalize ✅ 3s 3s +0%
shake128_init ✅ 3s 1s +200%
shake128x4_squeezeblocks ✅ 3s 2s +50%
shake256 ✅ 3s 2s +50%
shake256_finalize ✅ 3s 4s -25%
shake256_squeeze ✅ 3s 1s +200%
shake256x4_squeezeblocks ✅ 3s 2s +50%
sign_signature_pre_hash_internal ✅ 3s 3s +0%
sign_signature_pre_hash_shake256 ✅ 3s 4s -25%
sign_verify ✅ 3s 4s -25%
sk_s2hat_get_poly ✅ 3s 4s -25%
unpack_pk_t1 ✅ 3s 3s +0%
yvec_get_poly ✅ 3s 3s +0%
yvec_init ✅ 3s 3s +0%
caddq ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64 ✅ 2s 3s -33%
keccak_f1600_x1_native_aarch64_v84a ✅ 2s 4s -50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 2s 3s -33%
keccak_squeeze ✅ 2s 5s -60%
keccakf1600_xor_bytes (big endian) ✅ 2s 2s +0%
keccakf1600x4_extract_bytes ✅ 2s 2s +0%
keccakf1600x4_extract_bytes_native ✅ 2s 3s -33%
make_hint ✅ 2s 5s -60%
mld_ct_cmask_neg_i32 ✅ 2s 2s +0%
mld_ct_get_optblocker_i64 ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 ✅ 2s 3s -33%
mld_keccakf1600_extract_bytes ✅ 2s 3s -33%
mld_value_barrier_u32 ✅ 2s 3s -33%
pack_sig_h ✅ 2s 6s -67%
pointwise_native_x86_64 ✅ 2s 3s -33%
poly_caddq ✅ 2s 3s -33%
poly_decompose ✅ 2s 3s -33%
poly_reduce ✅ 2s 5s -60%
poly_uniform_gamma1 ✅ 2s 2s +0%
polyt1_pack ✅ 2s 4s -50%
polyveck_caddq ✅ 2s 4s -50%
polyveck_pack_w1 ✅ 2s 2s +0%
polyvecl_pointwise_acc_montgomery ✅ 2s 3s -33%
polyvecl_unpack_eta ✅ 2s 2s +0%
polyw1_pack_32 ✅ 2s 3s -33%
polyz_unpack_native_x86_64 ✅ 2s 2s +0%
reduce32 ✅ 2s 3s -33%
rej_uniform_eta_native_aarch64 ✅ 2s 3s -33%
rej_uniform_native_aarch64 ✅ 2s 3s -33%
shake128_absorb ✅ 2s 1s +100%
shake128_squeeze ✅ 2s 1s +100%
shake128x4_absorb_once ✅ 2s 3s -33%
shake256_absorb ✅ 2s 2s +0%
shake256_release ✅ 2s 1s +100%
sig_unpack_hints ✅ 2s 2s +0%
sign_verify_extmu ✅ 2s 3s -33%
sk_s1hat_get_poly ✅ 2s 2s +0%
sys_check_capability ✅ 2s 2s +0%
unpack_sk_s2hat ✅ 2s 3s -33%
keccak_f1600_x4_native_aarch64_v84a ✅ 1s 1s +0%
keccakf1600_extract_bytes (big endian) ✅ 1s 4s -75%
mld_ct_abs_i32 ✅ 1s 1s +0%
poly_chknorm_native_aarch64 ✅ 1s 3s -67%
poly_pointwise_montgomery_native ✅ 1s 4s -75%
rej_eta ✅ 1s 2s -50%
use_hint ✅ 1s 2s -50%

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-87)

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 2462s 2584s -4.7%
polyvecl_pointwise_acc_montgomery_c ✅ 313s 367s -15%
mld_invntt_layer ✅ 305s 321s -5%
polyvec_matrix_expand ✅ 226s 244s -7%
rej_uniform_native ✅ 153s 160s -4%
mld_attempt_signature_generation ✅ 111s 107s +4%
poly_pointwise_montgomery_c ✅ 104s 112s -7%
mld_ct_memcmp ✅ 73s 73s +0%
sign_signature_internal ✅ 67s 66s +2%
sign_verify_internal ✅ 60s 64s -6%
polyvec_matrix_expand_serial ✅ 48s 50s -4%
mld_ntt_layer ✅ 45s 45s +0%
fqmul ✅ 41s 45s -9%
compute_pack_t0_t1 ✅ 33s 32s +3%
polyvec_matrix_pointwise_montgomery_yvec ✅ 30s 32s -6%
mld_ntt_butterfly_block ✅ 24s 22s +9%
keccakf1600x4_permute_native ✅ 22s 22s +0%
rej_uniform ✅ 21s 23s -9%
poly_chknorm_c ✅ 20s 19s +5%
polyeta_unpack ✅ 16s 17s -6%
polyt0_unpack ✅ 16s 17s -6%
mld_check_pct ✅ 15s 16s -6%
rej_uniform_c ✅ 13s 15s -13%
poly_add ✅ 12s 13s -8%
poly_uniform_eta_4x ✅ 11s 13s -15%
poly_uniform_4x ✅ 10s 13s -23%
polyveck_ntt ✅ 10s 7s +43%
mld_compute_pack_z ✅ 9s 8s +12%
poly_invntt_tomont_c ✅ 9s 9s +0%
polyveck_invntt_tomont ✅ 9s 10s -10%
polyvecl_ntt ✅ 9s 9s +0%
sign ✅ 9s 6s +50%
keccak_absorb_once_x4 ✅ 8s 12s -33%
mld_keccakf1600_permute_c ✅ 8s 7s +14%
pointwise_acc_native_aarch64 ✅ 8s 8s +0%
pointwise_acc_native_x86_64 ✅ 8s 8s +0%
polyveck_decompose ✅ 8s 9s -11%
mld_sample_s1_s2 ✅ 7s 6s +17%
poly_decompose_c ✅ 7s 7s +0%
sign_keypair_internal ✅ 7s 8s -12%
sign_pk_from_sk ✅ 7s 7s +0%
keccak_absorb ✅ 6s 6s +0%
mld_ct_cmask_nonzero_u32 ✅ 6s 3s +100%
mld_h ✅ 6s 4s +50%
ntt_native_aarch64 ✅ 6s 2s +200%
poly_caddq_c ✅ 6s 6s +0%
poly_power2round ✅ 6s 6s +0%
poly_uniform_gamma1 ✅ 6s 3s +100%
poly_uniform_gamma1_4x ✅ 6s 3s +100%
polyveck_caddq ✅ 6s 6s +0%
polyveck_pack_w1 ✅ 6s 5s +20%
sign_signature_extmu ✅ 6s 5s +20%
unpack_sk_t0hat ✅ 6s 8s -25%
yvec_get_poly ✅ 6s 1s +500%
caddq ✅ 5s 3s +67%
keccakf1600_xor_bytes (big endian) ✅ 5s 2s +150%
mld_prepare_domain_separation_prefix ✅ 5s 5s +0%
mld_sample_s1_s2_serial ✅ 5s 7s -29%
pack_sk_rho_key_tr_s2 ✅ 5s 5s +0%
poly_challenge ✅ 5s 6s -17%
poly_ntt_c ✅ 5s 3s +67%
polyveck_chknorm ✅ 5s 4s +25%
polyveck_pack_eta ✅ 5s 4s +25%
polyveck_reduce ✅ 5s 6s -17%
polyvecl_chknorm ✅ 5s 5s +0%
power2round ✅ 5s 4s +25%
reduce32 ✅ 5s 3s +67%
rej_eta ✅ 5s 5s +0%
rej_eta_native ✅ 5s 5s +0%
sign_open ✅ 5s 3s +67%
sign_signature ✅ 5s 3s +67%
sign_signature_pre_hash_internal ✅ 5s 4s +25%
sign_verify_extmu ✅ 5s 3s +67%
sign_verify_pre_hash_shake256 ✅ 5s 3s +67%
unpack_sk ✅ 5s 4s +25%
intt_native_x86_64 ✅ 4s 5s -20%
keccak_squeeze ✅ 4s 2s +100%
keccak_squeezeblocks_x4 ✅ 4s 4s +0%
keccakf1600_xor_bytes ✅ 4s 2s +100%
keccakf1600x4_extract_bytes_native ✅ 4s 3s +33%
mld_ct_get_optblocker_u32 ✅ 4s 3s +33%
mld_ct_get_optblocker_u8 ✅ 4s 1s +300%
ntt_native_x86_64 ✅ 4s 2s +100%
pack_sig_c ✅ 4s 2s +100%
poly_caddq_native ✅ 4s 2s +100%
poly_caddq_native_aarch64 ✅ 4s 4s +0%
poly_chknorm_native_aarch64 ✅ 4s 7s -43%
poly_decompose ✅ 4s 4s +0%
poly_decompose_32_native_aarch64 ✅ 4s 2s +100%
poly_pointwise_montgomery ✅ 4s 5s -20%
poly_reduce ✅ 4s 1s +300%
poly_uniform_eta ✅ 4s 5s -20%
poly_use_hint_native_aarch64 ✅ 4s 3s +33%
polyt0_pack ✅ 4s 5s -20%
polyt1_pack ✅ 4s 2s +100%
polyvecl_pack_eta ✅ 4s 4s +0%
polyvecl_pointwise_acc_montgomery_native ✅ 4s 2s +100%
polyvecl_uniform_gamma1 ✅ 4s 4s +0%
polyvecl_unpack_eta ✅ 4s 4s +0%
polyw1_pack ✅ 4s 3s +33%
polyw1_pack_32 ✅ 4s 3s +33%
polyz_unpack_c ✅ 4s 5s -20%
rej_uniform_eta_native_aarch64 ✅ 4s 5s -20%
shake128_finalize ✅ 4s 2s +100%
shake256_finalize ✅ 4s 2s +100%
shake256x4_squeezeblocks ✅ 4s 2s +100%
sign_keypair ✅ 4s 4s +0%
sign_signature_pre_hash_shake256 ✅ 4s 4s +0%
sign_verify ✅ 4s 5s -20%
sign_verify_pre_hash_internal ✅ 4s 6s -33%
unpack_pk_t1 ✅ 4s 3s +33%
unpack_sk_s1hat ✅ 4s 3s +33%
yvec_init ✅ 4s 3s +33%
intt_native_aarch64 ✅ 3s 3s +0%
keccakf1600_permute_native ✅ 3s 2s +50%
mld_ct_abs_i32 ✅ 3s 2s +50%
mld_value_barrier_i64 ✅ 3s 2s +50%
montgomery_reduce ✅ 3s 4s -25%
pack_sig_z ✅ 3s 1s +200%
pack_sk_s1 ✅ 3s 3s +0%
pointwise_native_aarch64 ✅ 3s 3s +0%
pointwise_native_x86_64 ✅ 3s 3s +0%
poly_caddq_native_x86_64 ✅ 3s 3s +0%
poly_chknorm ✅ 3s 3s +0%
poly_decompose_88_native_aarch64 ✅ 3s 2s +50%
poly_invntt_tomont ✅ 3s 2s +50%
poly_ntt ✅ 3s 6s -50%
poly_ntt_native ✅ 3s 4s -25%
poly_uniform ✅ 3s 3s +0%
poly_use_hint ✅ 3s 2s +50%
poly_use_hint_c ✅ 3s 2s +50%
polyeta_pack ✅ 3s 2s +50%
polyt1_unpack ✅ 3s 2s +50%
polyveck_unpack_eta ✅ 3s 3s +0%
polyvecl_pointwise_acc_montgomery ✅ 3s 4s -25%
polyvecl_uniform_gamma1_serial ✅ 3s 2s +50%
polyvecl_unpack_z ✅ 3s 4s -25%
polyz_pack ✅ 3s 1s +200%
polyz_unpack_17_native_aarch64 ✅ 3s 4s -25%
polyz_unpack_19_native_aarch64 ✅ 3s 4s -25%
polyz_unpack_native_x86_64 ✅ 3s 5s -40%
rej_eta_c ✅ 3s 3s +0%
rej_uniform_native_aarch64 ✅ 3s 3s +0%
shake128_absorb ✅ 3s 1s +200%
shake128_release ✅ 3s 3s +0%
shake128x4_squeezeblocks ✅ 3s 1s +200%
shake256_init ✅ 3s 4s -25%
shake256_release ✅ 3s 6s -50%
sig_unpack_hints ✅ 3s 6s -50%
sk_s1hat_get_poly ✅ 3s 2s +50%
sys_check_capability ✅ 3s 3s +0%
unpack_sk_s2hat ✅ 3s 5s -40%
fqscale ✅ 2s 5s -60%
keccak_f1600_x1_native_aarch64 ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64_v84a ✅ 2s 4s -50%
keccak_f1600_x4_native_avx2 ✅ 2s 4s -50%
keccak_finalize ✅ 2s 2s +0%
keccak_init ✅ 2s 3s -33%
keccakf1600_extract_bytes (big endian) ✅ 2s 1s +100%
keccakf1600_permute ✅ 2s 3s -33%
keccakf1600x4_extract_bytes ✅ 2s 2s +0%
keccakf1600x4_permute ✅ 2s 3s -33%
keccakf1600x4_xor_bytes ✅ 2s 4s -50%
keccakf1600x4_xor_bytes_native ✅ 2s 3s -33%
make_hint ✅ 2s 4s -50%
mld_ct_cmask_neg_i32 ✅ 2s 4s -50%
mld_ct_cmask_nonzero_u8 ✅ 2s 4s -50%
mld_ct_get_optblocker_i64 ✅ 2s 4s -50%
mld_keccakf1600x4_extract_bytes_c ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c ✅ 2s 1s +100%
mld_polymat_expand_entry ✅ 2s 4s -50%
mld_value_barrier_u32 ✅ 2s 4s -50%
mld_value_barrier_u8 ✅ 2s 2s +0%
nttunpack_native_x86_64 ✅ 2s 3s -33%
pack_sig_h ✅ 2s 3s -33%
poly_chknorm_native ✅ 2s 4s -50%
poly_chknorm_native_x86_64 ✅ 2s 4s -50%
poly_decompose_native ✅ 2s 3s -33%
poly_invntt_tomont_native ✅ 2s 5s -60%
poly_permute_bitrev_to_custom_optional ✅ 2s 2s +0%
poly_permute_bitrev_to_custom_optional_native ✅ 2s 4s -50%
poly_pointwise_montgomery_native ✅ 2s 4s -50%
poly_shiftl ✅ 2s 3s -33%
poly_sub ✅ 2s 3s -33%
poly_use_hint_native ✅ 2s 4s -50%
polyvec_matrix_pointwise_montgomery_row ✅ 2s 4s -50%
polyw1_pack_88 ✅ 2s 3s -33%
polyz_unpack ✅ 2s 3s -33%
polyz_unpack_native ✅ 2s 4s -50%
shake128_squeeze ✅ 2s 4s -50%
shake128x4_absorb_once ✅ 2s 4s -50%
shake256 ✅ 2s 2s +0%
shake256_absorb ✅ 2s 3s -33%
shake256_squeeze ✅ 2s 2s +0%
sk_s2hat_get_poly ✅ 2s 3s -33%
sk_t0hat_get_poly ✅ 2s 2s +0%
decompose ✅ 1s 2s -50%
keccak_f1600_x4_native_aarch64_v84a ✅ 1s 1s +0%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 1s 4s -75%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 1s 1s +0%
mld_ct_sel_int32 ✅ 1s 2s -50%
mld_keccakf1600_extract_bytes ✅ 1s 3s -67%
poly_caddq ✅ 1s 3s -67%
shake128_init ✅ 1s 2s -50%
shake256x4_absorb_once ✅ 1s 2s -50%
use_hint ✅ 1s 3s -67%

@oqs-bot

oqs-bot commented Jun 26, 2026 •

Copy link
Copy Markdown
Contributor

CBMC Results (ML-DSA-65)

Full Results (205 proofs)
Proof Status Current Previous Change
**TOTAL** ✅ 2019s 2203s -8.4%
mld_invntt_layer ✅ 266s 319s -17%
polyvecl_pointwise_acc_montgomery_c ✅ 187s 238s -21%
rej_uniform_native ✅ 144s 159s -9%
polyvec_matrix_expand ✅ 130s 140s -7%
poly_pointwise_montgomery_c ✅ 97s 112s -13%
mld_ct_memcmp ✅ 66s 75s -12%
mld_attempt_signature_generation ✅ 65s 68s -4%
sign_verify_internal ✅ 65s 67s -3%
sign_signature_internal ✅ 46s 48s -4%
mld_ntt_layer ✅ 44s 46s -4%
fqmul ✅ 38s 47s -19%
polyvec_matrix_expand_serial ✅ 25s 27s -7%
rej_uniform ✅ 24s 22s +9%
keccakf1600x4_permute_native ✅ 23s 23s +0%
mld_ntt_butterfly_block ✅ 22s 23s -4%
poly_chknorm_c ✅ 18s 22s -18%
polyvecl_chknorm ✅ 17s 15s +13%
mld_check_pct ✅ 16s 18s -11%
polyt0_unpack ✅ 16s 17s -6%
compute_pack_t0_t1 ✅ 15s 17s -12%
rej_uniform_c ✅ 15s 15s +0%
polyveck_decompose ✅ 14s 15s -7%
poly_uniform_4x ✅ 12s 10s +20%
poly_uniform_eta_4x ✅ 11s 12s -8%
polyveck_chknorm ✅ 11s 12s -8%
polyvecl_ntt ✅ 11s 7s +57%
keccak_absorb_once_x4 ✅ 10s 9s +11%
poly_add ✅ 9s 11s -18%
poly_invntt_tomont_c ✅ 9s 9s +0%
polyveck_ntt ✅ 9s 7s +29%
keccak_absorb ✅ 8s 7s +14%
polyveck_invntt_tomont ✅ 8s 8s +0%
sign ✅ 8s 8s +0%
mld_compute_pack_z ✅ 7s 8s -12%
mld_keccakf1600_permute_c ✅ 7s 7s +0%
mld_sample_s1_s2 ✅ 7s 6s +17%
polyvec_matrix_pointwise_montgomery_yvec ✅ 7s 8s -12%
polyveck_caddq ✅ 7s 7s +0%
polyz_unpack_19_native_aarch64 ✅ 7s 2s +250%
sign_verify ✅ 7s 5s +40%
pointwise_acc_native_aarch64 ✅ 6s 6s +0%
polyvecl_pack_eta ✅ 6s 2s +200%
polyz_unpack_c ✅ 6s 7s -14%
sign_open ✅ 6s 5s +20%
intt_native_aarch64 ✅ 5s 5s +0%
intt_native_x86_64 ✅ 5s 3s +67%
keccakf1600_permute ✅ 5s 2s +150%
mld_prepare_domain_separation_prefix ✅ 5s 3s +67%
ntt_native_aarch64 ✅ 5s 3s +67%
pointwise_acc_native_x86_64 ✅ 5s 7s -29%
poly_caddq_c ✅ 5s 5s +0%
poly_ntt_native ✅ 5s 1s +400%
poly_pointwise_montgomery_native ✅ 5s 3s +67%
poly_uniform_gamma1_4x ✅ 5s 4s +25%
polyveck_unpack_eta ✅ 5s 3s +67%
polyvecl_uniform_gamma1_serial ✅ 5s 3s +67%
rej_uniform_native_aarch64 ✅ 5s 2s +150%
shake128_init ✅ 5s 3s +67%
sign_pk_from_sk ✅ 5s 6s -17%
unpack_sk ✅ 5s 3s +67%
unpack_sk_t0hat ✅ 5s 5s +0%
fqscale ✅ 4s 2s +100%
keccak_f1600_x1_native_aarch64_v84a ✅ 4s 3s +33%
keccak_f1600_x4_native_aarch64_v84a ✅ 4s 2s +100%
keccak_f1600_x4_native_aarch64_v8a_v84a_scalar_hybrid ✅ 4s 2s +100%
keccak_squeezeblocks_x4 ✅ 4s 5s -20%
keccakf1600_extract_bytes (big endian) ✅ 4s 2s +100%
mld_ct_cmask_nonzero_u32 ✅ 4s 2s +100%
mld_ct_cmask_nonzero_u8 ✅ 4s 2s +100%
mld_sample_s1_s2_serial ✅ 4s 8s -50%
pack_sig_c ✅ 4s 2s +100%
pack_sk_rho_key_tr_s2 ✅ 4s 4s +0%
poly_caddq_native ✅ 4s 2s +100%
poly_challenge ✅ 4s 4s +0%
poly_chknorm_native ✅ 4s 6s -33%
poly_decompose_32_native_aarch64 ✅ 4s 4s +0%
poly_invntt_tomont_native ✅ 4s 4s +0%
poly_power2round ✅ 4s 5s -20%
poly_shiftl ✅ 4s 4s +0%
poly_uniform_gamma1 ✅ 4s 4s +0%
poly_use_hint_c ✅ 4s 4s +0%
polyvec_matrix_pointwise_montgomery_row ✅ 4s 2s +100%
polyvecl_pointwise_acc_montgomery_native ✅ 4s 3s +33%
polyvecl_unpack_z ✅ 4s 3s +33%
polyz_unpack_native ✅ 4s 5s -20%
reduce32 ✅ 4s 3s +33%
rej_eta_c ✅ 4s 4s +0%
rej_uniform_eta_native_aarch64 ✅ 4s 5s -20%
shake128_release ✅ 4s 3s +33%
sign_signature ✅ 4s 5s -20%
sign_signature_pre_hash_internal ✅ 4s 5s -20%
sign_signature_pre_hash_shake256 ✅ 4s 4s +0%
sign_verify_extmu ✅ 4s 4s +0%
sign_verify_pre_hash_shake256 ✅ 4s 2s +100%
sk_s1hat_get_poly ✅ 4s 3s +33%
unpack_sk_s1hat ✅ 4s 3s +33%
use_hint ✅ 4s 2s +100%
keccak_init ✅ 3s 2s +50%
keccak_squeeze ✅ 3s 2s +50%
keccakf1600_xor_bytes ✅ 3s 4s -25%
keccakf1600_xor_bytes (big endian) ✅ 3s 2s +50%
keccakf1600x4_extract_bytes ✅ 3s 2s +50%
keccakf1600x4_extract_bytes_native ✅ 3s 1s +200%
keccakf1600x4_xor_bytes_native ✅ 3s 1s +200%
make_hint ✅ 3s 4s -25%
mld_ct_sel_int32 ✅ 3s 2s +50%
mld_value_barrier_i64 ✅ 3s 5s -40%
montgomery_reduce ✅ 3s 3s +0%
nttunpack_native_x86_64 ✅ 3s 2s +50%
pack_sig_h ✅ 3s 4s -25%
pack_sk_s1 ✅ 3s 2s +50%
pointwise_native_aarch64 ✅ 3s 3s +0%
pointwise_native_x86_64 ✅ 3s 5s -40%
poly_caddq_native_aarch64 ✅ 3s 3s +0%
poly_caddq_native_x86_64 ✅ 3s 3s +0%
poly_chknorm_native_aarch64 ✅ 3s 3s +0%
poly_chknorm_native_x86_64 ✅ 3s 2s +50%
poly_decompose ✅ 3s 2s +50%
poly_permute_bitrev_to_custom_optional ✅ 3s 3s +0%
poly_permute_bitrev_to_custom_optional_native ✅ 3s 4s -25%
poly_pointwise_montgomery ✅ 3s 3s +0%
poly_sub ✅ 3s 3s +0%
poly_uniform ✅ 3s 4s -25%
poly_uniform_eta ✅ 3s 5s -40%
poly_use_hint ✅ 3s 2s +50%
poly_use_hint_native ✅ 3s 3s +0%
polyveck_pack_w1 ✅ 3s 2s +50%
polyvecl_pointwise_acc_montgomery ✅ 3s 4s -25%
polyw1_pack ✅ 3s 4s -25%
polyw1_pack_32 ✅ 3s 7s -57%
polyz_pack ✅ 3s 2s +50%
polyz_unpack ✅ 3s 4s -25%
polyz_unpack_native_x86_64 ✅ 3s 3s +0%
power2round ✅ 3s 2s +50%
rej_eta_native ✅ 3s 4s -25%
shake128_absorb ✅ 3s 3s +0%
shake128x4_absorb_once ✅ 3s 2s +50%
shake256_absorb ✅ 3s 2s +50%
shake256_squeeze ✅ 3s 3s +0%
sig_unpack_hints ✅ 3s 2s +50%
sign_keypair_internal ✅ 3s 4s -25%
sk_s2hat_get_poly ✅ 3s 4s -25%
sk_t0hat_get_poly ✅ 3s 3s +0%
sys_check_capability ✅ 3s 4s -25%
unpack_pk_t1 ✅ 3s 2s +50%
unpack_sk_s2hat ✅ 3s 1s +200%
yvec_get_poly ✅ 3s 2s +50%
decompose ✅ 2s 2s +0%
keccak_f1600_x1_native_aarch64 ✅ 2s 4s -50%
keccak_f1600_x4_native_aarch64_v8a_scalar_hybrid ✅ 2s 5s -60%
keccak_f1600_x4_native_avx2 ✅ 2s 2s +0%
keccak_finalize ✅ 2s 2s +0%
keccakf1600_permute_native ✅ 2s 1s +100%
keccakf1600x4_permute ✅ 2s 1s +100%
keccakf1600x4_xor_bytes ✅ 2s 3s -33%
mld_ct_cmask_neg_i32 ✅ 2s 1s +100%
mld_ct_get_optblocker_i64 ✅ 2s 3s -33%
mld_ct_get_optblocker_u32 ✅ 2s 2s +0%
mld_ct_get_optblocker_u8 ✅ 2s 1s +100%
mld_h ✅ 2s 5s -60%
mld_keccakf1600_extract_bytes ✅ 2s 2s +0%
mld_keccakf1600x4_xor_bytes_c ✅ 2s 4s -50%
mld_value_barrier_u32 ✅ 2s 2s +0%
mld_value_barrier_u8 ✅ 2s 3s -33%
ntt_native_x86_64 ✅ 2s 4s -50%
pack_sig_z ✅ 2s 4s -50%
poly_caddq ✅ 2s 2s +0%
poly_chknorm ✅ 2s 4s -50%
poly_decompose_88_native_aarch64 ✅ 2s 4s -50%
poly_decompose_c ✅ 2s 3s -33%
poly_decompose_native ✅ 2s 1s +100%
poly_invntt_tomont ✅ 2s 1s +100%
poly_ntt ✅ 2s 3s -33%
poly_ntt_c ✅ 2s 3s -33%
poly_reduce ✅ 2s 2s +0%
poly_use_hint_native_aarch64 ✅ 2s 3s -33%
polyeta_pack ✅ 2s 3s -33%
polyeta_unpack ✅ 2s 3s -33%
polyt1_pack ✅ 2s 3s -33%
polyt1_unpack ✅ 2s 3s -33%
polyveck_pack_eta ✅ 2s 2s +0%
polyveck_reduce ✅ 2s 4s -50%
polyvecl_uniform_gamma1 ✅ 2s 6s -67%
polyvecl_unpack_eta ✅ 2s 5s -60%
polyw1_pack_88 ✅ 2s 2s +0%
polyz_unpack_17_native_aarch64 ✅ 2s 2s +0%
shake128_squeeze ✅ 2s 2s +0%
shake128x4_squeezeblocks ✅ 2s 3s -33%
shake256 ✅ 2s 2s +0%
shake256_finalize ✅ 2s 3s -33%
shake256_init ✅ 2s 2s +0%
shake256_release ✅ 2s 2s +0%
shake256x4_absorb_once ✅ 2s 2s +0%
shake256x4_squeezeblocks ✅ 2s 2s +0%
sign_keypair ✅ 2s 4s -50%
sign_signature_extmu ✅ 2s 5s -60%
sign_verify_pre_hash_internal ✅ 2s 4s -50%
caddq ✅ 1s 4s -75%
mld_ct_abs_i32 ✅ 1s 2s -50%
mld_keccakf1600x4_extract_bytes_c ✅ 1s 2s -50%
mld_polymat_expand_entry ✅ 1s 3s -67%
polyt0_pack ✅ 1s 4s -75%
rej_eta ✅ 1s 6s -83%
shake128_finalize ✅ 1s 4s -75%
yvec_init ✅ 1s 5s -80%

The macos-latest label has migrated to the macOS 26 (Tahoe) arm64 image,
whose default-toolchain ASan runtime (nixpkgs clang 21.x) deadlocks at
process startup: compiler-rt's shadow-memory init re-enters the
uninitialized allocator. This made the AArch64 FIPS202 backend_tests job
hang until the 6h job timeout, intermittently, depending on which image a
matrix leg landed on. Same symptom as python/cpython#145199.

The fix landed upstream in LLVM >= 22 (llvm/llvm-project#191039, backported
as #192082). Point the macOS sanitizer job at the existing 'clang22' dev
shell so it builds with clang 22 and can run on macos-latest again.

Signed-off-by: Hanno Becker <beckphan@amazon.co.uk>
@hanno-becker
hanno-becker force-pushed the ci-pin-fips202-macos15 branch from 32bad12 to 6d262bb Compare June 26, 2026 04:35
@hanno-becker hanno-becker changed the title CI: Pin AArch64 FIPS202 backend tests to macos-15 CI: Build macOS FIPS202 sanitizer tests with clang 22 Jun 26, 2026
@mkannwischer
mkannwischer marked this pull request as ready for review June 26, 2026 05:30
@mkannwischer
mkannwischer requested a review from a team as a code owner June 26, 2026 05:30
@mkannwischer
mkannwischer merged commit 16d4868 into main Jun 26, 2026
378 checks passed
@mkannwischer
mkannwischer deleted the ci-pin-fips202-macos15 branch June 26, 2026 05:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants