Skip to main content

TUNPACK

Extract and zero-extend a raw byte field from Local U32 CUBE words.

PTO-TILE-TUNPACK

Assembly syntax

1. High Level Assembly

TUNPACK <LB0, LB1, LB2, Layout> SrcTile0, Scalar0 -> DstTile
Show High Level Assembly operands mapped to the owning ASL
Source bindings for High Level Assembly operands
GroupOperandRoleASL source
ParameterLB0dimensionB.DIM LB0 (optional)
ParameterLB1dimensionB.DIM LB0/LB1/LB2 (optional)
ParameterLB2dimensionB.DIM LB0/LB1/LB2 (optional)
ParameterLayoutlayoutB.DATR Layout (optional)
InputSrcTile0sourcecontract.operands[1].source0
InputScalar0unpack-controlcontract.operands[2].scalar0
OutputDstTiledestinationcontract.operands[0].destination0

2. Complete Bundle Assembly

Exact owner metadata

BSTART.SFU TUNPACK, U32

  1. 1BSTART.SFU TUNPACK, U32Required
  2. 2B.DATR Layout (optional)Optional
  3. 3B.DIM LB0 (optional)Optional
  4. 4B.IOT source, ->destinationRequired
  5. 5B.IOR unpack_controlRequired
  6. 6BSTOPRequired
Minimum source-declared bundle
BSTART.SFU TUNPACK, U32B.IOT source, ->destinationB.IOR unpack_controlBSTOP
Show bundle rules, relationships, and examples
  • BSTART.SFU TUNPACK, U32
  • B.DATR Layout (optional)
  • B.DIM LB0/LB1/LB2 (optional)
  • B.IOT source, ->destination
  • B.IOR unpack_control
  • BSTOP
BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP

Assembler symbols

Assembly fields and architectural roles
FieldBitsSignednessArchitectural roleEncoded zero
DataType5encoding-defined——
Mode2encoding-defined——
Function5encoding-defined——
destination0——destination—
source0——source—
scalar0——unpack-control—

Encoding

Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.

Encoding fields as an accessible table
Generated encoding fields for BSTART.TEPL Mode, Function, DataType
Decoded itemBit rangeValue
DataType31:27variable
Mode26:25variable
Function24:20variable
Constant19:020'b00011001000110000001
WaveJSON source
{
  "reg": [
    {
      "bits": 20,
      "name": "20'b00011001000110000001"
    },
    {
      "bits": 5,
      "name": "Function"
    },
    {
      "bits": 2,
      "name": "Mode"
    },
    {
      "bits": 5,
      "name": "DataType"
    }
  ],
  "config": {
    "bits": 32,
    "fontsize": 13,
    "hspace": 900,
    "lanes": 1,
    "offset": 0
  }
}

BSTART.TEPL Mode, Function, DataType

Instruction contract

Operands and parameters

destination0
destination
source0
source
scalar0
unpack-control

Constraints, checks, and faults

  • TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.
  • The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.
  • The result is zero-extended raw extraction.
  • Illegal offset/count fields reject with Fault_TileLegality before effects.
  • CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior.

State reads, writes, and result

  • Extract and zero-extend one byte field in each active CUBE word group.
  • none
  • Control and source validation precede destination publication.

ASL pseudocode

This Operation comes directly from the instruction owner; the page does not rewrite its behavior.

Decode source binding

readonly func InstructionContractOperation_TUNPACK() => TileOperationbegin    return TileOperation_TUNPACK;end;

Operation source binding

