SASS2MLIR/Encoding Lab
Runs in your browser
RESEARCH WORKBENCH / 128 BIT

SASS encoding explorer.

Isolate a field. Record what changed. Build the evidence.

01 Instruction pair

Select an architecture for live instruction decoding.

MnemonicGreen · modifiers / guardsBlue · operands

A128-bit input

Decoded baseline
Select architecture above
B128-bit input

Decoded variant
Select architecture above

Repository reference opcodes.zip

Loading the uploaded source snapshot…

Source field definitions for the selected variant. Variant selection is manual; field values alone do not establish instruction behavior.

02 Bit comparison

Awaiting encodings

Click a bit to inspect it. Shift + click to select a range.

Unchanged Different Selected fieldA / B · high → low
Modifier Operand Modifier + operand Shared / control or unassigned

Role colors follow the selected repository architecture, opcode and variant. A split green/blue marker means the same bit participates in both roles, including mnemonic aliases that depend on operand values. Amber backgrounds still mark A/B differences.

XOR MASK—
:
FIELD [11:0]
A —→B —
Enter a pair to inspect a field

03 Experiment record

New experiment
CANDIDATE SEMANTICS

New hypothesis

WORKBENCH GUIDE

Follow the bits.

1. Enter a pair

Paste exactly 32 hex digits or 128 binary digits. Spaces, underscores, and a leading 0x / 0b are accepted. Inputs use numeric order: the leftmost digit contains the highest bits. Reorder raw little-endian byte dumps before pasting.

2. Isolate a field

Each cell shows A above B. Amber cells differ. Click a bit, then Shift + click another to select an inclusive range. Arrow keys move between bits; Shift + arrows extend a selection. You can also enter high and low indices directly. “Click flips B” changes only that bit in the variant; it never executes GPU code.

3. Separate observation from hypothesis

Record GPU behavior and setup under Observations. Attach candidate meanings and discriminating tests under Hypotheses. Overlapping ranges are allowed. The repository reference uses the uploaded opcode tables; it is not a full disassembler. The synthetic example is not a real instruction. Hypotheses can use exact, noncontiguous bit lists.

4. Keep your evidence

The notebook is shared across all five research tools. Opening an experiment restores its encoding, function view or comparison. Function experiments retain selected MLIR and provenance; comparison experiments also retain both sources and comparison settings. Original cubin files are not embedded. The encoding draft autosaves locally. Cubin & MLIR and Compare MLIR have their own Experiment record panels; their fields stay open while you switch tools, and must be saved to keep them after reloading. “Save experiment” adds or updates a named notebook record; Duplicate makes a copy. In Cubin & MLIR and Compare MLIR, “New experiment” clears the record fields and keeps the selected functions. Export includes saved notebook records and the current encoding draft. Import merges saved experiments by ID, keeping the newer version, and offers to open the imported draft. Research data stays in this browser; it is not synced to a server. Download backups before clearing browser data.

bit 127 ··· bit 0
field [high:low] · inclusive · unsigned
XOR = A ⊕ B · 1 marks a changed bit

Continue?

Notebook imported

Your current draft is still open. Open the imported draft to continue that work instead.