(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
i386/
pr95771.c
       1  /* PR tree-optimization/95771 */
       2  /* { dg-do compile } */
       3  /* { dg-options "-O2 -mpopcnt -fdump-tree-optimized" } */
       4  /* { dg-final { scan-tree-dump-times " = __builtin_popcount| = \\.POPCOUNT" 4 "optimized" } } */
       5  
       6  int
       7  foo (unsigned char x)
       8  {
       9    int i = 0;
      10    while (x)
      11      {
      12        x &= x - 1;
      13        ++i;
      14      }
      15    return i;
      16  }
      17  
      18  int
      19  bar (unsigned short x)
      20  {
      21    int i = 0;
      22    while (x)
      23      {
      24        x &= x - 1;
      25        ++i;
      26      }
      27    return i;
      28  }
      29  
      30  int
      31  baz (unsigned int x)
      32  {
      33    int i = 0;
      34    while (x)
      35      {
      36        x &= x - 1;
      37        ++i;
      38      }
      39    return i;
      40  }
      41  
      42  int
      43  qux (unsigned long long x)
      44  {
      45    int i = 0;
      46    while (x)
      47      {
      48        x &= x - 1;
      49        ++i;
      50      }
      51    return i;
      52  }