readonly func InstructionContractHandler_TUNPACK() => TileSemanticHandlerbegin    return TileHandler_TUNPACK;end;
pure func InstructionContractDataTypeLegal_TUNPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TUNPACK(destination, source, control);end;
func InstructionContractExecute_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TUNPACK(destination, source, control);    TUNPACK(destination, source, control);end;
View the complete ASL owner
// PTO-INSTRUCTION: {"assembly":["TUNPACK <bundle operands>"],"block":["BSTART.SFU TUNPACK, U32","B.DATR Layout (optional)","B.DIM LB0 (optional)","B.IOT source, ->destination","B.IOR unpack_control","BSTOP"],"catalog_indices":[106],"catalog_records":[{"arguments":[{"operand":"destination0"},{"operand":"source0"},{"operand":"scalar0"}],"command_mnemonic":"BSTART.TEPL","contract_status":"reviewed-complete","datr_contract":{"allowed_nonzero_fields":["Layout"],"pad_union":"must-zero"},"disposition":"accepted-direct-operation","effect_contract":"TUNPACK","family":"TEPL","fault_contract":"ExecuteTileInstruction","function":24,"legality_handler":"TileOperandsLegal_TUNPACK","mode":3,"name":"TUNPACK","operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"scalar0","role":"unpack-control"}],"restart_contract":"CompleteBundleAtWithAcceptedApplicabilityRules","selector":"0x078","semantic_handler":"TUNPACK","state_effects":["operand:destination0:destination","operand:source0:source","operand:scalar0:unpack-control"]}],"classification":["layout-and-rearrangement","layout"],"contract":{"block_composition":["BSTART.SFU TUNPACK, U32","B.DATR Layout (optional)","B.DIM LB0/LB1/LB2 (optional)","B.IOT source, ->destination","B.IOR unpack_control","BSTOP"],"canonical_assembly":["TUNPACK <bundle operands>"],"defaults":["A nonzero PE mask requires exactly one B.IOR control input; RegSrc1, RegSrc2, and RegDst are zero."],"encoding_class":"selector-encoded-block-operation","examples":["BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP"],"exceptions":["Illegal offset/count fields reject with Fault_TileLegality before effects.","CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."],"field_contracts":{},"field_zero_meanings":{},"legality":["TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.","The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.","The result is zero-extended raw extraction."],"memory_effects":["none"],"operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"scalar0","role":"unpack-control"}],"ordering":["Control and source validation precede destination publication."],"standalone_opcode":false,"state_effects":["Extract and zero-extend one byte field in each active CUBE word group."]},"depends_on":["PTO-TILE-MODEL-EXECUTION-REARRANGEMENT","PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"],"engine":"SFU","id":"PTO-TILE-TUNPACK","mnemonic":"TUNPACK","summary":"Extract and zero-extend a raw byte field from Local U32 CUBE words.","surface":"tile"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-TUNPACK-CONTRACT-001// ndf: kind=contract level=L1 layer=tile status=accepted// TUNPACK extracts one contiguous byte field from each U32 CUBE word and// zero-extends it to U32. Offset/count controls are checked before effects.// NDF-END: PTO-TUNPACK-CONTRACT-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_TUNPACK() => TileOperationbegin    return TileOperation_TUNPACK;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_TUNPACK() => TileSemanticHandlerbegin    return TileHandler_TUNPACK;end;
pure func InstructionContractDataTypeLegal_TUNPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TUNPACK(destination, source, control);end;
func InstructionContractExecute_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TUNPACK(destination, source, control);    TUNPACK(destination, source, control);end;// DOC-END: operation

Behavior

purpose

Why use it. TUNPACK extracts a contiguous raw byte field from each Local U32 CUBE word and places that field in a zero-extended U32 result.

mechanism

How it works. The low control byte gives the source byte offset, the next control byte gives the count, and the selected bytes are copied down to destination byte zero while all higher result bits remain zero.

inputs outputs

Inputs and result. source is a Local U32 CUBE_M16 or CUBE_M32 Tile, unpack_control selects the field, and destination is a fresh Local U32 Tile with matching layout and geometry.

effects

Effects. Control and source validation precedes publication of the fully defined valid destination region; the source persists, destination padding is Null, and the operation has no memory effect.

constraints

What is rejected. The offset must be from 0 through 3, the count from 1 through 4, their sum must not exceed 4, control bits 63:32 must be zero, and source and destination must not alias; rejection has no destination effect.

