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

Drea Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2026-11-10
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #3 from Drea Pinski <pinskia at gcc dot gnu.org> ---
```
Trying 9 -> 13:
    9:
r101:VNx16QI=unspec[r106:VNx16BI,r108:VNx16QI+r107:VNx16QI,r108:VNx16QI]SEL
      REG_DEAD r107:VNx16QI
      REG_DEAD r106:VNx16BI
      REG_DEAD r108:VNx16QI
   13: v0:VNx16QI=r101:VNx16QI
      REG_DEAD r101:VNx16QI
Successfully matched this instruction:
(set (reg/i:VNx16QI 32 v0)
    (unspec:VNx16QI [
            (reg:VNx16BI 106 [ pgD.23739 ])
            (plus:VNx16QI (reg:VNx16QI 108 [ z1D.23741 ])
                (reg:VNx16QI 107 [ z0D.23740 ]))
            (reg:VNx16QI 108 [ z1D.23741 ])
        ] UNSPEC_SEL))
allowing combination of insns 9 and 13
original costs 4 + 4 = 8
replacement cost 4
deferring deletion of insn with uid = 9.
modifying insn i3    13:
v0:VNx16QI=unspec[r106:VNx16BI,r108:VNx16QI+r107:VNx16QI,r108:VNx16QI]SEL
      REG_DEAD r108:VNx16QI
      REG_DEAD r106:VNx16BI
      REG_DEAD r107:VNx16QI
deferring rescan insn with uid = 13.
```

And yes adding  -fdisable-rtl-combine makes this work as you want it.

Reply via email to