Skip to content

TileOP: extend per-dimension B.DIM sweep to all four-branch interfaces - #83

Merged
VV0003 merged 1 commit into
linxfrom
codex/per-dim-sweep-extended
Sep 7, 2026
Merged

TileOP: extend per-dimension B.DIM sweep to all four-branch interfaces#83
VV0003 merged 1 commit into
linxfrom
codex/per-dim-sweep-extended

Conversation

@VV0003

@VV0003 VV0003 commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #82, which was merged before this commit landed on its branch.

The first sweep fixture only covered 48 of the 97 four-branch B.DIM interfaces. This adds the missing 49 (SS/SD/DS/DD each):

  • TPARTADD/MAX/MIN/MUL, TSEL, TFMA, TFILLPAD, TEXTRACT, TINSERT, TEXPANDS, TDEQUANT
  • TROWEXPAND* / TROWARGMAX/MIN (one-column broadcast sources)
  • TCOLEXPAND* / TCOLARGMAX/MIN (one-row broadcast sources)
  • TGATHER / TSCATTER (offset-tile driven dispatch)
  • Shared TSTORE (Shared produced inline via TMOV_L2S_INSERT — Shared values never cross the C++ ABI; passing SharedTile as a noinline function argument hits the known setRegClass assertion, reproducible on baseline)

Total: 101 four-combination instantiations, zero compile errors, verified against the merged linx head (67d47ab). Disassembly form matrix across the whole fixture:

label static (C.B.DIMI) dynamic (B.DIM reg,0)
lb0 170 162
lb1 170 162
lb2 320 0

Symmetric static/dynamic pairs on lb0/lb1; lb2 always immediate; zero illegal forms.

Not sweepable due to pre-existing blockers (identical on baseline): TLOAD2/TLOAD4 (B.DATR ND2NZ alias missing .normal), TIMG2COL/TMATMUL-options match errors, TLOAD plain-form i-constraint bug.

Add SS/SD/DS/DD instantiations for the remaining four-branch families
missed by the first sweep (49 interfaces):
- TPARTADD/MAX/MIN/MUL, TSEL, TFMA, TFILLPAD, TEXTRACT, TINSERT,
  TEXPANDS, TDEQUANT
- TROWEXPAND* / TROWARGMAX/MIN (one-column broadcast sources)
- TCOLEXPAND* / TCOLARGMAX/MIN (one-row broadcast sources)
- TGATHER / TSCATTER (offset-tile driven dispatch)
- Shared TSTORE x4 (Shared produced inline via TMOV_L2S_INSERT; the
  Shared value never crosses the C++ ABI per the PTO_SHARED_INLINE
  contract — passing SharedTile as a noinline function argument hits
  the known setRegClass assertion, reproducible on baseline)

Total: 101 four-combination instantiations, zero errors, symmetric
form matrix (lb0/lb1 static+dynamic pairs, lb2 all immediate).

Still not sweepable (pre-existing blockers, identical on baseline):
- TLOAD2/TLOAD4: B.DATR ND2NZ alias missing .normal suffix
- TIMG2COL/TMATMUL options path: pre-existing match errors
- TLOAD plain form: "i"-constraint bug
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant