------- Comment #3 from steven at gcc dot gnu dot org 2005-10-17 18:54 ------- The patch identified in comment #2 has nothing to do with this problem. Pinski is right in comment #1, loop-invariant.c does not verify that the insns it moves/inserts are valid. Using emit_move_insn is just one thing it should do. Another thing is verifying that a reg-reg move exists for expressions moved out of a loop into a register before the loop. There are a few other issues I found some time ago, but I don't recall the details.
-- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24265