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 | ||
|---|---|---|
| 201 | 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 | ||
|---|---|---|
| 201 | Updated, thanks. | |
MASKL(1) is clearer, since you're moving things around and can clean them up a little.