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.