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

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Drea Pinski from comment #1)
> 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.

The idea is that the re-vectorization patches from Tamar should address this
(we'll have to trigger extra BB SLP seeds of course)

Reply via email to