[LLVMdev] Floating-Point Overflow check
John McCall
rjmccall at apple.com
Fri Jul 23 10:36:37 PDT 2010
On Jul 23, 2010, at 7:20 AM, Steffen Geißinger wrote:
> i need to check if an overflow of an floating-point arithmetic operation occured.
> Currently I'm doing something like this (for addition):
>
> (LHS > 0 && RHS > 0 && sum <= 0) || (LHS < 0 && RHS < 0 && sum >= 0)
IEEE floating-point doesn't overflow like this; if the magnitude of a result is too
large to represent, it becomes an infinity rather than wrapping around like integer
arithmetic. You want to check whether the result is infinite.
I think the easiest way of doing that is to check whether (x - x) != (x - x).
John.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100723/2f50019d/attachment.html>
More information about the llvm-dev
mailing list