[Mlir-commits] [mlir] [MLIR][ROCDL] Lower `gpu.subgroup_size` to `wavefrontsize` (PR #137360)

Krzysztof Drewniak llvmlistbot at llvm.org
Fri Apr 25 14:21:31 PDT 2025


================
@@ -113,6 +132,26 @@ struct GPULaneIdOpToROCDL : ConvertOpToLLVMPattern<gpu::LaneIdOp> {
   }
 };
 
+struct GPUSubgroupSizeOpToROCDL : ConvertOpToLLVMPattern<gpu::SubgroupSizeOp> {
+  using ConvertOpToLLVMPattern::ConvertOpToLLVMPattern;
+  LogicalResult
+  matchAndRewrite(gpu::SubgroupSizeOp op, gpu::SubgroupSizeOp::Adaptor adaptor,
+                  ConversionPatternRewriter &rewriter) const override {
+    LLVM::ConstantRangeAttr bounds = nullptr;
+    if (auto upperBoundAttr = op.getUpperBoundAttr()) {
+      bounds = rewriter.getAttr<LLVM::ConstantRangeAttr>(
+          /*bitWidth=*/32, /*lower=*/32,
+          /*upper=*/op.getUpperBoundAttr().getInt());
----------------
krzysz00 wrote:

Add 1 here - LLVM uses a <= x < b ranges and MLIR size ops use a <= upper bound

https://github.com/llvm/llvm-project/pull/137360


More information about the Mlir-commits mailing list