https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116058
--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> --- trying to combine definition of r8 in: ``` 2004: r8:SI=r2:SI into: 725: {[r4:SI]=[r5:SI];use r8:SI;use 0;use r6:SI;clobber pr:SI;clobber t:SI;clobber r4:SI;clobber r5:SI;clobber r6:SI;clobber r0:SI;clobber r1:SI;clobber r2:SI;clobber r3:SI;} register 4 is both clobbered and used as an input: (parallel [ (set (mem:BLK (reg:SI 4 r4) [0 A8]) (mem:BLK (reg:SI 5 r5) [0 A8])) (use (reg:SI 2 r2)) (use (const_int 0 [0])) (use (reg:SI 6 r6)) (clobber (reg:SI 146 pr)) (clobber (reg:SI 147 t)) (clobber (reg:SI 4 r4)) (clobber (reg:SI 5 r5)) (clobber (reg:SI 6 r6)) (clobber (reg:SI 0 r0)) (clobber (reg:SI 1 r1)) (clobber (reg:SI 2 r2)) (clobber (reg:SI 3 r3)) ]) ``` The instruction before hand: (insn 725 2004 726 68 (parallel [ (set (mem:BLK (reg:SI 4 r4) [0 A8]) (mem:BLK (reg:SI 5 r5) [0 A8])) (use (reg:SI 8 r8)) (use (const_int 0 [0])) (use (reg:SI 6 r6)) (clobber (reg:SI 146 pr)) (clobber (reg:SI 147 t)) (clobber (reg:SI 4 r4)) (clobber (reg:SI 5 r5)) (clobber (reg:SI 6 r6)) (clobber (reg:SI 0 r0)) (clobber (reg:SI 1 r1)) (clobber (reg:SI 2 r2)) (clobber (reg:SI 3 r3)) ]) "t.ii":977:9 322 {block_lump_real_i4} (nil)) The pattern: (define_insn "block_lump_real_i4" [(parallel [(set (mem:BLK (reg:SI R4_REG)) (mem:BLK (reg:SI R5_REG))) (use (match_operand:SI 0 "arith_reg_operand" "r,r")) (use (match_operand 1 "" "Z,Ccl")) (use (reg:SI R6_REG)) (clobber (reg:SI PR_REG)) (clobber (reg:SI T_REG)) (clobber (reg:SI R4_REG)) (clobber (reg:SI R5_REG)) (clobber (reg:SI R6_REG)) (clobber (reg:SI R0_REG)) (clobber (reg:SI R1_REG)) (clobber (reg:SI R2_REG)) (clobber (reg:SI R3_REG))])] It is already using register 4 in the clobber and in the address before hand ...