From 270d23c5b201c8e000f60e05d17577498f409441 Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 12 May 2025 12:56:17 +0100 Subject: [PATCH] libstdc++: Micro-optimization in std::arg overload for scalars MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- libstdc++-v3/include/std/complex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/include/std/complex b/libstdc++-v3/include/std/complex index 67f37d4ec2b..d9d2d8afda8 100644 --- a/libstdc++-v3/include/std/complex +++ b/libstdc++-v3/include/std/complex @@ -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 -- 2.47.2