Baseline commit
564ac2d
Affected NDF clause IDs
Architecture and block contracts:
PTO-CUBE-CELL-STATE-001
PTO-ARCH-TILE-INSTRUCTION-CLASS-001
PTO-ARCH-TILE-EXECUTION-ENGINE-001
PTO-ARCH-TEPL-ALIAS-001
PTO-B-IOT-STREAM-001
PTO-B-IOR-BINDING-001
Contracts removed:
PTO-TPARTADD-CONTRACT-001
PTO-TPARTMUL-CONTRACT-001
PTO-TPARTMAX-CONTRACT-001
PTO-TPARTMIN-CONTRACT-001
PTO-TFILLPAD-CONTRACT-001
PTO-TTRANS-CONTRACT-001
Existing element-wise contracts extended to Local CUBE_M32 and
CUBE_M16:
PTO-TADD-CONTRACT-001, PTO-TAND-CONTRACT-001,
PTO-TDIV-CONTRACT-001, PTO-TMAX-CONTRACT-001,
PTO-TMIN-CONTRACT-001, PTO-TMUL-CONTRACT-001,
PTO-TOR-CONTRACT-001, PTO-TREM-CONTRACT-001,
PTO-TSHL-CONTRACT-001, PTO-TSHR-CONTRACT-001,
PTO-TSUB-CONTRACT-001, PTO-TXOR-CONTRACT-001
PTO-TABS-CONTRACT-001, PTO-TEXP-CONTRACT-001,
PTO-TLOG-CONTRACT-001, PTO-TNEG-CONTRACT-001,
PTO-TNOT-CONTRACT-001, PTO-TRECIP-CONTRACT-001,
PTO-TRELU-CONTRACT-001, PTO-TRSQRT-CONTRACT-001,
PTO-TSQRT-CONTRACT-001
PTO-TADDS-CONTRACT-001, PTO-TANDS-CONTRACT-001,
PTO-TDIVS-CONTRACT-001, PTO-TMAXS-CONTRACT-001,
PTO-TMINS-CONTRACT-001, PTO-TMULS-CONTRACT-001,
PTO-TORS-CONTRACT-001, PTO-TREMS-CONTRACT-001,
PTO-TSHLS-CONTRACT-001, PTO-TSHRS-CONTRACT-001,
PTO-TSUBS-CONTRACT-001, PTO-TXORS-CONTRACT-001
PTO-TFMA-CONTRACT-001
Proposed new contracts:
PTO-TPERMUTE-CONTRACT-001
PTO-TSHUF-CONTRACT-001
PTO-TPACK-CONTRACT-001
PTO-TUNPACK-CONTRACT-001
Normative delta
Remove TPARTADD, TPARTMUL, TPARTMAX, TPARTMIN, TFILLPAD, and
TTRANS completely from the accepted PTO Tile ISA. Their selectors 0x065,
0x06E, and 0x071..0x074 become reserved-illegal with no compatibility
aliases. Partial-union behavior lowers to ordinary copy/subview,
element-wise, and insertion operations; logical padded initialization lowers
to a larger valid destination plus expansion/insertion; physical storage
padding remains undefined. This issue does not add a transpose replacement.
Make the 34 listed ordinary element-wise operations deliberately accept Local
CUBE_M32 and CUBE_M16 wherever their existing dtype and numeric contracts
otherwise permit. All operands use one matching CUBE layout, logical-coordinate
value semantics are unchanged, valid results become defined, and storage
padding remains undefined. TCMP, TCMPS, TSEL, TSELS, TCVT,
CUBE_N8, Shared CUBE, mixed-layout operands, implicit M16/M32 conversion,
and row/column reduction remain outside this issue.
Add four SFU operations in the existing TEPL Mode-3 carrier:
TPERMUTE: Function 21, selector 0x075; per output byte, select from the
concatenated same-row bytes of two data Tiles under a U8 index Tile. M32
accepts indices 0..7; M16 accepts 0..15. Invalid inspected indices raise
Fault_TileLegality before effects.
TSHUF: Function 22, selector 0x076; shuffle raw 32-bit words with a
per-word U32 control Tile. Modes are UP, DOWN, BFLY, and IDX;
segment widths are 2/4/8/16 and additionally 32 for M32; out-of-segment or
inactive candidates select SELF or ZERO. M32 is one 32-lane group; M16
is two independent 16-lane word groups.
TPACK: Function 23, selector 0x077; on U32 CUBE Tiles, concatenate
src0_bytes low bytes of source0 below src1_bytes low bytes of source1,
zeroing unused upper bits. Each count is 1..3 and their sum is at most 4.
TUNPACK: Function 24, selector 0x078; on U32 CUBE Tiles, extract one
byte-granular field at byte_offset with byte_count, zero-extend it, and
write one destination. Offset is 0..3, count is 1..4, and their sum is at
most 4.
TSHUF, TPACK, and TUNPACK each consume exactly one explicit B.IOR
source GPR for a nonzero participating PE mode. The zero-extended low 32-bit
configuration uses one parameter per byte:
TSHUF: [7:0] mode, [15:8] segment_code, [23:16] boundary,
[31:24] zero.
TPACK: [7:0] src0_bytes, [15:8] src1_bytes, [31:16] zero.
TUNPACK: [7:0] byte_offset, [15:8] byte_count, [31:16] zero.
High XLEN bits and reserved bytes must be zero. Invalid configuration content
raises Fault_TileLegality; missing or surplus required scalar structure for a
participating bundle raises the existing bundle-control fault. B.DATR keeps
its current meanings and is not repurposed.
Destinations are newly allocated through B.IOT destination hands, so decoded
destination/source aliasing is not expressible. Same-binding read-only sources
may repeat. For TPERMUTE, the second-binding index source must differ from
both data sources. Only index/control/word units contributing to the valid
destination region are inspected; padding-only units remain unobserved.
Defaults and intentionally unspecified behavior
PEMode=000 retains the current strict no-op behavior before placement,
schema, allocation, operand, or configuration checks. Command-stream errors
detected while commands are issued remain faults.
- A participating
TSHUF, TPACK, or TUNPACK has no omitted-control
default; one B.IOR input is required. Explicit zero-register binding is
distinct from omission.
TSHUF control-word bits above bit 4 are ignored. Padding-only index and
control units are not inspected.
- Latency, issue width, port mapping, physical shuffle topology, and backend
performance subsets remain implementation-defined without narrowing the
portable results.
- No GM transpose, ND2DN/DN2ND conversion, row/column reduction change,
predicate result, numerical conversion, sign extension, or cross-word M16
exchange is introduced.
Compatibility and toolchain impact
This is an assembly and intrinsic compatibility break for the six removed
mnemonics. Assemblers, disassemblers, decoders, catalogs, documentation,
traceability, and tests must remove them and reject their former selectors.
The four additions require assembler/disassembler spellings, compiler
intrinsics and control-word construction, emulator support, and RTL adoption.
Those dependent implementations are separate follow-ups and do not block this
PTO-ASL issue from closing. No ABI or memory-format change is introduced.
The PTO-ASL PR must update authoritative mnemonic/model owners, generated
Markdown, canonical catalogs, decoder witnesses, independent AVS points,
traceability, and registered release inputs together.
Open questions
None. Architecture-visible behavior, encodings, operands, defaults, faults,
protected behavior, and issue closure are fixed before implementation.
Verification evidence
- Decoded rejection of all six removed mnemonics/selectors with no stale
catalog, page, AVS, or traceability surface.
- Representative decoded M32 and M16 success for every changed element-wise
family, plus representative CUBE_N8 and mixed-layout rejection.
TPERMUTE: M32 4-of-8 and M16 8-of-16 selection, both data sources,
same-binding repeated sources, partial tails, ignored padding indices, and
invalid-index precise no-effect fault.
TSHUF: every mode, M32 and independent M16 groups, each segment boundary,
SELF/ZERO, valid-row tails, ignored padding controls, config reserved
values, and required-B.IOR structure.
TPACK: 16+16, 8+24, 24+8, 8+8, both M16 words, same-source input, reserved
bytes, and invalid/oversized counts.
TUNPACK: low/middle/high/whole-word extraction, zero extension, both M16
words, reserved bytes, and invalid offset/count.
- Zero
PEMode strict no-op coverage for each new operation.
- Final exact candidate passes
make pr-check, make repo-check, and
git diff --check under the repository V1 lane.
Release impact
Required - normative or release-evidence change
Baseline commit
564ac2d
Affected NDF clause IDs
Architecture and block contracts:
PTO-CUBE-CELL-STATE-001PTO-ARCH-TILE-INSTRUCTION-CLASS-001PTO-ARCH-TILE-EXECUTION-ENGINE-001PTO-ARCH-TEPL-ALIAS-001PTO-B-IOT-STREAM-001PTO-B-IOR-BINDING-001Contracts removed:
PTO-TPARTADD-CONTRACT-001PTO-TPARTMUL-CONTRACT-001PTO-TPARTMAX-CONTRACT-001PTO-TPARTMIN-CONTRACT-001PTO-TFILLPAD-CONTRACT-001PTO-TTRANS-CONTRACT-001Existing element-wise contracts extended to Local
CUBE_M32andCUBE_M16:PTO-TADD-CONTRACT-001,PTO-TAND-CONTRACT-001,PTO-TDIV-CONTRACT-001,PTO-TMAX-CONTRACT-001,PTO-TMIN-CONTRACT-001,PTO-TMUL-CONTRACT-001,PTO-TOR-CONTRACT-001,PTO-TREM-CONTRACT-001,PTO-TSHL-CONTRACT-001,PTO-TSHR-CONTRACT-001,PTO-TSUB-CONTRACT-001,PTO-TXOR-CONTRACT-001PTO-TABS-CONTRACT-001,PTO-TEXP-CONTRACT-001,PTO-TLOG-CONTRACT-001,PTO-TNEG-CONTRACT-001,PTO-TNOT-CONTRACT-001,PTO-TRECIP-CONTRACT-001,PTO-TRELU-CONTRACT-001,PTO-TRSQRT-CONTRACT-001,PTO-TSQRT-CONTRACT-001PTO-TADDS-CONTRACT-001,PTO-TANDS-CONTRACT-001,PTO-TDIVS-CONTRACT-001,PTO-TMAXS-CONTRACT-001,PTO-TMINS-CONTRACT-001,PTO-TMULS-CONTRACT-001,PTO-TORS-CONTRACT-001,PTO-TREMS-CONTRACT-001,PTO-TSHLS-CONTRACT-001,PTO-TSHRS-CONTRACT-001,PTO-TSUBS-CONTRACT-001,PTO-TXORS-CONTRACT-001PTO-TFMA-CONTRACT-001Proposed new contracts:
PTO-TPERMUTE-CONTRACT-001PTO-TSHUF-CONTRACT-001PTO-TPACK-CONTRACT-001PTO-TUNPACK-CONTRACT-001Normative delta
Remove
TPARTADD,TPARTMUL,TPARTMAX,TPARTMIN,TFILLPAD, andTTRANScompletely from the accepted PTO Tile ISA. Their selectors0x065,0x06E, and0x071..0x074become reserved-illegal with no compatibilityaliases. Partial-union behavior lowers to ordinary copy/subview,
element-wise, and insertion operations; logical padded initialization lowers
to a larger valid destination plus expansion/insertion; physical storage
padding remains undefined. This issue does not add a transpose replacement.
Make the 34 listed ordinary element-wise operations deliberately accept Local
CUBE_M32andCUBE_M16wherever their existing dtype and numeric contractsotherwise permit. All operands use one matching CUBE layout, logical-coordinate
value semantics are unchanged, valid results become defined, and storage
padding remains undefined.
TCMP,TCMPS,TSEL,TSELS,TCVT,CUBE_N8, Shared CUBE, mixed-layout operands, implicit M16/M32 conversion,and row/column reduction remain outside this issue.
Add four SFU operations in the existing TEPL Mode-3 carrier:
TPERMUTE: Function 21, selector0x075; per output byte, select from theconcatenated same-row bytes of two data Tiles under a
U8index Tile. M32accepts indices
0..7; M16 accepts0..15. Invalid inspected indices raiseFault_TileLegalitybefore effects.TSHUF: Function 22, selector0x076; shuffle raw 32-bit words with aper-word
U32control Tile. Modes areUP,DOWN,BFLY, andIDX;segment widths are 2/4/8/16 and additionally 32 for M32; out-of-segment or
inactive candidates select
SELForZERO. M32 is one 32-lane group; M16is two independent 16-lane word groups.
TPACK: Function 23, selector0x077; onU32CUBE Tiles, concatenatesrc0_byteslow bytes of source0 belowsrc1_byteslow bytes of source1,zeroing unused upper bits. Each count is
1..3and their sum is at most 4.TUNPACK: Function 24, selector0x078; onU32CUBE Tiles, extract onebyte-granular field at
byte_offsetwithbyte_count, zero-extend it, andwrite one destination. Offset is
0..3, count is1..4, and their sum is atmost 4.
TSHUF,TPACK, andTUNPACKeach consume exactly one explicitB.IORsource GPR for a nonzero participating PE mode. The zero-extended low 32-bit
configuration uses one parameter per byte:
TSHUF:[7:0] mode,[15:8] segment_code,[23:16] boundary,[31:24] zero.TPACK:[7:0] src0_bytes,[15:8] src1_bytes,[31:16] zero.TUNPACK:[7:0] byte_offset,[15:8] byte_count,[31:16] zero.High XLEN bits and reserved bytes must be zero. Invalid configuration content
raises
Fault_TileLegality; missing or surplus required scalar structure for aparticipating bundle raises the existing bundle-control fault.
B.DATRkeepsits current meanings and is not repurposed.
Destinations are newly allocated through
B.IOTdestination hands, so decodeddestination/source aliasing is not expressible. Same-binding read-only sources
may repeat. For
TPERMUTE, the second-binding index source must differ fromboth data sources. Only index/control/word units contributing to the valid
destination region are inspected; padding-only units remain unobserved.
Defaults and intentionally unspecified behavior
PEMode=000retains the current strict no-op behavior before placement,schema, allocation, operand, or configuration checks. Command-stream errors
detected while commands are issued remain faults.
TSHUF,TPACK, orTUNPACKhas no omitted-controldefault; one
B.IORinput is required. Explicit zero-register binding isdistinct from omission.
TSHUFcontrol-word bits above bit 4 are ignored. Padding-only index andcontrol units are not inspected.
performance subsets remain implementation-defined without narrowing the
portable results.
predicate result, numerical conversion, sign extension, or cross-word M16
exchange is introduced.
Compatibility and toolchain impact
This is an assembly and intrinsic compatibility break for the six removed
mnemonics. Assemblers, disassemblers, decoders, catalogs, documentation,
traceability, and tests must remove them and reject their former selectors.
The four additions require assembler/disassembler spellings, compiler
intrinsics and control-word construction, emulator support, and RTL adoption.
Those dependent implementations are separate follow-ups and do not block this
PTO-ASL issue from closing. No ABI or memory-format change is introduced.
The PTO-ASL PR must update authoritative mnemonic/model owners, generated
Markdown, canonical catalogs, decoder witnesses, independent AVS points,
traceability, and registered release inputs together.
Open questions
None. Architecture-visible behavior, encodings, operands, defaults, faults,
protected behavior, and issue closure are fixed before implementation.
Verification evidence
catalog, page, AVS, or traceability surface.
family, plus representative
CUBE_N8and mixed-layout rejection.TPERMUTE: M32 4-of-8 and M16 8-of-16 selection, both data sources,same-binding repeated sources, partial tails, ignored padding indices, and
invalid-index precise no-effect fault.
TSHUF: every mode, M32 and independent M16 groups, each segment boundary,SELF/ZERO, valid-row tails, ignored padding controls, config reservedvalues, and required-
B.IORstructure.TPACK: 16+16, 8+24, 24+8, 8+8, both M16 words, same-source input, reservedbytes, and invalid/oversized counts.
TUNPACK: low/middle/high/whole-word extraction, zero extension, both M16words, reserved bytes, and invalid offset/count.
PEModestrict no-op coverage for each new operation.make pr-check,make repo-check, andgit diff --checkunder the repository V1 lane.Release impact
Required - normative or release-evidence change