[LLVMdev] Reference Manual Clarifications 2

Chris Lattner sabre at nondot.org
Tue Apr 1 11:48:49 PDT 2008

On Mon, 31 Mar 2008, Jon Sargeant wrote:
> The fptrunc instruction states "If the value cannot fit within the 
> destination type, ty2, then the results are undefined."  This is fine, but 
> what about other floating-point operations that can overflow?  For example, 
> does 'mul double 1.0e300, 1.0e300' produce +infinity or is it undefined?

It is defined by IEEE to be inf.

> I 
> think LLVM should treat floating-point overflows consistently.  On a similar 
> note, what is the result of division by zero for fdiv?  infinity or 
> undefined?

IEEE also specifies these, but I don't know the answer off-hand.

> The manual needs to state the rounding mode of the fptrunc, uitofp, and 
> sitofp instruction (if only to say it's undefined).  I recommend 
> round-to-nearest.

Everything is implicitly assumed to be in the default rounding mode.



More information about the llvm-dev mailing list