跳到主要内容

TSHUF

Shuffle raw 32-bit words across Local CUBE rows with an explicit control GPR.

PTO-TILE-TSHUF

汇编格式

1. 高层汇编

TSHUF <LB0, LB1, LB2, DataType, Layout> SrcTile0, SrcTile1, Scalar0 -> DstTile
显示高层汇编 operand 到 owning ASL 的映射
高层汇编 operand 的 source binding
分组Operand含义ASL 来源
参数LB0dimensionB.DIM LB0 (optional)
参数LB1dimensionB.DIM LB0/LB1/LB2 (optional)
参数LB2dimensionB.DIM LB0/LB1/LB2 (optional)
参数DataTypedata typeBSTART.SFU TSHUF, DataType
参数LayoutlayoutB.DATR Layout (optional)
输入SrcTile0sourcecontract.operands[1].source0
输入SrcTile1controlscontract.operands[2].source1
输入Scalar0shuffle-controlcontract.operands[3].scalar0
输出DstTiledestinationcontract.operands[0].destination0

2. 完整 Bundle Assembly

直接来自 owner metadata

BSTART.SFU TSHUF, DataType

  1. 1BSTART.SFU TSHUF, DataType必选
  2. 2B.DATR Layout (optional)可选
  3. 3B.DIM LB0 (optional)可选
  4. 4B.IOT source, controls, ->destination必选
  5. 5B.IOR shuffle_control必选
  6. 6BSTOP必选
最短 source-declared bundle
BSTART.SFU TSHUF, DataTypeB.IOT source, controls, ->destinationB.IOR shuffle_controlBSTOP
展开 Bundle 规则、互斥关系与示例
  • BSTART.SFU TSHUF, DataType
  • B.DATR Layout (optional)
  • B.DIM LB0/LB1/LB2 (optional)
  • B.IOT source, controls, ->destination
  • B.IOR shuffle_control
  • BSTOP
BSTART.SFU TSHUF, U32; B.DATR Layout; B.IOT source, controls, ->destination; B.IOR a0; BSTOP

汇编符号

汇编字段与架构角色
字段位宽有符号性架构角色编码零
DataType5encoding-defined——
Mode2encoding-defined——
Function5encoding-defined——
destination0——destination—
source0——source—
source1——controls—
scalar0——shuffle-control—

编码

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

指令契约

操作数与参数

destination0
destination
source0
source
source1
controls
scalar0
shuffle-control

约束、检查与 Fault

  • TSHUF accepts Local CUBE_M16 or CUBE_M32 data and U32 control Tiles with matching geometry.
  • The control word selects UP, DOWN, BFLY, or IDX; segment and boundary fields are checked before execution.
  • Raw 32-bit words are shuffled without byte permutation.
  • Reserved control encodings reject with Fault_TileLegality before effects.
  • CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior.

状态读取、写入与结果

  • Perform independent PTX-style word shuffles for each active CUBE row/group.
  • none
  • Source and control snapshots precede destination publication.

ASL 伪代码

下面是该指令所有者中的 Operation;页面没有重写这段行为。

Decode 源绑定

readonly func InstructionContractOperation_TSHUF() => TileOperationbegin    return TileOperation_TSHUF;end;

Operation 源绑定

