[clang] [llvm] [clang][NVPTX] Add overloaded fmul intrinsics (PR #224546)

Durgadoss R via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 21 06:57:17 PDT 2026


================
@@ -697,47 +697,38 @@ inline StringRef GetRoundingModeName(APFloat::roundingMode RM) {
   }
 }
 
-inline bool FMulShouldFTZ(Intrinsic::ID IntrinsicID) {
+inline bool FPArithShouldFTZ(Intrinsic::ID IntrinsicID) {
   switch (IntrinsicID) {
-  case Intrinsic::nvvm_mul_rm_ftz_f:
-  case Intrinsic::nvvm_mul_rn_ftz_f:
-  case Intrinsic::nvvm_mul_rp_ftz_f:
-  case Intrinsic::nvvm_mul_rz_ftz_f:
+  case Intrinsic::nvvm_fadd_ftz:
+  case Intrinsic::nvvm_fadd_ftz_sat:
+  case Intrinsic::nvvm_fmul_ftz:
+  case Intrinsic::nvvm_fmul_ftz_sat:
     return true;
 
-  case Intrinsic::nvvm_mul_rm_f:
-  case Intrinsic::nvvm_mul_rn_f:
-  case Intrinsic::nvvm_mul_rp_f:
-  case Intrinsic::nvvm_mul_rz_f:
-  case Intrinsic::nvvm_mul_rm_d:
-  case Intrinsic::nvvm_mul_rn_d:
-  case Intrinsic::nvvm_mul_rp_d:
-  case Intrinsic::nvvm_mul_rz_d:
+  case Intrinsic::nvvm_fadd:
+  case Intrinsic::nvvm_fadd_sat:
+  case Intrinsic::nvvm_fmul:
+  case Intrinsic::nvvm_fmul_sat:
     return false;
   }
-  llvm_unreachable("Checking FTZ flag for invalid NVVM mul intrinsic");
+  llvm_unreachable("Checking FTZ flag for invalid NVVM fadd/fmul intrinsic");
 }
 
-inline APFloat::roundingMode GetFMulRoundingMode(Intrinsic::ID IntrinsicID) {
+inline bool FPArithIsSat(Intrinsic::ID IntrinsicID) {
----------------
durga4github wrote:

optional: 
shall we say `FPArithHasSat` or `IsSaturating` ?

https://github.com/llvm/llvm-project/pull/224546


More information about the llvm-commits mailing list