Compiler suite on tt-emule

This page summarizes a full compiler-suite run on tt-emule on September 19, 2026. It ran on macOS inside linux/amd64 Docker, using the pinned tt-emule/tt-metal stack and P150 target in config/tt-lang-emule-stack.json. Later revisions have not necessarily rerun the complete suite.

What was run

The complete compiler suite was started with:

cmake --build /ttlang-build --target check-ttlang-all

Because that aggregate target stops after a failing group, the later end-to-end and Python lit groups were then run separately. The combined result was:

Group

Result

MLIR

528 passed

Python bindings

5 passed

Packaging

199 passed

Compiler and device pytest

4,019 passed, 161 failed, 64 skipped, 8 expected failures

End-to-end

859 passed, 34 expected failures

Python lit

132 passed, 4 failed, 1 unsupported

Total

5,742 passed, 165 failed, 65 skipped/unsupported, 42 expected failures

What failed

The 165 failures fall into five observed failure groups:

  • 132 dynamic-buffer tests: low-level generated code is incompatible with the x86 host JIT. Diagnostics include rejected RISC-V inline assembly and missing identifiers such as p_gpr_unpack, LO_16, and sync_regfile_write.

  • 24 RMSNorm tests: the emulated JIT environment does not provide ckernel_sfpu_rsqrt.h.

  • 2 dynamic-buffer reuse tests: execution completes, but 992 of 2,048 output values remain zero.

  • 3 collective tests: one multicast loopback and two tree reductions produce incorrect output.

  • 4 DPRINT lit tests: kernels execute, but the expected device-side DPRINT payload is not emitted.

These are failure groups rather than 165 independent bugs. The assembly, missing-identifier, and missing-header diagnostics identify immediate JIT failures; ownership of the incorrect-output and DPRINT failures still requires isolated reproducers. They are not all established tt-emule defects. The MLIR, bindings, and packaging groups had no failures; end-to-end tests had no unexpected failures.

Reproduce or narrow the run

After installing the supported environment as described in Getting started with compiler-backed emulation, enter its Docker test shell and activate the compiler as documented there. Inside that shell, use the normal test tools:

cmake --build /ttlang-build --target check-ttlang-all
pytest -c /ttlang-build/test/pytest.ini -v test/python
pytest -c /ttlang-build/test/pytest.ini -v test/me2e
llvm-lit -v /ttlang-build/test/python

Normal pytest and lit selectors can be used to reproduce one file or case; no separate tt-lang-sim test interface is required.