[llvm-commits] [llvm] r49458 - /llvm/trunk/lib/Transforms/IPO/SimplifyLibCalls.cpp

Chris Lattner sabre at nondot.org
Thu Apr 10 09:23:34 PDT 2008


On Apr 10, 2008, at 1:58 AM, Duncan Sands wrote:

> Hi,
>
>> +      // x    pow(x, 0.5)  sqrt(x)
>> +      // ---------------------------------------------
>> +      // -0.0    +0.0       -0.0
>> +      // -inf    +inf       NaN
>
> looks like pow is broken.  Is pow's behaviour documented
> anywhere?  On my machine the man page says:
>
>       The pow() function can return the following error:
>
>       EDOM   The  argument x is negative and y is not an integral  
> value.  This would result in a complex num‐
>              ber.
>
> Are you sure errno is not being set by pow in these cases?

Incidentally, gcc also does not perform this xform unless 'unsafe math  
optzns' are enabled.

-Chris



More information about the llvm-commits mailing list