https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118739

--- Comment #12 from Uroš Bizjak <ubizjak at gmail dot com> ---
(In reply to Sam James from comment #10)
> r15-268-g9dbff9c05520a7

This commit just prevents the transformation in Comment #11 from happening,
because it skips an early combination of:

Trying 15 -> 16:
   15: flags:CCNO=cmp(r115:SI,0)
      REG_DEAD r115:SI
   16: r106:QI=flags:CCNO>0
Failed to match this instruction:
(parallel [
        (set (reg:QI 106 [ _37 ])
            (subreg:QI (reg:SI 115 [ _1 ]) 0))
        (set (reg:CCNO 17 flags)
            (compare:CCNO (reg:SI 115 [ _1 ])
                (const_int 0 [0])))
    ])
Failed to match this instruction:
(parallel [
        (set (reg:QI 106 [ _37 ])
            (subreg:QI (reg:SI 115 [ _1 ]) 0))
        (set (reg:CCNO 17 flags)
            (compare:CCNO (reg:SI 115 [ _1 ])
                (const_int 0 [0])))
    ])
Successfully matched this instruction:
(set (reg:CCNO 17 flags)
    (compare:CCNO (reg:SI 115 [ _1 ])
        (const_int 0 [0])))
Successfully matched this instruction:
(set (reg:QI 106 [ _37 ])
    (subreg:QI (reg:SI 115 [ _1 ]) 0))
allowing combination of insns 15 and 16
original costs 4 + 4 = 8
replacement costs 4 + 4 = 8
i2 didn't change, not doing this

Reply via email to