Hi! I've cleaned up the testcase some more, tested on 4.8/4.9/trunk that it fails without the sched-deps.c fix too (both -m32 and -m64) and works with the fix. Committed to all branches.
2014-08-06 Jakub Jelinek <ja...@redhat.com> PR rtl-optimization/61801 * gcc.target/i386/pr61801.c: Rewritten. --- gcc/testsuite/gcc.target/i386/pr61801.c.jj 2014-08-01 09:23:37.000000000 +0200 +++ gcc/testsuite/gcc.target/i386/pr61801.c 2014-08-06 10:30:32.133472004 +0200 @@ -1,22 +1,21 @@ +/* PR rtl-optimization/61801 */ /* { dg-do compile } */ /* { dg-options "-Os -fcompare-debug" } */ -int a, b, c; -void fn1 () +int a, c; +int bar (void); +void baz (void); + +void +foo (void) { int d; - if (fn2 () && !0) + if (bar ()) { - b = ( - { - int e; - fn3 (); - switch (0) - default: - asm volatile("" : "=a"(e) : "0"(a), "i"(0)); - e; - }); - d = b; + int e; + baz (); + asm volatile ("" : "=a" (e) : "0" (a), "i" (0)); + d = e; } c = d; } Jakub