@@ -2996,9 +2996,7 @@ ps_insn_find_column (partial_schedule_ptr ps,
ps_insn_ptr ps_i,
last_must_precede = next_ps_i;
}
/* The closing branch must be the last in the row. */
- if (must_precede
- && bitmap_bit_p (must_precede, next_ps_i->id)
- && JUMP_P (ps_rtl_insn (ps, next_ps_i->id)))
+ if (JUMP_P (ps_rtl_insn (ps, next_ps_i->id)))
return false;
last_in_row = next_ps_i;
b/gcc/testsuite/gcc.dg/pr84032.c
@@ -0,0 +1,23 @@
+/* PR rtl-optimization/84032 */
+/* { dg-do compile } */
+/* { dg-options "-O1 -fmodulo-sched" } */
+/* { dg-additional-options "-mcpu=power6" { target { powerpc-*-* } } }
*/
+
+void
+yr (int cm)
+{
+ int ka = cm;
+
+ for (;;)
+ {
+ short int m0;
+
+ for (m0 = 0; m0 < 6; ++m0)
+ {
+ ka &= 1;
+ cm *= 2;
+ }
+
+ ka = (ka == 0) ? cm : 0;
+ }