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
Identical in builds before and after #403 — not a regression, just the remaining chapter of the same story.
Notes
The fix(arith): keep integer div exact and UB-free #403 pattern transfers directly: an i64_span_dbl_exact (±2^53) gate keeping the vectorized double loop for the common case, an exact int64 kernel otherwise. For +/-/* the exact kernel needs overflow handling consistent with the atoms' existing convention (check what scalar + does at INT64_MAX today and match it).
When picking this up, also fold in the gate-scan cost lesson from fix(arith): keep integer div exact and UB-free #403's review: don't scan broadcast scalars per element, scan vector operands through typed pointers, fuse the operand passes.
Summary
#403 made integer
divexact above 2^53, but the sibling ops in the samebinary_rangeI64 arm still compute through double and round:Identical in builds before and after #403 — not a regression, just the remaining chapter of the same story.
Notes
i64_span_dbl_exact(±2^53) gate keeping the vectorized double loop for the common case, an exact int64 kernel otherwise. For+/-/*the exact kernel needs overflow handling consistent with the atoms' existing convention (check what scalar+does at INT64_MAX today and match it).