https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86438

--- Comment #2 from Uroš Bizjak <ubizjak at gmail dot com> ---
Here is what happens:

compare operators in (insn 66) are substituted with their defs from (insn 64)
and (insn 14). The CC mode is calculated from SELECT_CC_MODE, which really
returns CCCmode. The flags reg clobber is substituted with the compare, and
insn then matches {*adddi3_cc_overflow_1}.

Unfortunately, the compare is not correct. %rax from (insn 14) is already
updated, and should not be compared with its previous value from (insn 64).

Reply via email to