| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| |
| int test_and4(unsigned int a) |
| { |
| return __builtin_popcount(a&4); |
| } |
| |
| int test_and4l(unsigned long b) |
| { |
| return __builtin_popcountl(b&4); |
| } |
| |
| int test_and4ll(unsigned long long c) |
| { |
| return __builtin_popcountll(c&4); |
| } |
| |
| int test_shift(unsigned int d) |
| { |
| int bits = 8*sizeof(unsigned int)-1; |
| return __builtin_popcount(d<<31); |
| } |
| |
| int test_shiftl(unsigned long e) |
| { |
| int bits = 8*sizeof(unsigned long)-1; |
| return __builtin_popcountl(e<<bits); |
| } |
| |
| int test_shiftll(unsigned long long f) |
| { |
| int bits = 8*sizeof(unsigned long long)-1; |
| return __builtin_popcountll(f<<bits); |
| } |
| |
| /* { dg-final { scan-tree-dump-times "popcount" 0 "optimized" } } */ |
| |