Hacker News new | ask | show | jobs
by pbsd 203 days ago
Because the function is not quite correct. It should be

    return n ? (1u  + popcount(n & n - 1u)) : 0u;
which both Clang and GCC promptly optimize to a single popcnt.
1 comments

There should be testsuites, which are based on testing which compilation passes the compiler chose.