https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122948
--- Comment #4 from Oleg Endo <olegendo at gcc dot gnu.org> --- (In reply to celeriyacon from comment #3) > The T flag calculation part of the "subc" insn in sh.md looks wrong: > > (gtu:SI (minus:SI (minus:SI (match_dup 1) (match_dup 2)) > (reg:SI T_REG)) > (match_dup 1)))] > > > I think it should instead be something like: > > (gtu:SI (plus:DI (zero_extend:DI (match_dup:SI 2)) > (zero_extend:DI (reg:SI T_REG))) > (zero_extend:DI (match_dup:SI 1))))] Thanks for reporting this. Have you tried to change the pattern to see if it fixes the problem? I would be surprised if the T-bit calculation expression of "subc" (or of addc) is actually used.