readonly func InstructionContractHandler_TSHUF() => TileSemanticHandlerbegin    return TileHandler_TSHUF;end;
pure func InstructionContractDataTypeLegal_TSHUF(    data_type: TileDataType) => booleanbegin    return TileCubeDataTypeSupported(data_type) &&           TileElementBits(data_type) != 64;end;
readonly func InstructionContractOperandsLegal_TSHUF(    destination: TileIndex, source: TileIndex,    controls: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TSHUF(destination, source, controls, control);end;
func InstructionContractExecute_TSHUF(    destination: TileIndex, source: TileIndex,    controls: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TSHUF(        destination, source, controls, control);    TSHUF(destination, source, controls, control);end;
查看完整 ASL 所有者
// PTO-INSTRUCTION: {"assembly":["TSHUF <bundle operands>"],"block":["BSTART.SFU TSHUF, DataType","B.DATR Layout (optional)","B.DIM LB0 (optional)","B.IOT source, controls, ->destination","B.IOR shuffle_control","BSTOP"],"catalog_indices":[104],"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":"TSHUF","family":"TEPL","fault_contract":"ExecuteTileInstruction","function":22,"legality_handler":"TileOperandsLegal_TSHUF","mode":3,"name":"TSHUF","operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"source1","role":"controls"},{"field":"scalar0","role":"shuffle-control"}],"restart_contract":"CompleteBundleAtWithAcceptedApplicabilityRules","selector":"0x076","semantic_handler":"TSHUF","state_effects":["operand:destination0:destination","operand:source0:source","operand:source1:controls","operand:scalar0:shuffle-control"]}],"classification":["layout-and-rearrangement","layout"],"contract":{"block_composition":["BSTART.SFU TSHUF, DataType","B.DATR Layout (optional)","B.DIM LB0/LB1/LB2 (optional)","B.IOT source, controls, ->destination","B.IOR shuffle_control","BSTOP"],"canonical_assembly":["TSHUF <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 TSHUF, U32; B.DATR Layout; B.IOT source, controls, ->destination; B.IOR a0; BSTOP"],"exceptions":["Reserved control encodings reject with Fault_TileLegality before effects.","CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."],"field_contracts":{},"field_zero_meanings":{},"legality":["TSHUF accepts Local CUBE_M16 or CUBE_M32 data and U32 control Tiles with matching geometry.","The control word selects UP, DOWN, BFLY, or IDX; segment and boundary fields are checked before execution.","Raw 32-bit words are shuffled without byte permutation."],"memory_effects":["none"],"operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"source1","role":"controls"},{"field":"scalar0","role":"shuffle-control"}],"ordering":["Source and control snapshots precede destination publication."],"standalone_opcode":false,"state_effects":["Perform independent PTX-style word shuffles for each active CUBE row/group."]},"depends_on":["PTO-TILE-MODEL-EXECUTION-REARRANGEMENT","PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"],"engine":"SFU","id":"PTO-TILE-TSHUF","mnemonic":"TSHUF","summary":"Shuffle raw 32-bit words across Local CUBE rows with an explicit control GPR.","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-TSHUF-CONTRACT-001// ndf: kind=contract level=L1 layer=tile status=accepted// TSHUF selects raw 32-bit words inside independent power-of-two row segments.// Control mode, segment, and boundary fields are checked before publication;// SELF and ZERO define out-of-segment behavior without predicates.// NDF-END: PTO-TSHUF-CONTRACT-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_TSHUF() => TileOperationbegin    return TileOperation_TSHUF;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_TSHUF() => TileSemanticHandlerbegin    return TileHandler_TSHUF;end;
pure func InstructionContractDataTypeLegal_TSHUF(    data_type: TileDataType) => booleanbegin    return TileCubeDataTypeSupported(data_type) &&           TileElementBits(data_type) != 64;end;
readonly func InstructionContractOperandsLegal_TSHUF(    destination: TileIndex, source: TileIndex,    controls: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TSHUF(destination, source, controls, control);end;
func InstructionContractExecute_TSHUF(    destination: TileIndex, source: TileIndex,    controls: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TSHUF(        destination, source, controls, control);    TSHUF(destination, source, controls, control);end;// DOC-END: operation

行为

用途

使用场景。 TSHUF 在彼此独立、宽度为二次幂的 CUBE CELL 分段内跨行移动原始 32 位字组,无需另设谓词步骤或数值转换步骤。

执行过程

工作方式。 标量控制值选择 UP、DOWN、BFLY 或 IDX;每个 U32 控制 Tile 字通过位 [4:0] 提供其行操作数,而位 [31:5] 会被接受但忽略;当所选行不可用时,边界选项决定保留当前字(SELF)还是写入零(ZERO)。

输入与输出

输入与结果。 source 与新的 destination 采用相同的受支持非 64 位 dtype、Local CUBE_M16 或 CUBE_M32 布局及几何形状;Local U32 controls Tile 与两者具有相同的布局、有效行数和 CUBE CELL 数,而其有效列数等于每个数据行中 32 位字组的数量。

架构效果

效果。 源 Tile 与控制 Tile 均在完整目标有效区域发布前完成快照;两个输入保持不变,目标填充为 Null,且该操作不产生内存效果。

约束与非法情形

拒绝条件。 标量控制值中 mode > 3、segment_code > 4、boundary > 1 或位 63:32 非零时会被拒绝;不受支持的 dtype 或布局、未定义的输入数据、几何形状不匹配以及目标重叠同样会被拒绝。分段宽度 32 仅适用于 CUBE_M32。

示例演示

具体示例。 在 BFLY 模式下,分段宽度为 16、逐行操作数为 1 时,源行 [1, 2, 3, 4] 为对应字组发布结果 [2, 1, 4, 3]。

NDF 条款

正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。

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

    规范契约

    contract · L1 · accepted

    TSHUF selects raw 32-bit words inside independent power-of-two row segments. Control mode, segment, and boundary fields are checked before publication; SELF and ZERO define out-of-segment behavior without predicates.

    来源与引用
    完整稳定 ID
    PTO-TSHUF-CONTRACT-001
    来源路径
    asl/tile/layout-and-rearrangement/layout/TSHUF.asl
    适用单元
    PTO-TILE-TSHUF
    源 SHA-256
    33ff7ddba75203adb60983616329e8e294b786b70714ea622c0aee936045855c
    条款 SHA-256
    befc6c4d2776fb9147088996b72eb628639b91725d01acb806545d756e5b79a4
    打开精确 canonical source ↗

Evidence index

10 matching entries

Executable evidence3
  • Decoded cell-rearrangement bundles exercise normal control, mandatory and surplus B.IOR, raw control faults, zero-mask no-op, and removed selectors.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-CELL-REARRANGEMENT-SCHEMA
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-CELL-REARRANGE-DECODED-001
    Path
    tests/asl/block/model/dispatch/cell-rearrangement-schema/block-exec-cell-rearrangement-decoded-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-TILE-TPERMUTE, PTO-INST-TILE-TSHUF
    Pass condition
    The selected bundle either publishes the decoded result or reports the specified architectural fault before effects.
    SHA-256
    4991c63e3d0381992b52d28493920d050c24584b2ab3c3dd1c4cfced9032ff1f
    Open exact source ↗ for PTO-AVS-BLOCK-CELL-REARRANGE-DECODED-001
  • TSHUF applies BFLY mode independently to active M32 rows.
    1. surfaceTILE
    2. ownerTSHUF
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TSHUF-BFLY-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TSHUF/tile-exec-tshuf-bfly-001.asl
    Kind / role
    execution
    Requirements
    PTO-TSHUF-CONTRACT-001, PTO-INST-TILE-TSHUF
    Pass condition
    Adjacent lanes in each segment exchange their source words.
    SHA-256
    148eb832de230512d9a9e2a72c2a749ec0335db251b88cd98cfa6ea61373af24
    Open exact source ↗ for PTO-AVS-TILE-TSHUF-BFLY-001
  • canonical TSHUF catalog and ASL contract remain aligned
    1. surfaceTILE
    2. ownerTSHUF
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TSHUF-STATIC-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TSHUF/tile-static-tshuf-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-INST-TILE-TSHUF
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    445a8e6ad22ef7f0cf59785a7fc34aad69588db5e61bcf53be27cc41ffa49f0a
    Open exact source ↗ for PTO-AVS-TILE-TSHUF-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
[
  "TSHUF <bundle operands>"
]
block
[
  "BSTART.SFU TSHUF, DataType",
  "B.DATR Layout (optional)",
  "B.DIM LB0 (optional)",
  "B.IOT source, controls, ->destination",
  "B.IOR shuffle_control",
  "BSTOP"
]
catalog_indices
[
  104
]
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": "TSHUF",
    "family": "TEPL",
    "fault_contract": "ExecuteTileInstruction",
    "function": 22,
    "legality_handler": "TileOperandsLegal_TSHUF",
    "mode": 3,
    "name": "TSHUF",
    "operands": [
      {
        "field": "destination0",
        "role": "destination"
      },
      {
        "field": "source0",
        "role": "source"
      },
      {
        "field": "source1",
        "role": "controls"
      },
      {
        "field": "scalar0",
        "role": "shuffle-control"
      }
    ],
    "restart_contract": "CompleteBundleAtWithAcceptedApplicabilityRules",
    "selector": "0x076",
    "semantic_handler": "TSHUF",
    "state_effects": [
      "operand:destination0:destination",
      "operand:source0:source",
      "operand:source1:controls",
      "operand:scalar0:shuffle-control"
    ]
  }
]
classification
[
  "layout-and-rearrangement",
  "layout"
]
contract
{
  "block_composition": [
    "BSTART.SFU TSHUF, DataType",
    "B.DATR Layout (optional)",
    "B.DIM LB0/LB1/LB2 (optional)",
    "B.IOT source, controls, ->destination",
    "B.IOR shuffle_control",
    "BSTOP"
  ],
  "canonical_assembly": [
    "TSHUF <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 TSHUF, U32; B.DATR Layout; B.IOT source, controls, ->destination; B.IOR a0; BSTOP"
  ],
  "exceptions": [
    "Reserved control encodings reject with Fault_TileLegality before effects.",
    "CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."
  ],
  "field_contracts": {},
  "field_zero_meanings": {},
  "legality": [
    "TSHUF accepts Local CUBE_M16 or CUBE_M32 data and U32 control Tiles with matching geometry.",
    "The control word selects UP, DOWN, BFLY, or IDX; segment and boundary fields are checked before execution.",
    "Raw 32-bit words are shuffled without byte permutation."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "destination0",
      "role": "destination"
    },
    {
      "field": "source0",
      "role": "source"
    },
    {
      "field": "source1",
      "role": "controls"
    },
    {
      "field": "scalar0",
      "role": "shuffle-control"
    }
  ],
  "ordering": [
    "Source and control snapshots precede destination publication."
  ],
  "standalone_opcode": false,
  "state_effects": [
    "Perform independent PTX-style word shuffles for each active CUBE row/group."
  ]
}
depends_on
[
  "PTO-TILE-MODEL-EXECUTION-REARRANGEMENT",
  "PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"
]
engine
SFU
id
PTO-TILE-TSHUF
mnemonic
TSHUF
summary
Shuffle raw 32-bit words across Local CUBE rows with an explicit control GPR.
surface
tile
Open generated traceability record
{
  "classification": [
    "layout-and-rearrangement",
    "layout"
  ],
  "documentation": "docs/tile/layout-and-rearrangement/layout/TSHUF.md",
  "id": "PTO-TILE-TSHUF",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "TSHUF",
    "ndf_clause": "PTO-INST-TILE-TSHUF"
  },
  "mnemonic": "TSHUF",
  "readiness_subjects": [
    "ADR-0103",
    "ADR-0108"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-TSHUF-BFLY-001"
  ],
  "source": "asl/tile/layout-and-rearrangement/layout/TSHUF.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-TSHUF-BFLY-001",
    "PTO-AVS-TILE-TSHUF-STATIC-001"
  ]
}

来源与发布信息

展开 commit、路径、hash、版本和规范所有者
发布
0.58.5 · 候选发布
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
33ff7ddba75203adb60983616329e8e294b786b70714ea622c0aee936045855c
文档 SHA-256
d7826d7701d4d4df9dca8816de08dd163862ed4284c3de0a11e997efb3addbb4

精确所有者