mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
expand on a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123145 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d8408270f3
commit
00a35d0f14
@ -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.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user