example

Concrete example. Source word 0x44332211 with control 0x00000201 selects two bytes starting at byte offset 1 and produces 0x00003322.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

    1. surfaceTILE
    2. ownerTUNPACK
    3. categoryCONTRACT
    4. case001

    Normative contract

    contract · L1 · accepted

    TUNPACK extracts one contiguous byte field from each U32 CUBE word and zero-extends it to U32. Offset/count controls are checked before effects.

    Sources and references
    Complete stable ID
    PTO-TUNPACK-CONTRACT-001
    Source path
    asl/tile/layout-and-rearrangement/layout/TUNPACK.asl
    Affected units
    PTO-TILE-TUNPACK
    Source SHA-256
    66d9ec2b9df00fc0c716bab78d3765716daca3f11278a142668d09fe6acd0c3f
    Clause SHA-256
    9c91153fdc9baeaac3327afedb14d0e05fe1007386375a3ae036124f36a9a72e
    Open exact canonical source ↗

Evidence index

9 matching entries

Executable evidence2
  • TUNPACK extracts and zero-extends one contiguous byte field.
    1. surfaceTILE
    2. ownerTUNPACK
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TUNPACK-FIELD-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TUNPACK/tile-exec-tunpack-field-001.asl
    Kind / role
    execution
    Requirements
    PTO-TUNPACK-CONTRACT-001, PTO-INST-TILE-TUNPACK
    Pass condition
    Each destination word contains the selected source byte field and no other bits.
    SHA-256
    3ab0d71cdbcedbd965caa1b67b63907f0de5e9a52909c005f6cfd94c1cb1904d
    Open exact source ↗ for PTO-AVS-TILE-TUNPACK-FIELD-001
  • canonical TUNPACK catalog and ASL contract remain aligned
    1. surfaceTILE
    2. ownerTUNPACK
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TUNPACK-STATIC-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TUNPACK/tile-static-tunpack-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-INST-TILE-TUNPACK
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    7a0a1a4172994de59bbd4c591a358e87371e697b93567fbfdb1c37240099c32a
    Open exact source ↗ for PTO-AVS-TILE-TUNPACK-STATIC-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history2
  • Private CUBE vector execution and CELL rearrangement · accepted
    1. decision recordADR
    2. case0103

    Decision record

    Loading ADR-0103…

    Sources and references
    Complete stable ID
    ADR-0103
    Path
    docs/status/decisions/0103-private-cube-vector-and-cell-rearrangement.md
    Affected units
    PTO-TILE-TPACK, PTO-TILE-TPERMUTE, PTO-TILE-TSHUF, PTO-TILE-TUNPACK
    Affected NDF
    PTO-TPACK-CONTRACT-001, PTO-TPERMUTE-CONTRACT-001, PTO-TSHUF-CONTRACT-001, PTO-TUNPACK-CONTRACT-001
    SHA-256
    3b3d67683fb0987dc85ba20c2d2effef9e7e1b170d3950cb505cc1f3ab6109d7
    Open exact decision source ↗ for ADR-0103
  • PTO ISA 0.58.4.1 to 0.58.5 compatibility boundary · accepted
    1. decision recordADR
    2. case0108

    Decision record

    Loading ADR-0108…

    Sources and references
    Complete stable ID
    ADR-0108
    Path
    docs/status/decisions/0108-0584-1-to-0585-compatibility.md
    Affected units
    PTO-ARCH-FEATURES-TILE-ALLOCATION, PTO-ARCH-MEMORY-MODEL-GLOBAL-MEMORY-ACCESS, PTO-ARCH-OVERVIEW-ENCODING-OWNERSHIP, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-BSTART-TLOAD, PTO-BLOCK-BSTART-TMATMUL, PTO-BLOCK-BSTART-TMATMUL-ACC, PTO-BLOCK-BSTART-TMATMUL-BIAS, PTO-BLOCK-BSTART-TMATMULMX, PTO-BLOCK-BSTART-TMATMULMX-ACC, PTO-BLOCK-BSTART-TMATMULMX-BIAS, PTO-BLOCK-BSTART-TMOV, PTO-BLOCK-BSTART-TSTORE, PTO-BLOCK-MODEL-DISPATCH-CELL-REARRANGEMENT-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-DESCRIPTOR-LEGALITY, PTO-BLOCK-MODEL-DISPATCH-DESTINATION-SHAPE, PTO-BLOCK-MODEL-DISPATCH-PARTIAL-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCALAR-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TLSU-LAYOUT-CONVERSION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-TILE-GMOV, PTO-TILE-MGATHER, PTO-TILE-MGATHER-CAS, PTO-TILE-MGATHER-MASK, PTO-TILE-MSCATTER, PTO-TILE-MSCATTER-MASK, PTO-TILE-TCI, PTO-TILE-TCONCAT, PTO-TILE-TDEQUANT, PTO-TILE-TEXTRACT, PTO-TILE-TFILLPAD, PTO-TILE-TGATHER, PTO-TILE-TGEMV, PTO-TILE-TGEMV-ACC, PTO-TILE-TGEMV-BIAS, PTO-TILE-TGEMV-MX, PTO-TILE-TGEMV-MX-ACC, PTO-TILE-TGEMV-MX-BIAS, PTO-TILE-THISTOGRAM, PTO-TILE-TINSERT, PTO-TILE-TLOAD, PTO-TILE-TMATMUL, PTO-TILE-TMATMUL-ACC, PTO-TILE-TMATMUL-BIAS, PTO-TILE-TMATMUL-MX, PTO-TILE-TMATMUL-MX-ACC, PTO-TILE-TMATMUL-MX-BIAS, PTO-TILE-TMOV, PTO-TILE-TMRGSORT, PTO-TILE-TPACK, PTO-TILE-TPARTADD, PTO-TILE-TPARTMAX, PTO-TILE-TPARTMIN, PTO-TILE-TPARTMUL, PTO-TILE-TPERMUTE, PTO-TILE-TPREFETCH, PTO-TILE-TQUANT, PTO-TILE-TSCATTER, PTO-TILE-TSHUF, PTO-TILE-TSORT, PTO-TILE-TSTORE, PTO-TILE-TTRANS, PTO-TILE-TTRI, PTO-TILE-TUNPACK, PTO-TILE-MODEL-DISPATCH-IRREGULAR-AND-COMPLEX, PTO-TILE-MODEL-DISPATCH-LAYOUT-AND-REARRANGEMENT, PTO-TILE-MODEL-EXECUTION-COMPLEX, PTO-TILE-MODEL-EXECUTION-GENERATION, PTO-TILE-MODEL-EXECUTION-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-ALLOCATION-CAPACITY, PTO-TILE-MODEL-LEGALITY-DTYPE-LAYOUT, PTO-TILE-MODEL-LEGALITY-INDEXED-LAYOUT, PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-OPERAND-SCHEMA, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT, PTO-TILE-MODEL-STATE-DESCRIPTORS, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES
    Affected NDF
    PTO-ARCH-GM-ACCESS-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-IOT-STREAM-001, PTO-B-SHARED-WHOLE-PARENT-READY-001, PTO-B-SUBVIEW-SHARED-PER-PE-001, PTO-BSTART-TLOAD-MEMORY-001, PTO-BSTART-TMOV-SHARED-001, PTO-BSTART-TSTORE-MEMORY-001, PTO-INST-BLOCK-B-IOS, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-BSTART-TLOAD, PTO-INST-BLOCK-BSTART-TMATMUL, PTO-INST-BLOCK-BSTART-TMATMUL-ACC, PTO-INST-BLOCK-BSTART-TMATMUL-BIAS, PTO-INST-BLOCK-BSTART-TMATMULMX, PTO-INST-BLOCK-BSTART-TMATMULMX-ACC, PTO-INST-BLOCK-BSTART-TMATMULMX-BIAS, PTO-INST-BLOCK-BSTART-TMOV, PTO-INST-BLOCK-BSTART-TSTORE, PTO-INST-TILE-GMOV, PTO-INST-TILE-MGATHER, PTO-INST-TILE-MGATHER-CAS, PTO-INST-TILE-MGATHER-MASK, PTO-INST-TILE-MSCATTER, PTO-INST-TILE-MSCATTER-MASK, PTO-INST-TILE-TCI, PTO-INST-TILE-TCONCAT, PTO-INST-TILE-TDEQUANT, PTO-INST-TILE-TEXTRACT, PTO-INST-TILE-TFILLPAD, PTO-INST-TILE-TGATHER, PTO-INST-TILE-TGEMV, PTO-INST-TILE-TGEMV-ACC, PTO-INST-TILE-TGEMV-BIAS, PTO-INST-TILE-TGEMV-MX, PTO-INST-TILE-TGEMV-MX-ACC, PTO-INST-TILE-TGEMV-MX-BIAS, PTO-INST-TILE-THISTOGRAM, PTO-INST-TILE-TINSERT, PTO-INST-TILE-TLOAD, PTO-INST-TILE-TMATMUL, PTO-INST-TILE-TMATMUL-ACC, PTO-INST-TILE-TMATMUL-BIAS, PTO-INST-TILE-TMATMUL-MX, PTO-INST-TILE-TMATMUL-MX-ACC, PTO-INST-TILE-TMATMUL-MX-BIAS, PTO-INST-TILE-TMOV, PTO-INST-TILE-TMRGSORT, PTO-INST-TILE-TPACK, PTO-INST-TILE-TPARTADD, PTO-INST-TILE-TPARTMAX, PTO-INST-TILE-TPARTMIN, PTO-INST-TILE-TPARTMUL, PTO-INST-TILE-TPERMUTE, PTO-INST-TILE-TPREFETCH, PTO-INST-TILE-TQUANT, PTO-INST-TILE-TSCATTER, PTO-INST-TILE-TSHUF, PTO-INST-TILE-TSORT, PTO-INST-TILE-TSTORE, PTO-INST-TILE-TTRANS, PTO-INST-TILE-TTRI, PTO-INST-TILE-TUNPACK, PTO-ISA-LEGACY-SHARED-MOVEMENT-001, PTO-TFILLPAD-CONTRACT-001, PTO-TLOAD-MEMORY-001, PTO-TMATMUL-ACC-CONTRACT-001, PTO-TMATMUL-BIAS-CONTRACT-001, PTO-TMATMUL-CONTRACT-001, PTO-TMATMUL-MX-ACC-CONTRACT-001, PTO-TMATMUL-MX-BIAS-CONTRACT-001, PTO-TMATMUL-MX-CONTRACT-001, PTO-TPACK-CONTRACT-001, PTO-TPARTADD-CONTRACT-001, PTO-TPARTMAX-CONTRACT-001, PTO-TPARTMIN-CONTRACT-001, PTO-TPARTMUL-CONTRACT-001, PTO-TPERMUTE-CONTRACT-001, PTO-TSHUF-CONTRACT-001, PTO-TSTORE-MEMORY-001, PTO-TTRANS-CONTRACT-001, PTO-TUNPACK-CONTRACT-001
    SHA-256
    5689fa78a7291b6ae88d55197205e4cf79e9719ee5ba18ebf186f5c6871c350d
    Open exact decision source ↗ for ADR-0108

