[gcc r10-9575] libstdc++: Remove redundant check for zero in std::__popcount

Jonathan Wakely redi@gcc.gnu.org
Mon Mar 29 20:01:48 GMT 2021


https://gcc.gnu.org/g:e994d3ca7cfc6c90e24e05ef8d7a866f6eb5f6f0

commit r10-9575-ge994d3ca7cfc6c90e24e05ef8d7a866f6eb5f6f0
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Mon Nov 9 14:31:13 2020 +0000

    libstdc++: Remove redundant check for zero in std::__popcount
    
    The popcount built-ins work fine for zero, so there's no need to check
    for it.
    
    libstdc++-v3/ChangeLog:
    
            * include/std/bit (__popcount): Remove redundant check for zero.
    
    (cherry picked from commit ff4bfb1553cf525d7299bbf7451ac32cfd97ae1b)

Diff:
---
 libstdc++-v3/include/std/bit | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/libstdc++-v3/include/std/bit b/libstdc++-v3/include/std/bit
index f4344820d52..16f7eba46d7 100644
--- a/libstdc++-v3/include/std/bit
+++ b/libstdc++-v3/include/std/bit
@@ -184,9 +184,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
       using __gnu_cxx::__int_traits;
       constexpr auto _Nd = __int_traits<_Tp>::__digits;
 
-      if (__x == 0)
-        return 0;
-
       constexpr auto _Nd_ull = __int_traits<unsigned long long>::__digits;
       constexpr auto _Nd_ul = __int_traits<unsigned long>::__digits;
       constexpr auto _Nd_u = __int_traits<unsigned>::__digits;


More information about the Libstdc++-cvs mailing list