================
@@ -2056,6 +2056,28 @@ inferFastMathValueFlags(FastMathFlags FMF, FPClassTest
ValidResults,
return FMF;
}
+/// Apply epilog fixups to a floating-point intrinsic. See if the result can
+/// fold to a constant, or apply fast math flags.
+static Value *simplifyDemandedFPClassResult(CallInst *FPOp, FastMathFlags FMF,
+ FPClassTest DemandedMask,
+ KnownFPClass &Known,
+ ArrayRef<KnownFPClass> KnownSrcs) {
+ FPClassTest ValidResults = DemandedMask & Known.KnownFPClasses;
+ Constant *SingleVal = getFPClassConstant(FPOp->getType(), ValidResults,
+ /*IsCanonicalizing=*/true);
+ if (SingleVal)
+ return SingleVal;
+
+ FastMathFlags InferredFMF =
+ inferFastMathValueFlags(FMF, ValidResults, KnownSrcs);
+ if (InferredFMF != FMF) {
+ FPOp->setFastMathFlags(InferredFMF);
----------------
arsenm wrote:
Missing the attribute drop
https://github.com/llvm/llvm-project/pull/176003
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits