]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
libstdc++: Micro-optimization in std::arg overload for scalars
authorJonathan Wakely <jwakely@redhat.com>
Mon, 12 May 2025 11:56:17 +0000 (12:56 +0100)
committerJonathan Wakely <redi@gcc.gnu.org>
Thu, 15 May 2025 15:33:16 +0000 (16:33 +0100)
Use __builtin_signbit directly instead of std::signbit.

libstdc++-v3/ChangeLog:

* include/std/complex (arg(T)): Use __builtin_signbit instead of
std::signbit.

Reviewed-by: Tomasz KamiƄski <tkaminsk@redhat.com>
libstdc++-v3/include/std/complex

index 67f37d4ec2b7bc80f75f8e28af2a392432999767..d9d2d8afda89cf0b34c7cbd9720cf3ab136ac813 100644 (file)
@@ -2532,8 +2532,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
     {
       typedef typename __gnu_cxx::__promote<_Tp>::__type __type;
 #if (_GLIBCXX11_USE_C99_MATH && !_GLIBCXX_USE_C99_FP_MACROS_DYNAMIC)
-      return std::signbit(__x) ? __type(3.1415926535897932384626433832795029L)
-                              : __type();
+      return __builtin_signbit(__type(__x))
+              ? __type(3.1415926535897932384626433832795029L) : __type();
 #else
       return std::arg(std::complex<__type>(__x));
 #endif