[Mlir-commits] [mlir] [MLIR][XeGPU] Add wg-to-sg distirbution for dpasmx, bitcast, interleave, and deinterleave (PR #194985)
Jianhui Li
llvmlistbot at llvm.org
Wed May 6 10:31:09 PDT 2026
Jianhui-Li wrote:
> Could you please add a test where a non-anchor op result (e.g., `vector.bitcast`) is used as an operand in deinterleave? I have concerns regarding layout recovery for deinterleave's 2 results in the following path:
>
> ```mlir
> } else if (!dyn_cast<xegpu::AnchorLayoutInterface>(op)) {
> propagateResultsToRegularOperands(op);
> }
> ```
>
> and
>
> ```mlir
> static void propagateResultsToRegularOperands(Operation *op) {
> if (op->getNumResults() == 0 || op->getNumResults() > 1)
> return;
> ```
>
> We need either a special condition for deinterleave or remove the `op->getNumResults() > 1` part, and let the source layout inference handle the retrieval.
> Could you please add a test where a non-anchor op result (e.g., `vector.bitcast`) is used as an operand in deinterleave? I have concerns regarding layout recovery for deinterleave's 2 results in the following path:
>
> ```mlir
> } else if (!dyn_cast<xegpu::AnchorLayoutInterface>(op)) {
> propagateResultsToRegularOperands(op);
> }
> ```
>
> and
>
> ```mlir
> static void propagateResultsToRegularOperands(Operation *op) {
> if (op->getNumResults() == 0 || op->getNumResults() > 1)
> return;
> ```
>
> We need either a special condition for deinterleave or remove the `op->getNumResults() > 1` part, and let the source layout inference handle the retrieval.
The existing deinterleave test is enhanced with the first result being used and exposed this issue, fixed. Thanks!
https://github.com/llvm/llvm-project/pull/194985
More information about the Mlir-commits
mailing list