[Mlir-commits] [mlir] [MLIR][NVVM] Update dot.accumulate.4way NVVM Op (PR #141223)
Durgadoss R
llvmlistbot at llvm.org
Fri May 23 07:56:05 PDT 2025
================
@@ -1627,24 +1620,31 @@ static void nvvmInferResultRanges(Operation *op, Value result,
}
}
-llvm::Intrinsic::ID
-DotAccumulate4WayOp::getIntrinsicID(NVVM::DotAccumulate4WayType a_type,
- NVVM::DotAccumulate4WayType b_type) {
- bool is_a_siext = a_type == NVVM::DotAccumulate4WayType::S8;
- bool is_b_siext = b_type == NVVM::DotAccumulate4WayType::S8;
+static llvm::Value *getAsPackedI32(llvm::Value *arg,
+ llvm::IRBuilderBase &builder) {
+ return builder.CreateBitCast(arg,
+ llvm::Type::getInt32Ty(builder.getContext()));
+}
+
+NVVM::IDArgPair DotAccumulate4WayOp::getIntrinsicIDAndArgs(
+ Operation &op, LLVM::ModuleTranslation &mt, llvm::IRBuilderBase &builder) {
+ auto curOp = cast<NVVM::DotAccumulate4WayOp>(op);
+
+ llvm::SmallVector<llvm::Value *> args;
+ args.push_back(getAsPackedI32(mt.lookupValue(curOp.getA()), builder));
+ args.push_back(getAsPackedI32(mt.lookupValue(curOp.getB()), builder));
+ args.push_back(mt.lookupValue(curOp.getC()));
+
+ bool is_a_siext = curOp.getAType() == NVVM::DotAccumulateType::SIGNED;
+ bool is_b_siext = curOp.getBType() == NVVM::DotAccumulateType::SIGNED;
----------------
durga4github wrote:
nit: on the casing, isASigned?
https://github.com/llvm/llvm-project/pull/141223
More information about the Mlir-commits
mailing list