ADR 0082: Tile reduction, expansion, and generation
Context
ADR 0062 recorded a single repository-wide mnemonic audit. This record preserves the accepted decisions for this family as one decision-scoped owner. The former identifiers remain only in legacy_ids and the generated ADR index; current normative meaning is owned by the affected ASL/NDF clauses.
Decisions
Decision 097: TROWSUM reduces each valid row in increasing-column order
TROWSUM is selected by TEPL carrier Mode=2, Function=0 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each source row r in increasing order, it
forms a left fold over source columns 0 through ValidCol-1 in increasing
order, beginning with the selected DataType's positive/all-zero value. Each
profile-defined addition step produces the next accumulator, and the final
accumulator is written to destination element [r,0].
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Integer addition follows the selected
element-width result rule; floating addition, intermediate rounding,
exceptional values, and numeric status follow the selected profile at every
fold step.
LB0=ValidCol is required and nonzero; omitted LB1 gives source
ValidRow=1; omitted LB2 gives source Col=ValidCol; and source physical
rows derive from source capacity, Col, and DataType. The source is row-major,
its complete valid rectangle MUST be defined, and
ValidRow <= Row, ValidCol <= Col. The destination valid shape is exactly
source.ValidRow x 1, its physical column count is exactly one, and its
physical row count derives from destination capacity and DataType and MUST be
at least source.ValidRow. The destination is row-major.
PadValueOrByteId is the only applicable B.DATR field. Omission selects
Null; explicit Zero, Max, and Min define destination physical elements
outside source.ValidRow x 1 using the selected DataType, while Null leaves
them undefined. Explicit nondefault CMode, Sat, Canonicalize, secondary
DataType, RMode, or Layout is illegal. B.IOR and B.IOS are illegal.
The source and destination B.IOT bindings use the same PE_MASK; any PE
subset is legal and mask zero is a strict no-op before source reads,
allocation, or faults. The source persists. Complete descriptor, field, type,
dimension, capacity, mask, allocation, and source-definedness preflight
precedes the source snapshot. Numeric status, all reduction results, padding
definedness, and the destination descriptor publish atomically; rejection has
no architectural effect.
Decision 098: TROWMAX applies typed maximum across each valid row
TROWMAX is selected by TEPL carrier Mode=2, Function=1 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source row, the accumulator starts
with column zero and folds columns one through ValidCol-1 in increasing
order using exactly the typed maximum operation defined for TMAX. The final
value is written to destination element [r,0].
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Signed and
unsigned integers use their respective numeric order. Floating one-NaN,
two-NaN, signaling-NaN status, canonical-NaN, and signed-zero tie behavior is
identical to Decision 067 in ADR-0080, including positive zero for a mixed-sign maximum tie.
Invalid source encodings reject before effects.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination ValidRow x 1 logical shape, one physical destination
column, capacity-derived destination rows, matching DataType, and bounds follow
Decision 097 in ADR-0082. PadValueOrByteId is the only applicable B.DATR field and follows
Decision 097 in ADR-0082 for every physical destination element outside the valid one-column
result. B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any PE subset
is legal and mask zero is a strict no-op before reads, allocation, or faults.
The source persists. Complete preflight precedes the source snapshot. Floating
invalid status, results, padding definedness, and the destination descriptor
publish atomically; rejection has no architectural effect.
Decision 099: TROWMIN applies typed minimum across each valid row
TROWMIN is selected by TEPL carrier Mode=2, Function=2 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source row, the accumulator starts
with column zero and folds columns one through ValidCol-1 in increasing
order using exactly the typed minimum operation defined for TMIN. The final
value is written to destination element [r,0].
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Signed and
unsigned integers use their respective numeric order. Floating one-NaN,
two-NaN, signaling-NaN status, canonical-NaN, and signed-zero tie behavior is
identical to Decision 068 in ADR-0080, including negative zero for a mixed-sign minimum tie.
Invalid source encodings reject before effects.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination ValidRow x 1 logical shape, one physical destination
column, capacity-derived destination rows, matching DataType, and bounds follow
Decision 097 in ADR-0082. PadValueOrByteId is the only applicable B.DATR field and follows
Decision 097 in ADR-0082 for every physical destination element outside the valid one-column
result. B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any PE subset
is legal and mask zero is a strict no-op before reads, allocation, or faults.
The source persists. Complete preflight precedes the source snapshot. Floating
invalid status, results, padding definedness, and the destination descriptor
publish atomically; rejection has no architectural effect.
Decision 100: TROWPROD reduces each valid row with typed multiplication
TROWPROD is selected by TEPL carrier Mode=2, Function=3 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source row, it performs an
increasing-column left fold over columns zero through ValidCol-1. The
accumulator begins with the selected DataType's exact multiplicative identity
and every fold step uses exactly the typed multiplication operation defined for
TMUL; the final value is written to destination element [r,0].
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Integer multiplication follows the selected
element-width overflow rule. Floating multiplication, intermediate rounding,
exceptional values, and numeric status follow the selected profile at every
fold step.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination ValidRow x 1 logical shape, one physical destination
column, capacity-derived destination rows, matching DataType, and bounds follow
Decision 097 in ADR-0082. PadValueOrByteId is the only applicable B.DATR field and follows
Decision 097 in ADR-0082 for every physical destination element outside the valid one-column
result. B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any PE subset
is legal and mask zero is a strict no-op before reads, allocation, or faults.
The source persists. Complete preflight precedes the source snapshot. Numeric
status, results, padding definedness, and the destination descriptor publish
atomically; rejection has no architectural effect.
Decision 101: TROWEXPAND broadcasts one one-column source across destination rows
TROWEXPAND is selected by TEPL carrier Mode=2, Function=4 and executes on
the SFU engine. It reads exactly one Local source Tile and writes one explicit
newly allocated Local destination. The source has
ValidRow == destination.ValidRow, ValidCol == 1, and Col == 1. For every
valid destination element [r,c], the operation copies the source element
[r,0] exactly. There is no second full-shape source operand and no otherwise
unread source payload.
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Expansion copies element encodings without
conversion, rounding, saturation, canonicalization, or numeric-status change.
LB0=destination.ValidCol is required and nonzero; omitted LB1 gives both
source and destination ValidRow=1; omitted LB2 gives destination
Col=ValidCol; destination physical rows derive from capacity, Col, and
DataType. The destination is row-major and the complete one-column source valid
region MUST be defined. PadValueOrByteId is the only applicable B.DATR
field and follows Decision 097 in ADR-0082 over destination elements outside its valid rectangle.
B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any PE subset
is legal and mask zero is a strict no-op before reads, allocation, or faults.
The source persists. Complete preflight precedes the source snapshot. Valid
results, padding definedness, and the destination descriptor publish atomically;
rejection has no architectural effect.
Decision 102: TROWEXPANDADD adds a one-column row broadcast source
TROWEXPANDADD is selected by TEPL carrier Mode=2, Function=5 and executes
on the SFU engine. It reads one full-shape Local source and one Local
one-column broadcast source, then writes one explicit newly allocated Local
destination. For every valid element [r,c], the result is the selected
DataType's addition of source0[r,c] and source1[r,0].
The exact supported DataTypes are FP64, FP32, TF32, HF32, FP16,
BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32, U16, and
U8; all others reject before effects. All operands use the same DataType.
Integer overflow and floating rounding, exceptional values, and numeric status
are exactly the typed addition rules of TADD for each element.
source0 and the destination have identical physical shape, valid shape, and
row-major layout. source1.ValidRow equals their ValidRow, while
source1.ValidCol == source1.Col == 1; its physical rows derive from capacity.
Dimension defaults and bounds follow Decision 082 in ADR-0081. Both source valid regions MUST be
defined. PadValueOrByteId is the only applicable B.DATR field and applies
to every physical destination element outside the valid rectangle. B.IOR
and B.IOS are illegal.
All three B.IOT bindings use the same PE_MASK; partial masks are legal and
mask zero is a strict no-op before reads, allocation, or faults. Both sources
persist. Any otherwise legal source/destination alias uses read-old/write-new
behavior, with both source payloads snapshotted after complete preflight.
Numeric status, valid results, padding definedness, and the destination
descriptor publish atomically; rejection has no architectural effect.
Decision 103: TROWEXPANDSUB subtracts a one-column row broadcast source
TROWEXPANDSUB is selected by TEPL carrier Mode=2, Function=6 and executes
on the SFU engine. It reads one full-shape Local source and one Local
one-column broadcast source, then writes one explicit newly allocated Local
destination. Operand order is fixed: for every valid [r,c], the result is
source0[r,c] - source1[r,0] under the selected DataType. The reverse
subtraction is not an alias or alternate form.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 102 in ADR-0082. Integer overflow and floating rounding, exceptional values, signed
zeros, and numeric status are exactly the typed subtraction rules of TSUB
for each element.
Decision 104: TROWEXPANDMUL multiplies by a one-column row broadcast source
TROWEXPANDMUL is selected by TEPL carrier Mode=2, Function=7 and executes
on the SFU engine. It reads one full-shape Local source and one Local
one-column broadcast source, then writes one explicit newly allocated Local
destination. For every valid [r,c], the result is the selected DataType's
multiplication of source0[r,c] and source1[r,0].
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 102 in ADR-0082. Integer overflow and floating rounding, exceptional values, and
numeric status are exactly the typed multiplication rules of TMUL for each
element.
Decision 105: TROWEXPANDDIV divides by a one-column row broadcast source
TROWEXPANDDIV is selected by TEPL carrier Mode=2, Function=8 and executes
on the SFU engine. It reads one full-shape Local numerator source and one
Local one-column broadcast denominator source, then writes one explicit newly
allocated Local destination. Operand order is fixed: for every valid [r,c],
the result is source0[r,c] / source1[r,0] under the selected DataType.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 102 in ADR-0082. Signed, unsigned, and floating division semantics follow Decision 060 in ADR-0080.
Any selected row whose integer broadcast denominator is zero causes Illegal
Block Exception before source snapshots, allocation publication, status, or
destination effects. Floating positive or negative zero is processed by the
selected floating profile and is not a block-legality failure.
Decision 106: TROWEXPANDMAX takes typed maximum with a row broadcast source
TROWEXPANDMAX is selected by TEPL carrier Mode=2, Function=9 and executes
on the SFU engine. It reads one full-shape Local source and one Local
one-column broadcast source, then writes one explicit newly allocated Local
destination. For every valid [r,c], the result is
max(source0[r,c], source1[r,0]) under the selected DataType.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 102 in ADR-0082. Signed and unsigned ordering and floating one-NaN, two-NaN,
signaling-NaN, canonical-NaN, and signed-zero tie behavior follow Decision 067 in ADR-0080;
mixed-sign zero maximum produces positive zero.
Decision 107: TROWEXPANDMIN takes typed minimum with a row broadcast source
TROWEXPANDMIN is selected by TEPL carrier Mode=2, Function=10 and executes
on the SFU engine. It reads one full-shape Local source and one Local
one-column broadcast source, then writes one explicit newly allocated Local
destination. For every valid [r,c], the result is
min(source0[r,c], source1[r,0]) under the selected DataType.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 102 in ADR-0082. Signed and unsigned ordering and floating one-NaN, two-NaN,
signaling-NaN, canonical-NaN, and signed-zero tie behavior follow Decision 068 in ADR-0080;
mixed-sign zero minimum produces negative zero.
Decision 108: TROWEXPANDEXPDIF exponentiates a typed row-broadcast difference
TROWEXPANDEXPDIF is selected by TEPL carrier Mode=2, Function=11 and
executes on the SFU engine. It reads one full-shape Local source and one
Local one-column broadcast source, then writes one explicit newly allocated
Local destination. For every valid [r,c], it first computes the selected
same-type subtraction difference = source0[r,c] - source1[r,0] and then
writes the selected same-type natural exponential exp(difference). Publishing
the raw subtraction result without the exponential is not conforming.
The exact supported DataTypes are FP64, FP32, TF32, HF32, FP16,
BF16, E4M3, and E5M2; every integer, exponent-only, compact, packed, or
reserved DataType encoding rejects before effects. All operands use the same
DataType. The subtraction stage follows the typed TSUB rules and the
exponential stage follows the typed TEXP rules. Each stage applies the
selected profile's rounding and numeric-status behavior; accumulated status is
part of the single architectural transaction. Signed zeros, infinities, quiet
and signaling NaNs, overflow, underflow, and inexact results follow those two
typed operations in sequence.
Exact source and destination geometry, row-major layout, dimension defaults,
source definedness, PadValueOrByteId applicability, prohibited B.IOR and
B.IOS, equal and zero mask rules, source persistence, legal alias snapshot
behavior, complete preflight, rollback, and atomic publication follow Decision 102 in ADR-0082.
Decision 109: TROWARGMAX returns the lowest column index of each row maximum
TROWARGMAX is selected by TEPL carrier Mode=2, Function=12 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. Each nonempty valid source row is scanned from
column zero through ValidCol-1 in increasing order. Values are compared with
the selected DataType's TMAX rules. The destination element [r,0] is the
U32 encoding of the winning column index. When multiple elements represent
the same maximum, the lowest column index wins.
The exact supported source DataTypes are FP64, FP32, TF32, HF32,
FP16, BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32,
U16, and U8; all others reject before effects. The destination DataType is
always U32 and is independent of the selected source DataType. Signed,
unsigned, and floating ordering, one-NaN and two-NaN behavior, signaling-NaN
invalid status, canonical NaNs, and signed-zero preference follow TMAX.
Selecting a later value because it is the preferred maximum updates the index;
an equal value that does not replace the current maximum preserves the earlier
index.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination ValidRow x 1 logical shape, one physical destination
column, capacity-derived destination rows, and PadValueOrByteId application
to U32 destination padding follow Decision 097 in ADR-0082. B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any subset is
legal and mask zero is a strict no-op before reads, allocation, or faults. The
source persists. Complete preflight precedes the source snapshot. Numeric
status, U32 indices, padding definedness, and the destination descriptor
publish atomically; rejection has no architectural effect.
Decision 110: TROWARGMIN returns the lowest column index of each row minimum
TROWARGMIN is selected by TEPL carrier Mode=2, Function=13 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. Each nonempty valid source row is scanned from
column zero through ValidCol-1 in increasing order. Values are compared with
the selected DataType's TMIN rules. The destination element [r,0] is the
U32 encoding of the winning column index. When multiple elements represent
the same minimum, the lowest column index wins.
The exact supported source DataTypes are FP64, FP32, TF32, HF32,
FP16, BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32,
U16, and U8; all others reject before effects. The destination DataType is
always U32 and is independent of the selected source DataType. Signed,
unsigned, and floating ordering, one-NaN and two-NaN behavior, signaling-NaN
invalid status, canonical NaNs, and signed-zero preference follow TMIN.
Selecting a later value because it is the preferred minimum updates the index;
an equal value that does not replace the current minimum preserves the earlier
index.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination ValidRow x 1 logical shape, one physical destination
column, capacity-derived destination rows, and PadValueOrByteId application
to U32 destination padding follow Decision 097 in ADR-0082. B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any subset is
legal and mask zero is a strict no-op before reads, allocation, or faults. The
source persists. Complete preflight precedes the source snapshot. Numeric
status, U32 indices, padding definedness, and the destination descriptor
publish atomically; rejection has no architectural effect.
Decision 111: TCOLSUM reduces each valid column with typed addition
TCOLSUM is selected by TEPL carrier Mode=2, Function=16 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source column, it performs an
increasing-row left fold over rows zero through ValidRow-1. The accumulator
begins with the selected DataType's exact additive identity and every fold step
uses exactly the typed addition operation defined for TADD; the final value
is written to destination element [0,c]. Tree reduction, scratch storage, and
implementation scheduling do not change this architectural order and are not
instruction operands.
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Integer addition follows the selected
element-width overflow rule. Floating addition, intermediate rounding,
exceptional values, and numeric status follow the selected profile at every
fold step.
LB0=source.ValidCol is required and nonzero; omitted LB1 gives
source.ValidRow=1; omitted LB2 gives source.Col=source.ValidCol; source
physical rows derive from capacity. The source is row-major and its complete
valid rectangle MUST be defined. The destination has ValidRow=1,
ValidCol=source.ValidCol, Col=source.Col, and capacity-derived physical
rows. PadValueOrByteId is the only applicable B.DATR field and applies to
every physical destination element outside that one-row valid rectangle.
B.IOR and B.IOS are illegal.
Source and destination B.IOT bindings use the same PE_MASK; any PE subset
is legal and mask zero is a strict no-op before reads, allocation, or faults.
The source persists. Complete preflight precedes the source snapshot. Numeric
status, results, padding definedness, and the destination descriptor publish
atomically; rejection has no architectural effect.
Decision 112: TCOLMAX reduces each valid column with typed maximum
TCOLMAX is selected by TEPL carrier Mode=2, Function=17 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source column, the accumulator is
initialized from source row zero and rows one through ValidRow-1 are folded
in increasing order with exactly the typed maximum operation defined for
TMAX. The final value is written to destination element [0,c]. The first
element is evaluated exactly once.
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Signed and unsigned ordering and floating
one-NaN, two-NaN, signaling-NaN, canonical-NaN, and signed-zero behavior
follow TMAX; mixed-sign zero maximum produces positive zero.
Source dimensions, defaults, row-major layout, complete source definedness,
destination 1 x source.ValidCol valid shape, destination physical shape,
PadValueOrByteId applicability, prohibited B.IOR/B.IOS, equal and zero
mask rules, source persistence, snapshot behavior, complete preflight,
numeric-status transaction, rollback, and atomic publication follow Decision 111 in ADR-0082.
Decision 129: TFILLPAD materializes padding from one private-GPR scalar
TFILLPAD is selected by TEPL carrier Mode=3, Function=5 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. The destination physical Rows and Col MUST
be at least the source physical Rows and Col, and its ValidRow and
ValidCol MUST be at least the source valid dimensions. Equality is the
ordinary form; larger destination dimensions are the expand form. Separate
TFILLPAD_INPLACE and TFILLPAD_EXPAND encodings are not assigned. A
same-Tile source/result binding is the in-place lowering and retains
read-old/write-new behavior.
For every destination logical coordinate, TFILLPAD copies the corresponding
source element when the coordinate lies inside the source valid rectangle.
Every other element of the destination physical Tile is written with one
typed padding scalar. The destination descriptor retains its configured valid
and physical dimensions; the operation makes the complete physical payload
defined.
The padding scalar is supplied exclusively by B.IOR.RegSrc0, resolved from
the selected PE's private GPR file. Its low selected-DataType element width is
used as the raw scalar encoding and higher GPR bits do not participate.
Omitting B.IOR selects the zero register as the operation-defined default;
an explicitly present all-zero B.IOR is a distinct descriptor but supplies
the same zero value. RegSrc1, RegSrc2, and RegDst are unused and MUST be
zero. Standard Zero, Max, and Min constants and arbitrary custom pad
constants are software-selected scalar encodings; they are not selected by
B.DATR.PadValueOrByteId. PadValueOrByteId is inapplicable to TFILLPAD
and every nonzero encoded value is illegal before effects.
The exact supported DataTypes are FP32, TF32, HF32, FP16, BF16,
E4M3, E5M2, S32, S16, S8, U32, U16, and U8. Every other
DataType rejects before effects. Source and destination use the same selected
DataType. Assigned Layout values govern physical destination placement
without changing the logical copy-and-fill rule; every other explicit
nondefault data attribute is illegal.
B.IOS is illegal. Source and destination B.IOT bindings use the same
PE_MASK; any subset is legal and mask zero is a strict no-op before GPR or
Tile reads, allocation, or faults. The source persists. Complete descriptor,
schema, type, layout, dimension, capacity, GPR-binding, mask, allocation, and
source-valid-region definedness preflight precedes the source and scalar
snapshots. The full physical payload and destination descriptor publish
atomically; rejection has no architectural effect.
Decision 130: TCI generates one typed single-row integer sequence
TCI is selected by TEPL carrier Mode=3, Function=6 and executes on the
SFU engine. It writes one explicit newly allocated Local destination whose
ValidRow MUST equal one and whose ValidCol MUST be nonzero. Physical Col
defaults to ValidCol when LB2 is omitted and MUST be at least
ValidCol; physical rows continue to derive from capacity. Only the first
valid row is part of the generated sequence. Other physical elements remain
padding with Null definedness.
B.IOR.RegSrc0 supplies the start value and RegSrc1 supplies the direction.
Both are read from the selected PE's private GPR file. The low selected
DataType width of RegSrc0 is the raw start encoding and higher bits do not
participate. RegSrc1 MUST contain exactly zero for ascending or one for
descending. RegSrc2 and RegDst are unused and MUST be zero. Omitting
B.IOR supplies start zero and ascending direction. An explicitly present
all-zero B.IOR remains a distinct descriptor but supplies the same values.
For column k in 0..ValidCol-1, ascending TCI writes start+k and
descending TCI writes start-k. Addition and subtraction wrap modulo the
selected element width. Sequence position is the contiguous logical column
index and does not include physical row-stride gaps.
The exact supported DataTypes are S32, S16, U32, and U16; every other
DataType rejects before effects. The destination is row-major. Every explicit
nondefault B.DATR field is illegal, including PadValueOrByteId, and
B.IOS is illegal.
The destination B.IOT may use any PE_MASK; mask zero is a strict no-op
before GPR reads, allocation, or faults. Complete schema, type, dimension,
capacity, GPR-value, mask, and allocation preflight precedes the GPR
snapshots. The valid sequence and destination descriptor publish atomically;
rejection has no architectural effect.
Decision 131: TTRI generates a typed triangular matrix
TTRI is selected by TEPL carrier Mode=3, Function=7 and executes on the
SFU engine. It writes one explicit newly allocated Local destination with
nonzero ValidRow and ValidCol. Physical Col defaults from LB2 when it
is omitted and MUST be at least ValidCol; physical rows derive from the
allocated capacity. The destination uses row-major layout.
B.IOR.RegSrc0 supplies a signed XLEN diagonal displacement in the inclusive
range -65535..65535. RegSrc1 supplies the orientation and MUST contain
exactly zero for lower-triangular generation or one for upper-triangular
generation. RegSrc2 and RegDst are unused and MUST be zero. Omitting
B.IOR supplies diagonal zero and lower orientation. An explicitly present
all-zero B.IOR remains a distinct descriptor but supplies the same values.
For every valid logical coordinate [r,c], lower-triangular generation writes
typed one exactly when c <= r + diagonal and typed zero otherwise.
Upper-triangular generation writes typed one exactly when
c >= r + diagonal and typed zero otherwise. The signed boundary comparison
does not wrap at the Tile edges; extreme diagonal values therefore naturally
produce all-zero or all-one valid regions. Elements outside the valid
rectangle remain padding with Null definedness.
The exact supported DataTypes are FP32, FP16, S32, S16, U32, and
U16; every other DataType rejects before effects. Floating destinations use
the selected format's exact positive-zero and positive-one encodings. Every
explicit nondefault B.DATR field is illegal, including
PadValueOrByteId, and B.IOS is illegal.
The destination B.IOT may use any PE_MASK; mask zero is a strict no-op
before GPR reads, allocation, or faults. Complete schema, type, dimension,
capacity, GPR-value, mask, and allocation preflight precedes generation. The
valid payload and destination descriptor publish atomically; rejection has no
architectural effect.
Decision 132: THISTOGRAM produces U32 cumulative byte histograms
THISTOGRAM is selected by TEPL carrier Mode=3, Function=8 and executes on
the SFU engine. It reads one Local source Tile and one Local prefix-filter
Tile and writes one explicit newly allocated Local destination. The source
DataType is selected by BSTART and MUST be U16 or U32. The destination
DataType is fixed to U32. B.DATR is therefore mandatory and MUST encode
destination U32; an omitted B.DATR retains its reset FP64 DataType and
is illegal. Its PadValueOrByteId field is reinterpreted as ByteId values
zero through three. Every other nondefault B.DATR field is illegal.
The destination has ValidRow = source.ValidRow and ValidCol = 256, uses
row-major layout, has physical Col >= 256, and has enough capacity for all
valid output rows. For each valid source row, the operation forms 256 exact
counts and writes their inclusive prefix sum: destination [row,k] is the
number of accepted source elements in that row whose selected byte is less
than or equal to k. Because source ValidCol is bounded by the architectural
dimension encoding, each per-row count fits in U32 without overflow.
Elements outside the destination valid rectangle remain padding with Null
definedness.
For a U16 source, ByteId=1 selects the high byte without filtering and
ByteId=0 selects the low byte after requiring the element's high byte to
equal filter element [row,0]. Values two and three are illegal. The filter
Tile has DataType U8; for ByteId=0 it has ValidRow >= source.ValidRow
and ValidCol >= 1 and every consumed [row,0] element is defined.
For a U32 source, ByteId=3 selects the highest byte without filtering.
ByteId=2, one, and zero respectively require one, two, and three defined
global prefix bytes from filter elements [0,0], [1,0], and [2,0] and
select the next lower source byte only when all required higher bytes match.
The filter Tile has DataType U8, ValidCol >= 1, and at least the required
number of valid rows. Its physical row stride and unused columns do not add
semantic filter inputs.
The filter binding remains structurally present for the two unfiltered modes,
but its payload and shape are not read in those modes. Source and filter
Tiles persist. Source and destination use row-major layout; filter accesses
use its assigned logical layout. B.IOS is illegal. All participating
B.IOT bindings use the same PE_MASK; any subset is legal and mask zero is
a strict no-op before Tile reads, allocation, or faults. Complete schema,
type, shape, capacity, byte-selector, mask, allocation, and consumed-source
definedness preflight precedes source snapshots. The U32 cumulative payload
and destination descriptor publish atomically; rejection has no architectural
effect.
Decision 125: TCONCAT is fixed horizontal concatenation along columns
TCONCAT is selected by TEPL carrier Mode=3, Function=0 and executes on the
SFU engine. It reads two ordered Local source Tiles and writes one explicit
newly allocated Local destination. It has no architectural axis operand. The
left source precedes the right source along the column dimension.
The two sources and destination MUST use the same DataType and row-major
layout. Both sources MUST have the same nonzero ValidRow. The destination
has that same ValidRow and has ValidCol = left.ValidCol + right.ValidCol.
For every valid row, destination columns below left.ValidCol are copied from
the left source; following columns are copied from the right source in order.
Vertical row concatenation is not an assigned TCONCAT form.
TCONCAT supports every assigned Tile DataType except HiF4X2. The globally
reserved DataType encodings and HiF4X2 MUST raise Illegal Block Exception
before source reads, destination allocation, or any other architectural
effect. This is the common MOVE24 type domain used by representation-
preserving Tile rearrangement operations.
B.DATR.Layout retains its physical-layout-transform meaning and MUST NOT be
interpreted as a concatenation-axis selector. No indexed or variable-per-row
concatenation form is part of this instruction. The complete valid regions of
both sources are required defined before effects. Both source payloads are
snapshotted before destination writes, and the destination descriptor and
contents publish atomically after complete preflight. The sources persist;
rejection has no architectural effect.
Decision 115: TCOLEXPAND broadcasts one one-row source down destination columns
TCOLEXPAND is selected by TEPL carrier Mode=2, Function=20 and executes on
the SFU engine. It reads exactly one Local source Tile representing one row
and writes one explicit newly allocated Local destination. For every valid
destination element [r,c], the operation copies source element [0,c]
bit-for-bit. There is no second full-shape source operand and no numeric
transformation.
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Copying does not update numeric status.
LB0=destination.ValidCol is required and nonzero; omitted LB1 gives
destination.ValidRow=1; omitted LB2 gives
destination.Col=destination.ValidCol; destination physical rows derive from
capacity. The source has ValidRow=1, ValidCol=destination.ValidCol, and
Col=destination.Col; its physical rows also derive from capacity. Source and
destination are row-major and the complete valid source row MUST be defined.
PadValueOrByteId is the only applicable B.DATR field and applies to every
physical destination element outside its valid rectangle. B.IOR and B.IOS
are illegal. Source and destination B.IOT bindings use the same PE_MASK;
any PE subset is legal and mask zero is a strict no-op before reads,
allocation, or faults. The source persists. Complete preflight precedes the
source snapshot. Results, padding definedness, and the destination descriptor
publish atomically; rejection has no architectural effect.
Decision 116: TCOLEXPANDADD adds a one-row column broadcast source
TCOLEXPANDADD is selected by TEPL carrier Mode=2, Function=21 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
For every valid element [r,c], the result is the selected DataType's addition
of source0[r,c] and source1[0,c].
The exact supported DataTypes are FP64, FP32, TF32, HF32, FP16,
BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32, U16, and
U8; all others reject before effects. All operands use the same DataType.
Integer overflow and floating rounding, exceptional values, and numeric status
are exactly the typed addition rules of TADD for each element.
source0 and the destination have identical physical shape, valid shape, and
row-major layout. source1.ValidRow == 1, while source1.ValidCol and
source1.Col equal the corresponding destination values; its physical rows
derive from capacity. Dimension defaults and bounds follow Decision 082 in ADR-0081. Both
source valid regions MUST be defined. PadValueOrByteId is the only applicable
B.DATR field and applies to every physical destination element outside the
valid rectangle. B.IOR and B.IOS are illegal.
All three B.IOT bindings use the same PE_MASK; partial masks are legal and
mask zero is a strict no-op before reads, allocation, or faults. Both sources
persist. Any otherwise legal source/destination alias uses read-old/write-new
behavior, with both source payloads snapshotted after complete preflight.
Numeric status, valid results, padding definedness, and the destination
descriptor publish atomically; rejection has no architectural effect.
Decision 117: TCOLEXPANDSUB subtracts a one-row column broadcast source
TCOLEXPANDSUB is selected by TEPL carrier Mode=2, Function=22 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
Operand order is fixed: for every valid [r,c], the result is
source0[r,c] - source1[0,c] under the selected DataType. The reverse
subtraction is not an alias or alternate form.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 116 in ADR-0082. Integer overflow and floating rounding, exceptional values, signed
zeros, and numeric status are exactly the typed subtraction rules of TSUB
for each element.
Decision 118: TCOLEXPANDMUL multiplies by a one-row column broadcast source
TCOLEXPANDMUL is selected by TEPL carrier Mode=2, Function=23 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
For every valid [r,c], it multiplies source0[r,c] by source1[0,c] under
the selected DataType.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 116 in ADR-0082. Integer overflow and floating rounding, exceptional values, signed
zeros, and numeric status are exactly the typed multiplication rules of
TMUL for each element.
Decision 119: TCOLEXPANDDIV divides by a one-row column broadcast source
TCOLEXPANDDIV is selected by TEPL carrier Mode=2, Function=24 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
Operand order is fixed: for every valid [r,c], the result is
source0[r,c] / source1[0,c] under the selected DataType. The reverse quotient
is not an alias or alternate form.
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 116 in ADR-0082. Signed, unsigned, and floating division and numeric status follow
Decision 060 in ADR-0080. A zero integer broadcast element causes an Illegal Block Exception
before effects; floating positive and negative zero are legal and follow the
selected floating profile.
Decision 120: TCOLEXPANDMAX takes maximum with a one-row broadcast source
TCOLEXPANDMAX is selected by TEPL carrier Mode=2, Function=25 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
For every valid [r,c], the result is exactly the typed maximum of
source0[r,c] and source1[0,c].
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 116 in ADR-0082. Signed and unsigned ordering and floating NaN, signaling-NaN,
canonical-NaN, signed-zero, and numeric-status behavior follow TMAX exactly;
mixed-sign zero maximum produces positive zero.
Decision 121: TCOLEXPANDMIN takes minimum with a one-row broadcast source
TCOLEXPANDMIN is selected by TEPL carrier Mode=2, Function=26 and executes
on the SFU engine. It reads one full-shape Local source and one Local one-row
broadcast source, then writes one explicit newly allocated Local destination.
For every valid [r,c], the result is exactly the typed minimum of
source0[r,c] and source1[0,c].
The supported DataTypes, exact source and destination geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR/B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, and atomic publication follow
Decision 116 in ADR-0082. Signed and unsigned ordering and floating NaN, signaling-NaN,
canonical-NaN, signed-zero, and numeric-status behavior follow TMIN exactly;
mixed-sign zero minimum produces negative zero.
Decision 122: TCOLEXPANDEXPDIF exponentiates a typed column-broadcast difference
TCOLEXPANDEXPDIF is selected by TEPL carrier Mode=2, Function=27 and
executes on the SFU engine. It reads one full-shape Local source and one
Local one-row broadcast source, then writes one explicit newly allocated
Local destination. For every valid [r,c], it first computes the selected
same-type subtraction difference = source0[r,c] - source1[0,c] and then
writes the selected same-type natural exponential exp(difference). Publishing
the raw subtraction result without the exponential is not conforming.
The exact supported DataTypes are FP64, FP32, TF32, HF32, FP16,
BF16, E4M3, and E5M2; every integer, exponent-only, compact, packed, or
reserved DataType encoding rejects before effects. All operands use the same
DataType. The subtraction stage follows the typed TSUB rules and the
exponential stage follows the typed TEXP rules. Each stage applies the
selected profile's rounding and numeric-status behavior; accumulated status is
part of the single architectural transaction. Signed zeros, infinities, quiet
and signaling NaNs, overflow, underflow, and inexact results follow those two
typed operations in sequence.
Exact source and destination geometry, one-row broadcast geometry, row-major
layout, dimension defaults, source definedness, PadValueOrByteId
applicability, prohibited B.IOR and B.IOS, equal and zero mask rules, source
persistence, legal alias snapshot behavior, complete preflight, rollback, and
atomic publication follow Decision 116 in ADR-0082.
Decision 123: TCOLARGMAX returns the lowest row index of each column maximum
TCOLARGMAX is selected by TEPL carrier Mode=2, Function=28 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. Each nonempty valid source column is scanned from
row zero through ValidRow-1 in increasing order. Values are compared with
the selected DataType's TMAX rules. Destination element [0,c] is the U32
encoding of the winning row index. When multiple elements represent the same
maximum, the lowest row index wins.
The exact supported source DataTypes are FP64, FP32, TF32, HF32,
FP16, BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32,
U16, and U8; all others reject before effects. The destination DataType is
always U32 and is independent of the selected source DataType. Signed,
unsigned, and floating ordering, one-NaN and two-NaN behavior, signaling-NaN
invalid status, canonical NaNs, and signed-zero preference follow TMAX.
Selecting a later value because it is the preferred maximum updates the index;
an equal value that does not replace the current maximum preserves the earlier
index.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination 1 x source.ValidCol logical shape, destination
physical Col=source.Col, capacity-derived destination rows, and
PadValueOrByteId application to U32 destination padding follow Decision 111 in ADR-0082.
B.IOR and B.IOS are illegal. Source and destination B.IOT bindings use
the same PE_MASK; any subset is legal and mask zero is a strict no-op before
reads, allocation, or faults. The source persists. Complete preflight precedes
the source snapshot. Numeric status, U32 indices, padding definedness, and the
destination descriptor publish atomically; rejection has no architectural
effect.
Decision 124: TCOLARGMIN returns the lowest row index of each column minimum
TCOLARGMIN is selected by TEPL carrier Mode=2, Function=29 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. Each nonempty valid source column is scanned from
row zero through ValidRow-1 in increasing order. Values are compared with
the selected DataType's TMIN rules. Destination element [0,c] is the U32
encoding of the winning row index. When multiple elements represent the same
minimum, the lowest row index wins.
The exact supported source DataTypes are FP64, FP32, TF32, HF32,
FP16, BF16, E4M3, E5M2, S64, S32, S16, S8, U64, U32,
U16, and U8; all others reject before effects. The destination DataType is
always U32 and is independent of the selected source DataType. Signed,
unsigned, and floating ordering, one-NaN and two-NaN behavior, signaling-NaN
invalid status, canonical NaNs, and signed-zero preference follow TMIN.
Selecting a later value because it is the preferred minimum updates the index;
an equal value that does not replace the current minimum preserves the earlier
index.
Source dimensions, defaults, row-major layout, complete valid-region
definedness, destination 1 x source.ValidCol logical shape, destination
physical Col=source.Col, capacity-derived destination rows, and
PadValueOrByteId application to U32 destination padding follow Decision 111 in ADR-0082.
B.IOR and B.IOS are illegal. Source and destination B.IOT bindings use
the same PE_MASK; any subset is legal and mask zero is a strict no-op before
reads, allocation, or faults. The source persists. Complete preflight precedes
the source snapshot. Numeric status, U32 indices, padding definedness, and the
destination descriptor publish atomically; rejection has no architectural
effect.
Decision 113: TCOLMIN reduces each valid column with typed minimum
TCOLMIN is selected by TEPL carrier Mode=2, Function=18 and executes on the
SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source column, the accumulator is
initialized from source row zero and rows one through ValidRow-1 are folded
in increasing order with exactly the typed minimum operation defined for
TMIN. The final value is written to destination element [0,c]. The first
element is evaluated exactly once.
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Signed and unsigned ordering and floating
one-NaN, two-NaN, signaling-NaN, canonical-NaN, and signed-zero behavior
follow TMIN; mixed-sign zero minimum produces negative zero.
Source dimensions, defaults, row-major layout, complete source definedness,
destination 1 x source.ValidCol valid shape, destination physical shape,
PadValueOrByteId applicability, prohibited B.IOR/B.IOS, equal and zero
mask rules, source persistence, snapshot behavior, complete preflight,
numeric-status transaction, rollback, and atomic publication follow Decision 111 in ADR-0082.
Decision 114: TCOLPROD reduces each valid column with typed multiplication
TCOLPROD is selected by TEPL carrier Mode=2, Function=19 and executes on
the SFU engine. It reads one Local source Tile and writes one explicit newly
allocated Local destination. For each valid source column, it performs an
increasing-row left fold over rows zero through ValidRow-1. The accumulator
begins with the selected DataType's exact multiplicative identity and every
fold step uses exactly the typed multiplication operation defined for TMUL;
the final value is written to destination element [0,c].
The exact supported source and destination DataTypes are FP64, FP32,
TF32, HF32, FP16, BF16, E4M3, E5M2, S64, S32, S16, S8,
U64, U32, U16, and U8; all others reject before effects. Source and
destination use the same DataType. Integer multiplication follows the selected
element-width overflow rule. Floating multiplication, intermediate rounding,
exceptional values, and numeric status follow the selected profile at every
fold step.
Source dimensions, defaults, row-major layout, complete source definedness,
destination 1 x source.ValidCol valid shape, destination physical shape,
PadValueOrByteId applicability, prohibited B.IOR/B.IOS, equal and zero
mask rules, source persistence, snapshot behavior, complete preflight,
numeric-status transaction, rollback, and atomic publication follow Decision 111 in ADR-0082.