llvm-project
2f7a16ae - [mlir][x86] Make AMX nanokernel independent of result write (#236699)

Commit
2 days ago
[mlir][x86] Make AMX nanokernel independent of result write (#236699) The pattern relied on the presence of a `vector.store`/`vector.transfer_write` of the accumulation result back to memory. This patch reworks the handling in the following way: - Enable direct tile-stores to the output memref for the VNNI-packed, _zero-initialized_ case as well. - All remaining paths require that the tile register contents are moved through a temporary buffer. However, the shape of that buffer only matters if we still need to accumulate the results onto the initial value in memory – we can derive it from the source buffer's shape, as before. Otherwise, we can just pick a shape to hold all output tiles. On the online-packing path, we ensure that we have two neighboring tiles in the N-dimension to allow shuffling. Assisted-by: Copilot
Author
Parents
Loading