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
1.**Implement on the backing type in `simd_avx512.rs`** (the only live file on x86-64-v4). NEON impl goes in `simd_neon.rs`. Scalar fallback in the `scalar` module inside `simd.rs`.
50
79
2.**Edge-case semantics documented** in doc-comment (`i8::MIN`, empty slices, OOB indices).
51
-
3.**Parity test**: all backends produce identical output on randomized corpus including edge cases.
80
+
3.**Parity test**: all cfg-routed backends produce identical output on randomized corpus including edge cases.
52
81
4.**Bench against scalar**: record AVX-512/NEON speedup ratios in PR body.
53
82
5.**`// SAFETY:` on every `unsafe` block**.
54
-
6.**No new `is_x86_feature_detected!`** outside `simd_caps.rs`.
55
-
7.**Consumer site cited** in PR description.
83
+
6.**No `is_x86_feature_detected!` anywhere** — dispatch is at `cfg(target_feature)` in `simd.rs` re-exports, not per-call runtime checks.
84
+
7.**No `#[target_feature(enable = ...)]` on functions** — the cargo target-cpu pin handles this globally.
| W2.2 |**Per-arch impl macro** (`simd_impl!`) | R3.2 | 4h |Generates the struct + methods for a type in both simd_avx512.rs and simd_neon.rs from one body. |
|`prefetch_read_t0/t1/t2`|`bgz17/prefetch.rs` tile prefetch |**W6.2 k0_columnar_simd** — prefetch next column chunk during K0 scan |
338
387
|`U64x8::popcnt` + `xor_popcount`|`holograph/hamming.rs` + `blasgraph/types.rs`|**W6.2-W6.5 entire SoA cascade** — columnar XOR+popcount is THE operation |
339
388
@@ -351,12 +400,11 @@ slices, losing the typed-wrapper discipline and duplicating dispatch logic.
351
400
|`I8x16::from_i4_packed_u64()` for qualia |**Wave 1.1** (SIMD primitives) |
352
401
|`prefetch_read_t0()` for column prefetch |**Wave 1.4** (SIMD primitives) |
@@ -437,5 +485,7 @@ that applies recursively across the entire surface:
437
485
4.**Don't couple SoA with module restructure** — they're independent; merge separately
438
486
5.**Don't break downstream in one shot** — deprecation shims for one release minimum
439
487
6.**Don't ship W1a primitives without parity tests** — the codex P2 i8::MIN divergence on PR #398 happened because no such test existed
440
-
7.**Don't add`is_x86_feature_detected!`outside simd_caps.rs** — dispatch through the singleton
488
+
7.**Don't use`is_x86_feature_detected!`or `#[target_feature(enable=...)]`** — cfg(target_feature) at the re-export level handles dispatch; per-function annotations and per-call runtime checks are wrong
9.**Don't add methods to simd_avx2.rs for AVX-512 targets** — it's dead code on x86-64-v4, never reached via cfg routing
491
+
10.**Don't use rayon work-stealing** if the type-system integration (Wave 3-4) is the global lever — typed SIMD dispatch across the full surface eliminates the slicing problem that rayon would paper over
0 commit comments