https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79709
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|NEW |RESOLVED
Target Milestone|--- |8.0
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
(In reply to Marc Glisse from comment #4)
> (In reply to Marc Glisse from comment #2)
> > In reload, subregs are extracted via the stack, whereas the low subreg
> > should already be available (NOP) and the high one can be extracted by a
> > single insn. That's probably the first thing to investigate. (-mtune doesn't
> > change what happens)
>
> To concentrate on this, with -O3 -mavx :
> typedef long int v4i __attribute__((vector_size (32)));
> v4i foo(v4i a, v4i b) { return a+b; }
This part was fixed in GCC 8.
The other part is PR 93237 (and maybe others).
So closing this as fixed for GCC 8.