[Mlir-commits] [mlir] [MLIR][NVVM] Extend TMA Bulk Copy Op (PR #140232)
Durgadoss R
llvmlistbot at llvm.org
Sat May 17 06:11:52 PDT 2025
================
@@ -1253,6 +1253,35 @@ CpAsyncOp::getIntrinsicIDAndArgs(Operation &op, LLVM::ModuleTranslation &mt,
return id;
}
+std::pair<llvm::Intrinsic::ID, llvm::SmallVector<llvm::Value *>>
+CpAsyncBulkSharedCTAToGlobalOp::getIntrinsicIDAndArgs(
+ Operation &op, LLVM::ModuleTranslation &mt, llvm::IRBuilderBase &builder) {
+ auto thisOp = cast<NVVM::CpAsyncBulkSharedCTAToGlobalOp>(op);
+ llvm::SmallVector<llvm::Value *> args;
+ llvm::Intrinsic::ID id =
+ llvm::Intrinsic::nvvm_cp_async_bulk_shared_cta_to_global;
+
+ // Fill the Intrinsic Args
+ args.push_back(mt.lookupValue(thisOp.getDstMem()));
+ args.push_back(mt.lookupValue(thisOp.getSrcMem()));
+ args.push_back(mt.lookupValue(thisOp.getSize()));
+
+ auto cacheHint = thisOp.getL2CacheHint();
+ const bool hasCacheHint = static_cast<bool>(cacheHint);
+ auto *i64Unused =
+ llvm::ConstantInt::get(llvm::Type::getInt64Ty(mt.getLLVMContext()), 0);
+ args.push_back(hasCacheHint ? mt.lookupValue(cacheHint) : i64Unused);
+ args.push_back(builder.getInt1(hasCacheHint));
+
+ // Choose the bytemask variant
+ if (auto byteMask = thisOp.getByteMask()) {
----------------
durga4github wrote:
Fixed this as well
https://github.com/llvm/llvm-project/pull/140232
More information about the Mlir-commits
mailing list