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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |88670
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2026-05-13
           Keywords|                            |missed-optimization
           Severity|normal                      |enhancement

--- Comment #1 from Drea Pinski <pinskia at gcc dot gnu.org> ---
Confirmed.

The difference comes from who does the expansion/combining.

So vec_shuf is handled by vectorizer SLP pass.

While vec_xor_shuf is handled by forwprop1 and veclowering pass.

The veclowering pass does not handle:
  _15 = VEC_PERM_EXPR <_2, _2, { 4, 0, 5, 1, 6, 2, 7, 3 }>;

in a partial wise and only handles scalar wise at this stage. Nobody has
improved it yet to try to use partial vector sizes.


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88670
[Bug 88670] [meta-bug] generic vector extension issues

Reply via email to