Support and compatibility
The current registry implements 97 semantic operations and 404 type signatures. The generated matrix is the complete source for IDs, signatures and backend cells. This page explains how to interpret it.
Count operations and signatures separately
An operation such as add counts once across dtypes, broadcast, out, arenas and Workers. Mask logic (mask.and) and integer bitwise logic (bitAnd) are separate semantics. Conversion is one operation, with each directed type pair counted as a signature. Fusion and asynchronous execution do not add operations.
| Signature group | Implemented |
|---|---|
| f32 | 73 |
| f64 | 73 |
| i8/i16/i32 | 37 each |
| u8/u16/u32 | 35 each |
| mask | 6 |
| Directed conversions | 36 |
| Total | 404 |
Integer types do not expose floating division, sum/dot, scans or advanced math. There are no i64/u64 or mask/u8 conversion signatures. See the numerical contracts for exact semantics.
Read backend states
| Mark | Meaning |
|---|---|
| P | Planned and not callable |
| I | Implemented, without complete execution evidence for that target |
| V | Executed successfully within the scope recorded in the registry |
| F | Callable through scalar fallback; not explicit SIMD coverage |
Native scalar and Wasm scalar each have 404 V entries. Each SIMD backend has 17 explicit f32 signatures and 387 scalar fallbacks. NEON and SIMD128 have local V evidence for those 17; AVX2 remains I. Verification on macOS arm64/Node does not certify other native platforms or every browser's numerical behavior.
Explicit f32 vector kernels cover add/sub/mul/div/abs/min/max/clamp and neg/square/sqrt/reciprocal/copysign/floor/ceil/trunc/roundEven. Short inputs and tails may still execute scalar code. Compiler auto-vectorization is not counted as an explicit kernel.
Query the running engine
engine.getCapability('add')
// Example on a NEON engine:
// { execution: 'simd', kernel: 'neon', fallback: false }
engine.getCapability('add', 'f64')
// { execution: 'scalar', kernel: 'scalar', fallback: true }
engine.getCapability('convert', 'i32', 'u8')engine.info.kernel describes engine selection. execution for an individual signature is simd, scalar or unsupported. simd: 'required' does not require every operation to be vectorized. See backend selection.
Pipelines support a bounded set of 68 signatures from ten operations. Workers execute those plans, rather than wrapping every operation asynchronously. See the pipeline and Worker contracts.
Evidence scope
pnpm check:support audits 2,020 backend cells, verifies implementation and historical evidence paths, and exercises each signature through ordinary/resident calls on available local modes. This differential smoke does not replace the independent numerical, ABI, alias or memory suites, and never promotes I to V.
The latest historical candidate had local Node 22.13/24/26 and Chromium/WebKit success, a Firefox startup failure, and four native targets pending. Read candidate verification, the historical reports and remaining work. A compiled branch or configured CI job is not execution evidence.