During real range reduction to [0.5, 4) with SQRT(2**(2a) * x) = SQRT(2**(2a)) * SQRT(x) = 2**a * SQRT(x) we fall into inf. recursion if IsZero() == true. Explicitly handle SQRT(0.0) instead of additional checks during folding. Also add helpers for +0.0/-0.0 generation to clean up a bit.
Details
Details
- Reviewers
klausler clementval - Commits
- rG68efe6356551: [flang] Fix ICE for sqrt(0.0) evaluation
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
What was the "ICE"?
flang/include/flang/Evaluate/real.h | ||
---|---|---|
198 | MASKL(1) is clearer, since you're moving things around and can clean them up a little. |
Comment Actions
Replaced IBSET -> MASKL, updated summary details.
flang/include/flang/Evaluate/real.h | ||
---|---|---|
198 | Updated, thanks. |
MASKL(1) is clearer, since you're moving things around and can clean them up a little.