[clang] [llvm] [clang][NVPTX] Add overloaded fmul intrinsics (PR #224546)
Rajat Bajpai via llvm-commits
llvm-commits at lists.llvm.org
Sun Sep 27 23:52:34 PDT 2026
================
@@ -1505,8 +1505,16 @@ static bool isLegacyNVPTXBF16IntSignature(Function *F, Intrinsic::ID IID) {
return true;
}
+// Overloaded fadd/fmul intrinsic IDs, indexed by [`.ftz`][`.sat`].
+static constexpr Intrinsic::ID NVVMFAddIIDs[2][2] = {
+ {Intrinsic::nvvm_fadd, Intrinsic::nvvm_fadd_sat},
+ {Intrinsic::nvvm_fadd_ftz, Intrinsic::nvvm_fadd_ftz_sat}};
+static constexpr Intrinsic::ID NVVMFMulIIDs[2][2] = {
+ {Intrinsic::nvvm_fmul, Intrinsic::nvvm_fmul_sat},
+ {Intrinsic::nvvm_fmul_ftz, Intrinsic::nvvm_fmul_ftz_sat}};
+
static std::optional<std::pair<Intrinsic::ID, RoundingMode>>
-getNVVMFAddUpgrade(StringRef Name) {
+getNVVMFPArithUpgrade(StringRef Name, const Intrinsic::ID IIDs[2][2]) {
----------------
rajatbajpai wrote:
nit: if we really want to enforce the size we should use `const Intrinsic::ID (&IIDs)[2][2]`.
https://github.com/llvm/llvm-project/pull/224546
More information about the llvm-commits
mailing list