[PATCH] D28797: [LangRef] Make @llvm.sqrt(x) return undef, rather than have UB, for negative x.
Justin Lebar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 17 11:55:17 PST 2017
jlebar added a comment.
In https://reviews.llvm.org/D28797#648535, @efriedma wrote:
> This is false: we take advantage of this to lower @llvm.sqrt() to libm sqrt() on platforms which don't have a native sqrt instruction, and that can have side-effects. See also https://reviews.llvm.org/D28335 .
Sigh.
We can lower it to `if (x >= -0) libm_sqrt(x) else NaN`? It's already broken per Sanjoy's comment.
I would like to make this langref change because I want to convert the opaque target-specific `llvm.nvvm.sqrt.f` intrinsic to something involving `llvm.sqrt.f32` (so that all of our sqrt-optimization machinery can be brought to bear).
https://reviews.llvm.org/D28797
More information about the llvm-commits
mailing list