[llvm-branch-commits] [mlir] [mlir][GPU] Plumb range information through the NVVM lowterings (PR #107659)
Guray Ozen via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Sep 10 01:18:15 PDT 2024
================
@@ -209,7 +209,12 @@ struct GPULaneIdOpToNVVM : ConvertOpToLLVMPattern<gpu::LaneIdOp> {
ConversionPatternRewriter &rewriter) const override {
auto loc = op->getLoc();
MLIRContext *context = rewriter.getContext();
- Value newOp = rewriter.create<NVVM::LaneIdOp>(loc, rewriter.getI32Type());
+ LLVM::ConstantRangeAttr bounds = nullptr;
+ if (std::optional<APInt> upperBound = op.getUpperBound())
+ bounds = rewriter.getAttr<LLVM::ConstantRangeAttr>(
+ /*bitWidth=*/32, /*lower=*/0, upperBound->getZExtValue());
+ Value newOp =
+ rewriter.create<NVVM::LaneIdOp>(loc, rewriter.getI32Type(), bounds);
----------------
grypp wrote:
Can we always use `kWarpSize = 32` for the laneId? This is a HW constraint, and it hasn't been changed over the years.
https://github.com/llvm/llvm-project/pull/107659
More information about the llvm-branch-commits
mailing list