On void bar (long int *); void foo (void) { long int buf[10]; __builtin_memset (buf, 8, sizeof (buf)); bar (buf); } fwprop effectively undoes what CSE optimized. 0x0808080808080808 is not a valid constant for movdi_1_rex64 when the target is memory (movdi_1_rex64 only allows non-32-bit-sign-extended immediates in source if the destination is a register).
-- Summary: [4.3 Regression] Pessimization caused by fwprop Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: rtl-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org GCC target triplet: x86_64-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34012