[Mlir-commits] [mlir] [mlir][amdgpu] Add lowering for make_dma_descriptor (PR #169955)
Krzysztof Drewniak
llvmlistbot at llvm.org
Wed Dec 3 09:57:12 PST 2025
================
@@ -2335,6 +2336,352 @@ struct AMDGPUMakeDmaBaseLowering
}
};
+struct AMDGPUMakeDmaDescriptorLowering
+ : public ConvertOpToLLVMPattern<MakeDmaDescriptorOp> {
+ using ConvertOpToLLVMPattern::ConvertOpToLLVMPattern;
+
+ AMDGPUMakeDmaDescriptorLowering(const LLVMTypeConverter &converter,
+ Chipset chipset)
+ : ConvertOpToLLVMPattern<MakeDmaDescriptorOp>(converter),
+ chipset(chipset) {}
+ Chipset chipset;
+
+ Value getDGroup0(OpAdaptor adaptor) const { return adaptor.getBase(); }
+
+ Value setValueAtOffset(ConversionPatternRewriter &rewriter, Location loc,
+ Value accumulator, Value value, int64_t shift) const {
+ shift = shift % 32;
+ Value shiftAmount;
+ if (shift != 0) {
+ shiftAmount = createI32Constant(rewriter, loc, shift % 32);
+ value = LLVM::ShlOp::create(rewriter, loc, value, shiftAmount);
+ }
+
+ if (LLVM::ConstantOp op = accumulator.getDefiningOp<LLVM::ConstantOp>())
----------------
krzysz00 wrote:
If you want this, it can be `matchPattern(accumulator, m_Zero())` ... but I'd also see an argument for just always emitting the `or` and letting either our or LLVM's constant folder take care of it
https://github.com/llvm/llvm-project/pull/169955
More information about the Mlir-commits
mailing list