https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94787
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- And add: ``` int h(int a) { if (a == 0) return 0; return __builtin_popcount(a) == 1; } int h1(int a) { if (a == 0) return 1; return __builtin_popcount(a) == 1; } ``` h should be just `__builtin_popcount(a) == 1`. While h1 should be just `__builtin_popcount(a) <= 1`.