You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor: share comparison-predicate selection across int libfuncs (#1627)
`int_range_try_new`, `int_range_pop_front`, and `bounded_int_constrain`
each picked between signed/unsigned cmpi predicates with near-identical
inline logic. Lift it into a `compare_predicate` helper on
`src/libfuncs.rs` that takes the operand's `CoreTypeConcrete`, the
registry, and the (signed, unsigned) predicate pair, and routes to
whichever variant matches the stored representation: `i8..i128` is
two's complement, while `u*` and `BoundedInt<L, U>` are stored as
non-negative integers (the latter biased to start at zero regardless
of `L`'s sign).
Adds a VM-equivalence test (`int_range_try_new_bounded_int_negative_lower_vm_equivalence`)
over `BoundedInt<-10, 10>` covering 7 input pairs around the 5-bit MSB
threshold.
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments