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
...

Reply via email to