https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63483
--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> --- $foo..ng: .prologue 1 lda $1,1($31) # 7 *movqi/2 [length = 4] lda $2,a # 27 *movdi/7 [length = 4] ldq $3,0($2) # 6 *movdi/8 [length = 4] lda $2,b # 26 *movdi/7 [length = 4] lda $7,1($3) # 9 *adddi_internal/2 [length = 4] ldq_u $5,1($3) # 8 *movdi/8 [length = 4] insbl $1,$7,$4 # 11 insbl [length = 4] ldq $2,0($2) # 15 *movdi/8 [length = 4] mskbl $5,$7,$5 # 10 mskxl [length = 4] lda $6,2($2) # 18 *adddi_internal/2 [length = 4] bis $4,$5,$4 # 12 iordi3/1 [length = 4] stq_u $4,1($3) # 13 *movdi/9 [length = 4] insbl $1,$6,$1 # 20 insbl [length = 4] ldq_u $3,2($2) # 17 *movdi/8 [length = 4] mskbl $3,$6,$3 # 19 mskxl [length = 4] cpys $f31,$f31,$f31 # 35 fnop [length = 4] bis $1,$3,$1 # 21 iordi3/1 [length = 4] stq_u $1,2($2) # 22 *movdi/9 [length = 4] ret $31,($26),1 # 34 *return_internal [length = 4] .end foo Before sched1 pass, we have: 5: r73:DI=`a' 6: r72:DI=[r73:DI] REG_DEAD r73:DI 7: r74:QI=0x1 8: r76:DI=[r72:DI+0x1&0xfffffffffffffff8] 9: r75:DI=r72:DI+0x1 10: r76:DI=!0xff<<r75:DI<<0x3&r76:DI 11: r77:DI=zero_extend(r74:QI)<<r75:DI<<0x3 REG_DEAD r75:DI REG_EQUAL 0x1<<r75:DI<<0x3 12: r77:DI=r77:DI|r76:DI REG_DEAD r76:DI 13: [r72:DI+0x1&0xfffffffffffffff8]=r77:DI REG_DEAD r77:DI REG_DEAD r72:DI 14: r79:DI=`b' 15: r78:DI=[r79:DI] REG_DEAD r79:DI 17: r82:DI=[r78:DI+0x2&0xfffffffffffffff8] 18: r81:DI=r78:DI+0x2 19: r82:DI=!0xff<<r81:DI<<0x3&r82:DI 20: r83:DI=zero_extend(r74:QI)<<r81:DI<<0x3 REG_DEAD r81:DI REG_DEAD r74:QI REG_EQUAL 0x1<<r81:DI<<0x3 21: r83:DI=r83:DI|r82:DI REG_DEAD r82:DI 22: [r78:DI+0x2&0xfffffffffffffff8]=r83:DI REG_DEAD r83:DI REG_DEAD r78:DI Please see (insn 15) going to the top in sched1 pass: 5: r73:DI=`a' 7: r74:QI=0x1 14: r79:DI=`b' 6: r72:DI=[r73:DI] REG_DEAD r73:DI 15: r78:DI=[r79:DI] REG_DEAD r79:DI 9: r75:DI=r72:DI+0x1 8: r76:DI=[r72:DI+0x1&0xfffffffffffffff8] 11: r77:DI=zero_extend(r74:QI)<<r75:DI<<0x3 REG_DEAD r75:DI REG_EQUAL 0x1<<r75:DI<<0x3 18: r81:DI=r78:DI+0x2 10: r76:DI=!0xff<<r75:DI<<0x3&r76:DI 20: r83:DI=zero_extend(r74:QI)<<r81:DI<<0x3 REG_DEAD r81:DI REG_DEAD r74:QI REG_EQUAL 0x1<<r81:DI<<0x3 12: r77:DI=r77:DI|r76:DI REG_DEAD r76:DI 13: [r72:DI+0x1&0xfffffffffffffff8]=r77:DI REG_DEAD r77:DI REG_DEAD r72:DI 17: r82:DI=[r78:DI+0x2&0xfffffffffffffff8] 19: r82:DI=!0xff<<r81:DI<<0x3&r82:DI 21: r83:DI=r83:DI|r82:DI REG_DEAD r82:DI 22: [r78:DI+0x2&0xfffffffffffffff8]=r83:DI REG_DEAD r83:DI REG_DEAD r78:DI 25: NOTE_INSN_DELETED