https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116508

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #2)
> part of the problem here is the use of OPTAB_DIRECT when it should use
> OPTAB_WIDEN instead.

That fixes short but for char looks like there is still some cost issue since
there is a removal of the addv there.

Note the related testcase should have been:
```
int f128(unsigned __int128 a)
{
  return __builtin_popcountg(a) == 1;
}
```

Which is not fixed with the OPTAB_WIDEN change.

Reply via email to