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).

Thanks in advance,
Hal

-- 
Hal Finkel
Assistant Computational Scientist
Leadership Computing Facility
Argonne National Laboratory
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to