http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54963
--- Comment #4 from Kazumoto Kojima <kkojima at gcc dot gnu.org> 2012-10-29 00:59:37 UTC --- (In reply to comment #3) > Created attachment 28551 [details] > Proposed patch > > This patch fixes the problem, by using 'emit_move_insn' instead of manually > doing the DImode reg copy. Does the pattern in negdi_cond emit_insn (gen_negc (low_dst, low_src)); emit_label_after (skip_neg_label, emit_insn (gen_negc (high_dst, high_src))); work in the problematic situation? Perhaps I've missed something.