================
@@ -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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits