https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79910
--- Comment #7 from Segher Boessenkool <segher at gcc dot gnu.org> --- Author: segher Date: Mon Mar 20 23:08:16 2017 New Revision: 246297 URL: https://gcc.gnu.org/viewcvs?rev=246297&root=gcc&view=rev Log: combine: Fix 79910 If the dest of an I0 or I1 is used in an insn before I2, as can happen in various uncommon cases, and we manage to do the combination, the set is moved to I2, which is wrong. Don't allow combining the insns in this case. PR rtl-optimization/79910 * combine.c (can_combine_p): Do not allow combining an I0 or I1 if its dest is used by an insn before I2 (other than the combined insns themselves, which are properly handled already). Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c