http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57300
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org Version|4.9.0 |4.8.1 Target Milestone|--- |4.8.1 Summary|statement in expression |[4.8/4.9 Regression] |miscompiled at -O3 in |statement in expression |32-bit mode |miscompiled at -O3 in | |32-bit mode --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- /* PR rtl-optimization/57300 */ /* { dg-do run } */ /* { dg-options "-O3" } */ /* { dg-additional-options "-msse2" { target sse2_runtime } } */ extern void abort (void); int a, b, d[10]; long long c; int main () { int e; for (e = 0; e < 10; e++) d[e] = 1; if (d[0]) c = a = (b == 0 || 1 % b); if (a != 1) abort (); return 0; } (note, -msse needed, without it it doesn't reproduce). Started with LRA merge, but looks very much PR57281 related.