Unit metadata

Open 12 generated metadata fields
assembly
[
  "TUNPACK <bundle operands>"
]
block
[
  "BSTART.SFU TUNPACK, U32",
  "B.DATR Layout (optional)",
  "B.DIM LB0 (optional)",
  "B.IOT source, ->destination",
  "B.IOR unpack_control",
  "BSTOP"
]
catalog_indices
[
  106
]
catalog_records
[
  {
    "arguments": [
      {
        "operand": "destination0"
      },
      {
        "operand": "source0"
      },
      {
        "operand": "scalar0"
      }
    ],
    "command_mnemonic": "BSTART.TEPL",
    "contract_status": "reviewed-complete",
    "datr_contract": {
      "allowed_nonzero_fields": [
        "Layout"
      ],
      "pad_union": "must-zero"
    },
    "disposition": "accepted-direct-operation",
    "effect_contract": "TUNPACK",
    "family": "TEPL",
    "fault_contract": "ExecuteTileInstruction",
    "function": 24,
    "legality_handler": "TileOperandsLegal_TUNPACK",
    "mode": 3,
    "name": "TUNPACK",
    "operands": [
      {
        "field": "destination0",
        "role": "destination"
      },
      {
        "field": "source0",
        "role": "source"
      },
      {
        "field": "scalar0",
        "role": "unpack-control"
      }
    ],
    "restart_contract": "CompleteBundleAtWithAcceptedApplicabilityRules",
    "selector": "0x078",
    "semantic_handler": "TUNPACK",
    "state_effects": [
      "operand:destination0:destination",
      "operand:source0:source",
      "operand:scalar0:unpack-control"
    ]
  }
]
classification
[
  "layout-and-rearrangement",
  "layout"
]
contract
{
  "block_composition": [
    "BSTART.SFU TUNPACK, U32",
    "B.DATR Layout (optional)",
    "B.DIM LB0/LB1/LB2 (optional)",
    "B.IOT source, ->destination",
    "B.IOR unpack_control",
    "BSTOP"
  ],
  "canonical_assembly": [
    "TUNPACK <bundle operands>"
  ],
  "defaults": [
    "A nonzero PE mask requires exactly one B.IOR control input; RegSrc1, RegSrc2, and RegDst are zero."
  ],
  "encoding_class": "selector-encoded-block-operation",
  "examples": [
    "BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP"
  ],
  "exceptions": [
    "Illegal offset/count fields reject with Fault_TileLegality before effects.",
    "CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."
  ],
  "field_contracts": {},
  "field_zero_meanings": {},
  "legality": [
    "TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.",
    "The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.",
    "The result is zero-extended raw extraction."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "destination0",
      "role": "destination"
    },
    {
      "field": "source0",
      "role": "source"
    },
    {
      "field": "scalar0",
      "role": "unpack-control"
    }
  ],
  "ordering": [
    "Control and source validation precede destination publication."
  ],
  "standalone_opcode": false,
  "state_effects": [
    "Extract and zero-extend one byte field in each active CUBE word group."
  ]
}
depends_on
[
  "PTO-TILE-MODEL-EXECUTION-REARRANGEMENT",
  "PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"
]
engine
SFU
id
PTO-TILE-TUNPACK
mnemonic
TUNPACK
summary
Extract and zero-extend a raw byte field from Local U32 CUBE words.
surface
tile
Open generated traceability record
{
  "classification": [
    "layout-and-rearrangement",
    "layout"
  ],
  "documentation": "docs/tile/layout-and-rearrangement/layout/TUNPACK.md",
  "id": "PTO-TILE-TUNPACK",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "TUNPACK",
    "ndf_clause": "PTO-INST-TILE-TUNPACK"
  },
  "mnemonic": "TUNPACK",
  "readiness_subjects": [
    "ADR-0103",
    "ADR-0108"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-TUNPACK-FIELD-001"
  ],
  "source": "asl/tile/layout-and-rearrangement/layout/TUNPACK.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-TUNPACK-FIELD-001",
    "PTO-AVS-TILE-TUNPACK-STATIC-001"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
66d9ec2b9df00fc0c716bab78d3765716daca3f11278a142668d09fe6acd0c3f
Generated documentation
docs/tile/layout-and-rearrangement/layout/TUNPACK.md · embedded in this page
Documentation SHA-256
5327175d8538a93f08b18189e4d347ec8b8a81e7ba197a8c6cb907c850b0ecd2

Exact owners