https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98179
Bug ID: 98179 Summary: gcc.dg/pr97954.c fails on (at least) BE powerpc Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: segher at gcc dot gnu.org Target Milestone: --- /home/segher/src/gcc/gcc/testsuite/gcc.dg/pr97954.c: In function 'foo': /home/segher/src/gcc/gcc/testsuite/gcc.dg/pr97954.c:12:1: error: too many outgoing branch edges from bb 4 during RTL pass: loop2_invariant /home/segher/src/gcc/gcc/testsuite/gcc.dg/pr97954.c:12:1: internal compiler error: verify_flow_info failed 0x10435cb3 verify_flow_info() /home/segher/src/gcc/gcc/cfghooks.c:269 0x10876cc7 checking_verify_flow_info /home/segher/src/gcc/gcc/cfghooks.h:212 0x10876cc7 move_loop_invariants() /home/segher/src/gcc/gcc/loop-invariant.c:2299 0x1087142f execute /home/segher/src/gcc/gcc/loop-init.c:530 This happens because this passed moved insn 8 from bb 4 to 2: (jump_insn 8 2 22 2 (parallel [ (set (reg:SI 118 [ x ]) (asm_operands:SI ("") ("=r") 0 [] [] [ (label_ref:DI 22) ] pr97954.c:10)) (clobber (reg:SI 98 ca)) ]) "pr97954.c":10:3 -1 (expr_list:REG_UNUSED (reg:SI 98 ca) (nil)) -> 22) We shouldn't allow such a move at all (not of any jump_insn!)