------- Comment #5 from jakub at gcc dot gnu dot org 2009-01-13 20:39 ------- The single CC user is modified, then those changes are reverted, but unfortunately they aren't reverted by putting back the old content, but instead tweaking the new comparison with PUT_CODE. SUBST (*cc_use, gen_rtx_fmt_ee (new_code, GET_MODE (*cc_use), dest, const0_rtx)); other_changed = 1; ... if ((recog_for_combine (&pat, other_insn, ¬e) < 0 && ! check_asm_operands (pat))) { PUT_CODE (*cc_use, old_code); other_changed = 0;
We should insert put there the old *cc_use rtx. I'll test a patch. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38774