Skip to content

fix(tileop): complete atomic TSTORE and cooperative TMOV contracts - #298

Merged
VV0003 merged 1 commit into
linxfrom
fix/spec-398-399-followup
Oct 29, 2026
Merged

VV0003 merged 1 commit into
linxfrom
fix/spec-398-399-followup

Conversation

@WLDFA

@WLDFA WLDFA commented Oct 29, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • complete PTO-ISA/pto-spec#398 Atomic TSTORE APIs with supported PE masks and Local CUBE Predicate/PredInv execution masks
  • keep Shared Atomic TSTORE restricted to PE participation masks, without Predicate execution masks
  • complete PTO-ISA/pto-spec#399 cooperative CUBE-to-Shared ND metadata handling by merging writer valid shapes and publishing them only on LAST
  • add positive codegen coverage, negative API coverage, contract tests, and usage documentation

LLVM dependency

Validated with LinxISA/llvm-project dev-llvm15_56 commit 2113a9922e5271592d7022f4888edba3d264d007, which contains the #398 Atomic TSTORE encoding and #399 CUBE capacity/conversion/transport support.

Verification

  • python3 test/test_issue_398_399_contract.py: 4 passed
  • test/test_predicate_adapters.py: 17 passed
  • target objects TStoreAtomic.o and CubeToSharedND.o generated successfully
  • focused negative cases reject RowMajor+Predicate, mismatched Predicate shape, Shared+Predicate, invalid PE mask, and invalid cooperative TMOV contracts
  • disassembly confirms masked two-source B.IOT, PredInv, Shared PE mask, and assembled valid shape LB0=3, LB1=64, LB2=4
  • git diff --check: passed

Existing gate failures

The full target object gate reports 86 passed and 23 unrelated existing failures, including retired fixtures and LLVM Shared-handle backend restrictions. Host make check reaches an existing ElementTile<unsigned long> expectation failure; the focused #398/#399 checks pass.

@VV0003
VV0003 merged commit 32b231a into linx Oct 29, 2026
2 checks passed
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.

2 participants