simdref
A single searchable reference for SIMD intrinsics and instructions across
x86 (Intel + uops.info), Arm (ACLE / AARCHMRS), and RISC-V
(RVV + unified-db). Runs as a CLI, a Textual TUI, an LSP server,
on-demand manpages (simdref man — or run simdref install-manpages
so plain man vpaddd works), a static web app, and a structured JSON
interface for LLM skills.
Web App · TestPyPI · GitHub · Contributing
Interactive TUI with ISA filters, ranked results, and measured/modeled performance tables.
Install the Claude Code and Codex skill
The asm-analysis skill for Claude Code and OpenAI Codex lives in
simd-labs/simdref-skill.
Follow the install steps in that repo.
Install
pip install simdref
isa update # download the pre-built catalog
isa doctor # confirm everything is wired up
isa # open the TUI
The package installs two equivalent executables, isa (short) and
simdref (explicit). The rest of this README uses isa.
isa update pulls the combined catalog (x86 measured + Arm/RISC-V
measured & modeled) from the latest GitHub Release — no llvm-mca
required. Only contributors doing a full local rebuild with
isa build need llvm-mca 18+ on PATH.
Pre-release builds live on TestPyPI:
pip install -i https://test.pypi.org/simple/ \
--extra-index-url https://pypi.org/simple/ simdref
Quickstart
isa _mm_add_ps # exact intrinsic -> detailed view
isa VPADDD # exact instruction -> detailed view
isa _mm_add # fuzzy -> ranked search results
isa mm add # tokenized query -> intrinsic-biased search
isa ADD # mnemonic-like -> instruction-biased search
isa VADDPS 2 # pick variant #2 from the last result list
isa # open the interactive TUI
Interfaces
Web app — a self-contained static SPA with filters and performance
tables, published to GitHub Pages at
simdref.diamondinoia.com and
built from the simdref-web repo. This repo (simdref-core) exports the
JSON data it consumes:
isa export --out-dir ./site-data
The live demo hosts the same build — search across ~122k entries with ISA filters and per-uarch perf tables.
LSP — hover docs + completion for intrinsic names and instruction mnemonics in any LSP-capable editor:
simdref-lsp # speaks JSON-RPC over stdio
-- Neovim
vim.lsp.start({ name = "simdref", cmd = { ".venv/bin/simdref-lsp" } })
LLM interface — stable JSON / NDJSON for agents and editor skills, with meaningful exit codes so tools can distinguish no match (2), ambiguous (3), and bad flag (1):
isa llm query _mm_add_ps --source-kind measured
echo -e "_mm_add_ps\nVPADDD" | isa llm batch
isa llm list --pattern "*gather*" --isa Intel
See docs/LLM.md for the full payload shape and a Claude-skill recipe.
Assembly annotator — turn compiler output into a self-documented
.sa file. Given hello_simd.s:
dot8:
vmovups (%rdi), %ymm0
vmovups (%rsi), %ymm1
vmulps %ymm1, %ymm0, %ymm0
vaddps %ymm0, %ymm0, %ymm0
vhaddps %ymm0, %ymm0, %ymm0
ret
isa annotate hello_simd.s # writes hello_simd.sa
isa annotate hello_simd.s --arch skylake-x -o - # to stdout, skylake-x only
produces:
dot8:
vmovups (%rdi), %ymm0 # Move Unaligned Packed Single Precision FP Values. | lat=10.3c cpi=0.78 [avg of 25 archs, measured]
vmovups (%rsi), %ymm1 # Move Unaligned Packed Single Precision FP Values. | lat=10.3c cpi=0.78 [avg of 25 archs, measured]
vmulps %ymm1, %ymm0, %ymm0 # Multiply Packed Single Precision FP Values. | lat=3.8c cpi=0.54 [avg of 25 archs, measured]
vaddps %ymm0, %ymm0, %ymm0 # Add Packed Single Precision FP Values. | lat=3.1c cpi=0.58 [avg of 25 archs, measured]
vhaddps %ymm0, %ymm0, %ymm0 # Horizontal Add Packed Single Precision FP. | lat=5.6c cpi=2.22 [avg of 25 archs, measured]
ret
The output is still valid assembly — comments start with #, so as
and ld still consume it.
Commands
isa --help groups commands into Commands (day-to-day) and
Dev commands (rebuild / export / completion).
Commands
| Command | Description |
|---|---|
isa |
Open the TUI |
isa <query> |
Open the TUI pre-filled with the query in a TTY; print ranked records to stdout otherwise |
isa doctor |
Check the installation — pass/fail per component, non-zero exit on failure |
isa update |
Download the pre-built release catalog (no llvm-mca required); --from-release for the GitHub Release artifact |
isa annotate <file.s> |
Annotate a .s assembly file with per-instruction summaries and latency/CPI — writes <file>.sa |
isa llm query <q> |
Strict lookup → JSON/NDJSON/Markdown (see docs/LLM.md) |
isa llm batch |
Resolve many queries from stdin in one invocation (NDJSON out) |
isa llm list |
Dump the FilterSpec or stream matching catalog entries |
isa llm schema |
Print the JSON schema for llm payloads |
Dev commands
| Command | Description |
|---|---|
isa build |
Full local rebuild from upstream sources, including Intel SDM parsing (llvm-mca 18+ required) |
isa export |
Export site data (JSON only) — the release contract for the simdref-web repo |
isa completion install [SHELL] |
Install shell completion into the user's profile |
isa completion show [SHELL] |
Print the completion script for a shell |
Data sources
| Source | What | Entries¹ |
|---|---|---|
| Intel Intrinsics Guide | Signatures, descriptions, ISA, categories | 7,146 intrinsics |
| uops.info | Instructions, operands, latency, throughput, ports | 22,276 instructions |
| Arm ACLE (NEON/SVE) | Intrinsic signatures and descriptions | 10,791 intrinsics |
| Arm AARCHMRS (A64) | Base instruction forms and operand tables | live-only² |
| riscv-rvv-intrinsic-doc | RVV intrinsics with deterministic instruction refs | 74,319 intrinsics |
| RISC-V unified-db | RVV instruction forms, ISA tags, Description/Operation | 2,868 instructions |
¹ Counts from the current vendored snapshot. See
docs/coverage/summary.json for live
parity against upstream and docs/SOURCES.md for
licenses and refresh cadence.
² The full AARCHMRS A64 spec is only available via live fetch or by
dropping the tarball under vendor/arm/.
Every rendered latency / CPI is tagged (measured, <core>) or
(modeled, <core>) so measured and modeled numbers never get silently
mixed.
Scope caveats
- Performance data is x86-only in v1.
- RISC-V coverage is RVV-focused — not full scalar or privileged ISA.
Development
git clone https://github.com/simd-labs/simdref.git
cd simdref
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/isa build # requires llvm-mca 18+
.venv/bin/python -m pytest tests/ -v
See CONTRIBUTING.md for the full dev flow (tests, adding a new source, build stages) and ARCHITECTURE.md for module layout.
License
Metadata
Release files for simdref 0.0.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| simdref-0.0.6.tar.gz | 225.5 kB | With provenance | Details for simdref-0.0.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| simdref-0.0.6-py3-none-any.whl | Python 3 | none | any | Details for simdref-0.0.6-py3-none-any.whl |
Total release size: 398.7 kB
Release files / simdref-0.0.6.tar.gz
| Download URL | simdref-0.0.6.tar.gz |
|---|---|
| Size | 225.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1af66a29ab14f3e509a5db20a1ae7418df3b81fe4a86c73833a390701f4666c6
|
|
BLAKE2b-256 checksum How to use checksums |
2bd4ad5f3c8d47cf117a5468949a49c93c6bf114637c85e524ecf9f8e38c35b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logRelease files / simdref-0.0.6-py3-none-any.whl
| Download URL | simdref-0.0.6-py3-none-any.whl |
|---|---|
| Size | 173.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
405577a369e85b3f51395328ced2bf846dbc869c089fc9ae3857ecca48bc37b1
|
|
BLAKE2b-256 checksum How to use checksums |
ada5e33192893653ac8e52fcb5b929234523e4fac3a6f45a89a5f3dff4169233
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logSecurity for simdref 0.0.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for simdref-0.0.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.