[Mlir-commits] [mlir] [mlir][gpu][spirv] Add patterns for gpu.shuffle up/down (PR #139105)
Jakub Kuderski
llvmlistbot at llvm.org
Tue Jun 3 08:24:00 PDT 2025
================
@@ -430,10 +430,12 @@ LogicalResult GPUShuffleConversion::matchAndRewrite(
unsigned subgroupSize =
targetEnv.getAttr().getResourceLimits().getSubgroupSize();
IntegerAttr widthAttr;
+ // The width argument specifies the number of lanes that participate in the
+ // shuffle. The width value should not exceed the subgroup limit.
if (!matchPattern(shuffleOp.getWidth(), m_Constant(&widthAttr)) ||
- widthAttr.getValue().getZExtValue() != subgroupSize)
+ widthAttr.getValue().getZExtValue() > subgroupSize)
return rewriter.notifyMatchFailure(
- shuffleOp, "shuffle width and target subgroup size mismatch");
+ shuffleOp, "shuffle width is larger than target subgroup size");
----------------
kuhar wrote:
The comment above says:
```c++
// Require the shuffle width to be the same as the target's subgroup size,
// given that for SPIR-V non-uniform subgroup ops, we cannot select
// participating invocations.
```
https://github.com/llvm/llvm-project/pull/139105
More information about the Mlir-commits
mailing list