http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60071
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> --- I'd say it is a backend bug. Canonicalizing (minus:SI (const_int INT_MIN)) into (const_int INT_MIN) is IMNSHO very much desirable, it is just a target bug that it matches an insn with it at the point where it no longer is able to cope with it. So, either it needs to use some predicate which will make such insn invalid right after split1, or it needs to cope also with the case where during splitting it can't create pseudos.