https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83393
--- Comment #1 from Zdenek Sojka <zsojka at seznam dot cz> --- (In reply to Zdenek Sojka from comment #0) > ... even though insn 16 output (r108) should be used insn 20; ... s/insn 16/insn 14/ Later, there is: Trying 18 -> 20: 18: r116:SI=0 20: {r108:HI=r108:HI<<r116:SI#0;clobber flags:CC;} REG_DEAD r116:SI REG_UNUSED flags:CC ... Successfully matched this instruction: (set (reg/v:HI 108 [ fD.1899 ]) (reg/v:HI 108 [ fD.1899 ])) allowing combination of insns 18 and 20 original costs 4 + 4 = 8 replacement cost 4 deferring deletion of insn with uid = 18. modifying insn i3 20: r108:HI=r108:HI deferring rescan insn with uid = 20.