Latest Results
Trim constant-operand cases from scalar function benchmarks (#9696)
## Summary
- Tracking Issue: #9128
The scalar function benchmarks carried 37 cases with a constant operand,
34 of them tagged `#[cpu_features]` and so measured on three walltime
legs each. Decoding a constant operand, orienting it, and carrying its
validity are shared across operators, element types, and output modes,
so most of those cases measure the same path again and crowd out the
per-row against per-row shape the kernels are tuned for.
Or in other words, just reduces the # of constant benchmarks we have.
Ideally we would keep this, but because they are so noisy we might as
well just remove them.
## Changes
Keeps 10 constant cases as a regression guard on that path, 8 of them
tagged, and makes per-row against per-row the default shape everywhere
else.
Signed-off-by: Claude <noreply@anthropic.com>
Co-authored-by: Claude <noreply@anthropic.com> Trim constant-operand cases from scalar function benchmarks
The scalar function benchmarks had grown 37 cases with a constant
operand, 34 of them tagged `#[cpu_features]` and so measured on three
walltime legs each. Constant decoding, orientation, and validity are
shared code: repeating them per operator, per element type, and per
output mode measures the same path over and over, and buries the
per-row-against-per-row shape the kernels are actually tuned for.
Keep 10 constant cases as a regression guard on that path, 8 of them
tagged, and make per-row against per-row the default shape everywhere
else.
`binary_ops.rs`: the shape matrix keeps only per-row against per-row at
both lengths for `Add`, `Sub`, and `Mul`; the three constant
orientations move to `add_constant_shapes`, measured on `Add` at the
long length. Drops `add_i64_constant`, `sub_i64_constant`,
`mul_i32_constant`, `eq_i64_constant`, and `or_bool_constant`, which the
shape matrix, `compare.rs`, and `kleene_bool.rs` already cover.
`row_fn_output.rs`: the type- and mode-parameterized benchmarks run per
row against per row. Constant orientations stay on `i64` alone, through
one infallible and one deferred benchmark, since those two differ in how
a constant row reaches the kernel.
`compare.rs`: drops `compare_int_constant_left`; constant orientation is
measured once, in `binary_ops.rs`. The boolean, integer, and string
constant cases stay.
The surviving benchmarks keep their names and argument tuples, so their
CodSpeed history carries over.
Claude-Session: https://claude.ai/code/session_018ZZdeECH63oCykatmXY4if
Signed-off-by: Claude <noreply@anthropic.com>ct/trim-constant-operand-benchmarks Latest Branches
-4%
ct/primitive-comparison-simd +8%
ct/row-fn-canonical-validity -9%
wm/fastlanes-list-contains © 2026 CodSpeed Technology