[Mlir-commits] [mlir] [MLIR][NVVM] Add tensormap.replace NVVM Op (PR #174926)
Srinivasa Ravi
llvmlistbot at llvm.org
Mon Jan 19 02:04:13 PST 2026
================
@@ -4775,6 +4848,50 @@ PermuteOp::getIntrinsicIDAndArgs(Operation &op, LLVM::ModuleTranslation &mt,
return {IDs[modeIndex], args};
}
+mlir::NVVM::IDArgPair TensormapReplaceOp::getIntrinsicIDAndArgs(
+ Operation &op, LLVM::ModuleTranslation &mt, llvm::IRBuilderBase &builder) {
+ auto thisOp = cast<NVVM::TensormapReplaceOp>(op);
+
+ llvm::SmallVector<llvm::Value *> args;
+ args.push_back(mt.lookupValue(thisOp.getAddr()));
+ if (thisOp.getOrd())
+ args.push_back(builder.getInt32(thisOp.getOrd().value()));
+ if (thisOp.getNewValue())
+ args.push_back(mt.lookupValue(thisOp.getNewValue()));
+ if (auto attr = thisOp.getNewValueAttr()) {
+ auto val =
+ llvm::TypeSwitch<mlir::Attribute, unsigned>(*attr)
+ .Case<TensormapElemtypeAttr, TensormapInterleaveLayoutAttr,
+ TensormapSwizzleModeAttr, TensormapSwizzleAtomicityAttr,
+ TensormapFillModeAttr>([](auto attr) {
+ return static_cast<unsigned>(attr.getValue());
+ })
+ .Default([](auto attr) {
+ llvm_unreachable("Invalid attribute type");
+ return 0;
+ });
----------------
Wolfram70 wrote:
Looks like `llvm::TypeSwitch` needs a default case and errors out if it's not mentioned.
https://github.com/llvm/llvm-project/pull/174926
More information about the Mlir-commits
mailing list