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

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

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

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Expand looks correct:
```
(insn 8 7 9 (set (reg:VNx8HI 104)
        (const_vector:VNx8HI repeat [
                (const_int 0 [0])
            ])) "/app/example.c":6:10 -1
     (nil))

(insn 9 8 0 (set (reg:VNx8HI 101 [ <retval> ])
        (plus:VNx8HI (unspec:VNx8HI [
                    (reg/v:VNx16QI 102 [ bD.17155 ])
                    (reg/v:VNx16QI 103 [ cD.17156 ])
                ] UNSPEC_SABAL)
            (reg:VNx8HI 104))) "/app/example.c":6:10 -1
     (nil))
```

But then combine does this:
```
Trying 2 -> 9:
    2: r102:VNx16QI=r106:VNx16QI
      REG_DEAD r106:VNx16QI
    9: r101:VNx8HI=unspec[r102:VNx16QI,r103:VNx16QI]SABAL
      REG_DEAD r103:VNx16QI
      REG_DEAD r102:VNx16QI
Successfully matched this instruction:
(set (reg:VNx8HI 101 [ <retval> ]) 
    (unspec:VNx8HI [
            (reg:VNx16QI 106 [ bD.17155 ])
            (reg/v:VNx16QI 103 [ cD.17156 ])
        ] UNSPEC_SABAL))
```

This would be correct if the UNSPEC_SABAL pattern was correctly done.

Reply via email to