http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61108
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |congh at gcc dot gnu.org --- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> --- __attribute__ ((noinline)) unsigned int sum (const unsigned int *x) { unsigned int r = 0; int i; for (i = 0; i < 8; i++) { unsigned int v = x[i]; unsigned int q = (v * 613566757ULL) >> 32; unsigned int t = ((v + q) >> 1); r += t; } return r; } int main (void) { unsigned int x[8] = { 0, 7, 0, 0, 0, 0, 0, 0 }; if (sum (x) != 4) __builtin_abort (); return 0; } So, I guess we want to backport PR60656 fix to 4.8 branch (both r209138 and r209363), and add this new testcase to 4.8/4.9/trunk.