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
Nightly (`--features nightly-simd`) now realizes the whole facade, not just
the mask family: `simd_nightly/w1a_types.rs` adds I8x16 (from_i4_packed_u64
sign-extends 0x8 -> -8, saturating_abs(i8::MIN) == i8::MAX), U16x8 +
gather_u16, U8x8, palette_lookup_u8x8, prefetch_read_t0/1/2 (documented
no-ops) and batch_packed_i4_16, re-exported through simd_nightly and the
nightly arm of simd.rs. The five W1a tests in simd_int_ops run on nightly
instead of being cfg-gated away. Lib test target and clippy are clean on
nightly (192 focused tests + 12 W1a).
Codegen witness (examples/ternlog_codegen_probe.rs, [profile.ci-codegen],
scripts/codegen-witness.sh, .cargo/config-v4.toml): a tiny opt-level-3
example whose symbols are checked for the instruction each arm must select.
Running it found that the CARGO_TARGET_<triple>_RUSTFLAGS recipe loses to
.cargo/config.toml's cfg-keyed x86-64-v3 (cargo joins both, last
-Ctarget-cpu wins; measured with cargo -v), so the tier4-avx512-check CI
job had been checking the AVX2 arm. Fixed to `--config .cargo/config-v4.toml`
and the job now asserts vpternlog is emitted. Witness PASS on avx2 (v3),
avx512 (v4, 1/1/6 vpternlog) and neon (cross, asm-only; the aarch64 build
exposed a missing U32x16::reduce_sum on the NEON and wasm backends, added).
Slice-level probes allow bounded loop-control GPR ops (cap 12, measured 9/6).
crates/simd-masking-parity: ONE parity program over the shipped facade
(all 256 ternlog tables x2 widths, U64x8 algebra, I32x16 compares,
every predicate->mask at rows 0/1/63/64/65/130 with the zero-tail and
full-overwrite contract, mask algebra + in-place forms + any/all on tails,
care-match contiguous and strided, masked sum/min/max, strided group sum,
blend). rlib + cdylib + bin; green natively (v3) and under node with and
without +simd128 (the scalar realization).
CodeRabbit round 2: the 13 mask functions that were public as
ndarray::simd_int_ops::<f> on master are re-exported from simd_int_ops
(verified complete against master's pub fn list); Group F block no longer
splits the oracle README table; a == a comparisons replaced in both parity
harnesses; neon-asm-rung3.sh fails on a build error instead of grading
stale assembly; the U32x16 ternlog doc paragraph sits on the test it
describes.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01X6y3drwKSE2zSgoexheLFX
0 commit comments