blob: 2b5e9f3e2c0245438ed7bcc5d0d4e01efe01b1ee [file] [log] [blame]
/* { dg-do compile } */
/* { dg-options "-O2" } */
int
foo (int x)
{
return __builtin_popcount (x);
}
long
foo1 (long x)
{
return __builtin_popcountl (x);
}
long long
foo2 (long long x)
{
return __builtin_popcountll (x);
}
int
foo3 (int *p)
{
return __builtin_popcount (*p);
}
/* { dg-final { scan-assembler-not {popcount} } } */
/* { dg-final { scan-assembler-times {cnt\t} 4 } } */
/* { dg-final { scan-assembler-times {fmov\ts} 1 {target lp64} } } */
/* { dg-final { scan-assembler-times {fmov\td} 2 {target lp64} } } */
/* { dg-final { scan-assembler-times {fmov\ts} 2 {target ilp32} } } */
/* { dg-final { scan-assembler-times {fmov\td} 1 {target ilp32} } } */
/* { dg-final { scan-assembler-times {ldr\ts} 1 } } */