expand on a note
authorChris Lattner <sabre@nondot.org>
Mon, 10 Jan 2011 00:33:01 +0000 (00:33 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 10 Jan 2011 00:33:01 +0000 (00:33 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123145 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index e000a9d39661a543036dd476cf2c9a9e9798fc10..4032c333f76656f307adf7c1cf29550c6886ec48 100644 (file)
@@ -2247,10 +2247,15 @@ entry:
   ret double %mul
 }
 
-We should be able to fold away this fmul to a constant, there is no 32-bit
-integer which after sitofp will generate a NaN, inf, or -0.0. We should fold
-this whenever the floating point type has enough exponent bits to represent
-the largest integer value as < inf.
+We should be able to fold away this fmul to 0.0.  More generally, fmul(x,0.0)
+can be folded to 0.0 if we can prove that the LHS is not -0.0, not a NaN, and
+not an INF.  The CannotBeNegativeZero predicate in value tracking should be
+extended to support general "fpclassify" operations that can return 
+yes/no/unknown for each of these predicates.
+
+In this predicate, we know that [us]itofp is trivially never NaN or -0.0, and
+we know that it isn't +/-Inf if the floating point type has enough exponent bits
+to represent the largest integer value as < inf.
 
 //===---------------------------------------------------------------------===//