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

--- Comment #13 from Vladimir Makarov <vmakarov at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #11)
> Looking at the generated assembly, I see there:
>         movw    %di, -80(%rbp)
>         vpbroadcastw    -80(%rbp), %ymm1
>         vmovdqa %ymm1, -80(%rbp)
> I'd have expected
>         vmovd   %edi, %xmm1
>         vpbroadcastw    %xmm1, %ymm1
>         vmovdqa %ymm1, -80(%rbp)
> Is there some bug in the *vec_dupv16hi pattern that LRA can't use the !r
> alternative?  %di should be valid nonimmediate_operand in HImode.  For e.g.

I know about the problem.  It is coming from a different treatment of ! in LRA
and reload.  I am going to work on this but as the fix would be in very
sensitive LRA part. I am afraid to fix it before my vacation.  So probably it
will be solved only in January.

Reply via email to