This patch removes a chunk of special case logic for folding sqrt() -> sqrtf() in InstCombineCasts and handles it in the mainstream path of SimplifyLibCalls.
No functional change intended, but I loosened the restriction on the existing sqrt testcases to allow for this optimization even without unsafe-fp-math because that's the existing behavior.
I also added a missing test case for not shrinking the llvm.sqrt.f64 intrinsic in case the result is used as a double.