Skip to main content

TPACK

Pack two low-order raw byte fields into Local U32 CUBE words.

PTO-TILE-TPACK

Assembly syntax

1. High Level Assembly

TPACK <LB0, LB1, LB2, Layout> SrcTile0, SrcTile1, 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)
InputSrcTile0source0contract.operands[1].source0
InputSrcTile1source1contract.operands[2].source1
InputScalar0pack-controlcontract.operands[3].scalar0
OutputDstTiledestinationcontract.operands[0].destination0

2. Complete Bundle Assembly

Exact owner metadata

BSTART.SFU TPACK, U32

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

Assembler symbols

Assembly fields and architectural roles
FieldBitsSignednessArchitectural roleEncoded zero
DataType5encoding-defined——
Mode2encoding-defined——
Function5encoding-defined——
destination0——destination—
source0——source0—
source1——source1—
scalar0——pack-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
source0
source1
source1
scalar0
pack-control

Constraints, checks, and faults

  • TPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.
  • The control selects two low-order byte fields with widths 1..3 whose sum is at most four.
  • The result is raw zero-filled field assembly with no numeric conversion.
  • Illegal field widths reject with Fault_TileLegality before effects.
  • CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior.

State reads, writes, and result

  • Pack corresponding source U32 words independently in every 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_TPACK() => TileOperationbegin    return TileOperation_TPACK;end;

Operation source binding

