https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109378
Bug ID: 109378 Summary: improve __builtin_sqrt Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: g.peterh...@t-online.de Target Milestone: --- Hello gcc team, https://godbolt.org/z/Wa1rfxrPo when I write a function that contains std::sqrt, it always contains the nan(?) tests for the argument. E.g. sqrtf64. If I use my_sqrt the tests are done inside sqrt and not in the calling function - clear (because noinline). Wouldn't it be better to rewrite __builtin_sqrt so that these tests are done inside __builtin_sqrt and not already in the calling context? This would have the advantage that std::sqrt would not "contaminate" the calling function with conditional jumps and thus inflate it. I can make this clear with foo vs. bar. And of course __builtin_sqrt must be able to be vectorized automatically and must be inline for certain contexts (e.g. __FAST_MATH__). regards Gero