Details
Details
Diff Detail
Diff Detail
Event Timeline
llvm/lib/Analysis/ValueTracking.cpp | ||
---|---|---|
4498 | Is this correct? If we know that one operand cannot be NaN, but we don't know that about the other operand, then we can't know if the result of the operation is NaN or not. This is llvm.minimum/llvm.maximum, correct? Those are documented as propagating NaN, |
llvm/lib/Analysis/ValueTracking.cpp | ||
---|---|---|
4498 | Right, so both operands need to be nnan which is what this accomplishes. The mask is the values it can be, not that it cannot be. |
Is this correct? If we know that one operand cannot be NaN, but we don't know that about the other operand, then we can't know if the result of the operation is NaN or not. This is llvm.minimum/llvm.maximum, correct? Those are documented as propagating NaN,