expand on a note

llvm-svn: 123145
This commit is contained in:
Chris Lattner 2011-01-10 00:33:01 +00:00
parent e8e9ec58bf
commit 2bd48ecd43

View 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.
//===---------------------------------------------------------------------===//