================
@@ -794,8 +834,10 @@ ComplexPairTy ComplexExprEmitter::EmitBinMul(const
BinOpInfo &Op) {
ResR = Builder.CreateFSub(AC, BD, "mul_r");
ResI = Builder.CreateFAdd(AD, BC, "mul_i");
- if (Op.FPFeatures.getComplexRange() == LangOptions::CX_Limited ||
- Op.FPFeatures.getComplexRange() == LangOptions::CX_Fortran)
+ if (Op.FPFeatures.getComplexRange() == LangOptions::CX_Basic ||
+ Op.FPFeatures.getComplexRange() == LangOptions::CX_Improved ||
+ Op.FPFeatures.getComplexRange() == LangOptions::CX_Promoted ||
+ CGF.getLangOpts().NoHonorInfs || CGF.getLangOpts().NoHonorNaNs)
----------------
andykaylor wrote:
Oh, sorry, for some reason I thought this was invoking the special handling for
division. I think the for honor NaNs and infinities still isn't necessary
because we'll emit the comparison with the fast-math flags set and the backend
will optimize it away, which is what happens today:
https://godbolt.org/z/e8EnKodj6
https://github.com/llvm/llvm-project/pull/81514
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits