https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107569
--- Comment #14 from Pilar Latiesa <pilarlatiesa at gmail dot com> --- I have tested the testcase in comment #1 with Clang, and I realized that Clang trunk avoids the tailcall to sqrt even without any hint with __builtin_unreachable: https://godbolt.org/z/5sb8bYcoq Clang is somehow smart enough to realize that dot(u, u) is always non-negative.