This patch folds the logic to expand
- pow(x, 0.5) to (x == -infinity ? +infinity : fabs(sqrt(x)))
into replacePowWithSqrt. If the original pow has NoInfs, we do not need
the select, if it has NoSignedZero, we do not need the fabs.
This addresses several FIXMEs in test/Transforms/InstCombine/pow-sqrt.ll.
One thing I am not entirely sure about: did we need isFast() in the original code for anything besides NoInfs and NoUnsignedZeros (e.g. errno behavior)?