================
@@ -592,47 +594,50 @@ inline DenormalMode GetNVVMDenormMode(bool ShouldFTZ) {
return DenormalMode::getIEEE();
}
-inline bool FAddShouldFTZ(Intrinsic::ID IntrinsicID) {
+inline bool IsFAddIntrinsic(Intrinsic::ID IntrinsicID) {
switch (IntrinsicID) {
- case Intrinsic::nvvm_add_rm_ftz_f:
- case Intrinsic::nvvm_add_rn_ftz_f:
- case Intrinsic::nvvm_add_rp_ftz_f:
- case Intrinsic::nvvm_add_rz_ftz_f:
+ case Intrinsic::nvvm_fadd:
+ case Intrinsic::nvvm_fadd_ftz:
+ case Intrinsic::nvvm_fadd_sat:
+ case Intrinsic::nvvm_fadd_ftz_sat:
return true;
-
- case Intrinsic::nvvm_add_rm_f:
- case Intrinsic::nvvm_add_rn_f:
- case Intrinsic::nvvm_add_rp_f:
- case Intrinsic::nvvm_add_rz_f:
- case Intrinsic::nvvm_add_rm_d:
- case Intrinsic::nvvm_add_rn_d:
- case Intrinsic::nvvm_add_rp_d:
- case Intrinsic::nvvm_add_rz_d:
+ default:
return false;
}
- llvm_unreachable("Checking FTZ flag for invalid NVVM add intrinsic");
}
-inline APFloat::roundingMode GetFAddRoundingMode(Intrinsic::ID IntrinsicID) {
- switch (IntrinsicID) {
- case Intrinsic::nvvm_add_rm_f:
- case Intrinsic::nvvm_add_rm_d:
- case Intrinsic::nvvm_add_rm_ftz_f:
- return APFloat::rmTowardNegative;
- case Intrinsic::nvvm_add_rn_f:
- case Intrinsic::nvvm_add_rn_d:
- case Intrinsic::nvvm_add_rn_ftz_f:
- return APFloat::rmNearestTiesToEven;
- case Intrinsic::nvvm_add_rp_f:
- case Intrinsic::nvvm_add_rp_d:
- case Intrinsic::nvvm_add_rp_ftz_f:
- return APFloat::rmTowardPositive;
- case Intrinsic::nvvm_add_rz_f:
- case Intrinsic::nvvm_add_rz_d:
- case Intrinsic::nvvm_add_rz_ftz_f:
- return APFloat::rmTowardZero;
+inline bool FAddShouldFTZ(Intrinsic::ID IntrinsicID) {
+ assert(IsFAddIntrinsic(IntrinsicID) &&
+ "Checking FTZ flag for invalid NVVM add intrinsic");
----------------
durga4github wrote:
fadd intrinsic
https://github.com/llvm/llvm-project/pull/217336
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits