[PATCH] Restore the sqrt -> llvm.sqrt mapping in fast-math mode

Tobias Grosser tobias at grosser.es
Thu Sep 12 14:07:51 PDT 2013


On 09/12/2013 11:03 PM, Hal Finkel wrote:
> Hello,
>
> Please review the attached patch which restores the libm sqrt* -> @llvm.sqrt* mapping, but only in fast-math mode (specifically, when the UnsafeFPMath or NoNaNsFPMath CodeGen options are enabled). The @llvm.sqrt* intrinsics have slightly different semantics from the libm call, specifically, they are undefined when given a non-zero negative number (the libm calls will always return NaN for any negative number).
>
> This mapping was removed in r100613, and replaced with a TODO, but at that time the fast-math flags were not yet implemented. Now that we have these, restoring this mapping is important because it will enable autovectorization of sqrt calls in loops (at least in fast-math mode).

Patch?

Tobias




More information about the cfe-commits mailing list