readonly func InstructionContractHandler_TPACK() => TileSemanticHandlerbegin    return TileHandler_TPACK;end;
pure func InstructionContractDataTypeLegal_TPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TPACK(    destination: TileIndex, source0: TileIndex,    source1: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TPACK(destination, source0, source1, control);end;
func InstructionContractExecute_TPACK(    destination: TileIndex, source0: TileIndex,    source1: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TPACK(        destination, source0, source1, control);    TPACK(destination, source0, source1, control);end;
View the complete ASL owner
// PTO-INSTRUCTION: {"assembly":["TPACK <bundle operands>"],"block":["BSTART.SFU TPACK, U32","B.DATR Layout (optional)","B.DIM LB0 (optional)","B.IOT source0, source1, ->destination","B.IOR pack_control","BSTOP"],"catalog_indices":[105],"catalog_records":[{"arguments":[{"operand":"destination0"},{"operand":"source0"},{"operand":"source1"},{"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":"TPACK","family":"TEPL","fault_contract":"ExecuteTileInstruction","function":23,"legality_handler":"TileOperandsLegal_TPACK","mode":3,"name":"TPACK","operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source0"},{"field":"source1","role":"source1"},{"field":"scalar0","role":"pack-control"}],"restart_contract":"CompleteBundleAtWithAcceptedApplicabilityRules","selector":"0x077","semantic_handler":"TPACK","state_effects":["operand:destination0:destination","operand:source0:source0","operand:source1:source1","operand:scalar0:pack-control"]}],"classification":["layout-and-rearrangement","layout"],"contract":{"block_composition":["BSTART.SFU TPACK, U32","B.DATR Layout (optional)","B.DIM LB0/LB1/LB2 (optional)","B.IOT source0, source1, ->destination","B.IOR pack_control","BSTOP"],"canonical_assembly":["TPACK <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 TPACK, U32; B.DATR Layout; B.IOT source0, source1, ->destination; B.IOR a0; BSTOP"],"exceptions":["Illegal field widths reject with Fault_TileLegality before effects.","CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."],"field_contracts":{},"field_zero_meanings":{},"legality":["TPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.","The control selects two low-order byte fields with widths 1..3 whose sum is at most four.","The result is raw zero-filled field assembly with no numeric conversion."],"memory_effects":["none"],"operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source0"},{"field":"source1","role":"source1"},{"field":"scalar0","role":"pack-control"}],"ordering":["Control and source validation precede destination publication."],"standalone_opcode":false,"state_effects":["Pack corresponding source U32 words independently in every active CUBE word group."]},"depends_on":["PTO-TILE-MODEL-EXECUTION-REARRANGEMENT","PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"],"engine":"SFU","id":"PTO-TILE-TPACK","mnemonic":"TPACK","summary":"Pack two low-order raw byte fields into 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-TPACK-CONTRACT-001// ndf: kind=contract level=L1 layer=tile status=accepted// TPACK assembles two low-order byte fields into each corresponding U32 word.// Widths are explicit control bytes in 1..3 with total width at most four;// all unselected result bits are zero.// NDF-END: PTO-TPACK-CONTRACT-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_TPACK() => TileOperationbegin    return TileOperation_TPACK;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_TPACK() => TileSemanticHandlerbegin    return TileHandler_TPACK;end;
pure func InstructionContractDataTypeLegal_TPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TPACK(    destination: TileIndex, source0: TileIndex,    source1: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TPACK(destination, source0, source1, control);end;
func InstructionContractExecute_TPACK(    destination: TileIndex, source0: TileIndex,    source1: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TPACK(        destination, source0, source1, control);    TPACK(destination, source0, source1, control);end;// DOC-END: operation

Behavior

purpose

Why use it. TPACK joins low-order byte fields from two corresponding Local U32 CUBE words, which is useful when the fields must be rearranged as raw storage rather than numerically converted.

mechanism

How it works. For every active word position, the selected low bytes of source0 occupy the low destination bytes, the selected low bytes of source1 follow them, and every remaining destination bit is zero.

inputs outputs

Inputs and result. source0 and source1 are matching Local U32 CUBE_M16 or CUBE_M32 Tiles, pack_control supplies the two field widths, and destination is a fresh Tile with matching layout and geometry.

effects

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

constraints

What is rejected. Each field width must be from 1 through 3, their sum must not exceed 4, control bits 63:32 must be zero, and the destination must not alias either source; rejection occurs before destination effects.

example

Concrete example. With corresponding source words 0x00001234 and 0x00ABCDEF, control 0x00000202 selects two low bytes from each and produces 0xCDEF1234.

NDF clauses

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

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

    Normative contract

    contract · L1 · accepted

    TPACK assembles two low-order byte fields into each corresponding U32 word. Widths are explicit control bytes in 1..3 with total width at most four; all unselected result bits are zero.

    Sources and references
    Complete stable ID
    PTO-TPACK-CONTRACT-001
    Source path
    asl/tile/layout-and-rearrangement/layout/TPACK.asl
    Affected units
    PTO-TILE-TPACK
    Source SHA-256
    3744e3f592f0b88d44806845a029be372fc48a8565a8ff4702d07a3631a5a7a0
    Clause SHA-256
    441a5b19f6da84cc48f6c4786b6df464a581b0920a8d42e73616e314b468ed3c
    Open exact canonical source ↗

Evidence index

9 matching entries

Executable evidence2
  • TPACK assembles two low-order byte fields per U32 word.
    1. surfaceTILE
    2. ownerTPACK
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TPACK-FIELDS-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TPACK/tile-exec-tpack-fields-001.asl
    Kind / role
    execution
    Requirements
    PTO-TPACK-CONTRACT-001, PTO-INST-TILE-TPACK
    Pass condition
    The destination contains the selected source fields with zeroed upper bits.
    SHA-256
    f3269ea2913bebdd8053337720a0a8da08e97661a112006f849efd8eff9c7e2f
    Open exact source ↗ for PTO-AVS-TILE-TPACK-FIELDS-001
  • canonical TPACK catalog and ASL contract remain aligned
    1. surfaceTILE
    2. ownerTPACK
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TPACK-STATIC-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TPACK/tile-static-tpack-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-INST-TILE-TPACK
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    94f5ade767e412e858f01a8b835ff9a28f429817e6c9daa71f951574c5b7851c
    Open exact source ↗ for PTO-AVS-TILE-TPACK-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
[
  "TPACK <bundle operands>"
]
block
[
  "BSTART.SFU TPACK, U32",
  "B.DATR Layout (optional)",
  "B.DIM LB0 (optional)",
  "B.IOT source0, source1, ->destination",
  "B.IOR pack_control",
  "BSTOP"
]
catalog_indices
[
  105
]
catalog_records
[
  {
    "arguments": [
      {
        "operand": "destination0"
      },
      {
        "operand": "source0"
      },
      {
        "operand": "source1"
      },
      {
        "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": "TPACK",
    "family": "TEPL",
    "fault_contract": "ExecuteTileInstruction",
    "function": 23,
    "legality_handler": "TileOperandsLegal_TPACK",
    "mode": 3,
    "name": "TPACK",
    "operands": [
      {
        "field": "destination0",
        "role": "destination"
      },
      {
        "field": "source0",
        "role": "source0"
      },
      {
        "field": "source1",
        "role": "source1"
      },
      {
        "field": "scalar0",
        "role": "pack-control"
      }
    ],
    "restart_contract": "CompleteBundleAtWithAcceptedApplicabilityRules",
    "selector": "0x077",
    "semantic_handler": "TPACK",
    "state_effects": [
      "operand:destination0:destination",
      "operand:source0:source0",
      "operand:source1:source1",
      "operand:scalar0:pack-control"
    ]
  }
]
classification
[
  "layout-and-rearrangement",
  "layout"
]
contract
{
  "block_composition": [
    "BSTART.SFU TPACK, U32",
    "B.DATR Layout (optional)",
    "B.DIM LB0/LB1/LB2 (optional)",
    "B.IOT source0, source1, ->destination",
    "B.IOR pack_control",
    "BSTOP"
  ],
  "canonical_assembly": [
    "TPACK <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 TPACK, U32; B.DATR Layout; B.IOT source0, source1, ->destination; B.IOR a0; BSTOP"
  ],
  "exceptions": [
    "Illegal field widths reject with Fault_TileLegality before effects.",
    "CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."
  ],
  "field_contracts": {},
  "field_zero_meanings": {},
  "legality": [
    "TPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.",
    "The control selects two low-order byte fields with widths 1..3 whose sum is at most four.",
    "The result is raw zero-filled field assembly with no numeric conversion."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "destination0",
      "role": "destination"
    },
    {
      "field": "source0",
      "role": "source0"
    },
    {
      "field": "source1",
      "role": "source1"
    },
    {
      "field": "scalar0",
      "role": "pack-control"
    }
  ],
  "ordering": [
    "Control and source validation precede destination publication."
  ],
  "standalone_opcode": false,
  "state_effects": [
    "Pack corresponding source U32 words independently in every active CUBE word group."
  ]
}
depends_on
[
  "PTO-TILE-MODEL-EXECUTION-REARRANGEMENT",
  "PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"
]
engine
SFU
id
PTO-TILE-TPACK
mnemonic
TPACK
summary
Pack two low-order raw byte fields into Local U32 CUBE words.
surface
tile
Open generated traceability record
{
  "classification": [
    "layout-and-rearrangement",
    "layout"
  ],
  "documentation": "docs/tile/layout-and-rearrangement/layout/TPACK.md",
  "id": "PTO-TILE-TPACK",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "TPACK",
    "ndf_clause": "PTO-INST-TILE-TPACK"
  },
  "mnemonic": "TPACK",
  "readiness_subjects": [
    "ADR-0103",
    "ADR-0108"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-TPACK-FIELDS-001"
  ],
  "source": "asl/tile/layout-and-rearrangement/layout/TPACK.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-TPACK-FIELDS-001",
    "PTO-AVS-TILE-TPACK-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
3744e3f592f0b88d44806845a029be372fc48a8565a8ff4702d07a3631a5a7a0
Generated documentation
docs/tile/layout-and-rearrangement/layout/TPACK.md · embedded in this page
Documentation SHA-256
557d346642f39c05a40f47ec60862a2fa831775065511e470968ad9c106f1f87

Exact owners