http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52573
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |law at redhat dot com --- Comment #11 from Jeffrey A. Law <law at redhat dot com> 2013-01-16 04:57:08 UTC --- Alex, you might want to try with the full testcase rather than the reduced one. I certainly continue to see the output and clobber being assigned to the same hard reg. Your patch to df-problems.c doesn't seem to help this particular problem: [law@stumpy gcc]$ ./cc1 -O3 -funroll-loops j.c -quiet j.c: In function 'testA': j.c:90:60: warning: overflow in implicit constant conversion [-Woverflow] struct A { unsigned int i : 6, l : 1, j : 10, k : 15; }; T(A) ^ j.c:53:10: note: in definition of macro 'T' struct S x; \ ^ j.c: In function 'testK': j.c:100:60: warning: overflow in implicit constant conversion [-Woverflow] struct K { unsigned int k : 6, l : 1, j : 10, i : 15; }; T(K) ^ j.c:53:10: note: in definition of macro 'T' struct S x; \ ^ [law@stumpy gcc]$ !gr grep muls j.s | grep 2004318071 [ ... ] muls.l #-2004318071,%d0:%d0 [ ... ]