================
@@ -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

Reply via email to