/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-cddce1" } */ int test_shiftmax(unsigned int a) { return __builtin_popcount(a>>(8*sizeof(a)-1)); } int test_shiftmaxl(unsigned long b) { return __builtin_popcountl(b>>(8*sizeof(b)-1)); } int test_shiftmaxll(unsigned long long c) { return __builtin_popcountll(c>>(8*sizeof(c)-1)); } int test_shift7(unsigned char d) { return __builtin_popcount(d>>7); } int test_shift7l(unsigned char e) { return __builtin_popcountl(e>>7); } int test_shift7ll(unsigned char f) { return __builtin_popcountll(f>>7); } int test_shift15(unsigned short g) { return __builtin_popcount(g>>15); } int test_shift15l(unsigned short h) { return __builtin_popcountl(h>>15); } int test_shift15ll(unsigned short i) { return __builtin_popcountll(i>>15); } /* { dg-final { scan-tree-dump-times "popcount" 0 "cddce1" } } */