[RFC] Creating a ArmSME Dialect

Here’s the patch that I was referring to (kudos to @c-rhodes for working on it):

Our ultimate goal with that is to lower linalg.fill 0 %arg0 to SME’s zero via the Vector dialect:

  • linalg.fillvector.transfer_write → SME LLVM IR intrinsics

The first step requires [RFC] Scalable Vectorisation in Linalg , so that patch only implements lowering from Vector.

So far we didn’t have to introduce any dedicated SME Ops and that’s the approach that I’d prefer for us to take. This way we can leverage the Linalg and Vector dialects and all the great work that has gone it to over the years.

Lets use the upcoming MLIR ODM meeting on SME to decide whether we should lean more towards re-using the Vector dialect or to introduce the ArmSME dialect. We won’t be merging this patch in the meantime (unless there’s a clear support for this approach).

@frank_gao , would June 22nd also work? I managed to clear my calendar (and June 15th is not available).

-Andrzej