https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109378

g.peterh...@t-online.de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |FIXED

--- Comment #11 from g.peterh...@t-online.de ---
Ok, in detail:
std::sqrt/__builtin_sqrt performs the check for nan in the calling context.
This causes the following problems:
* the calling context contains error handling/conditional jumps, which have
nothing to do there but have to be handled in the error handling of std::sqrt
* Because this does NOT happen in your implementation of std::sqrt, the code
gets bloated, at the latest when a function contains more than one std::sqrt.

Therefore
* do complete error handling in std::sqrt/__builtin_sqrt
* so there is only one exact call for std::sqrt, which can/must be vectorized.

Reply via email to