[PATCH][x86] Fix PR91814

Uros Bizjak ubizjak@gmail.com
Thu Sep 19 15:43:00 GMT 2019


On Thu, Sep 19, 2019 at 5:30 PM Richard Biener <rguenther@suse.de> wrote:
>
>
> Boostrapped and tested on x86_64-unknown-linux-gnu.
>
> OK?

OK.

Thanks,
Uros.

> Thanks,
> Richard.
>
> 2019-09-19  Richard Biener  <rguenther@suse.de>
>
>         PR target/91814
>         * config/i386/i386-features.c (gen_gpr_to_xmm_move_src):
>         Force operand to a register if it isn't nonimmediate_operand.
>
> Index: gcc/config/i386/i386-features.c
> ===================================================================
> --- gcc/config/i386/i386-features.c     (revision 275959)
> +++ gcc/config/i386/i386-features.c     (working copy)
> @@ -668,10 +668,13 @@ scalar_chain::emit_conversion_insns (rtx
>  static rtx
>  gen_gpr_to_xmm_move_src (enum machine_mode vmode, rtx gpr)
>  {
> +  if (!nonimmediate_operand (gpr, GET_MODE_INNER (vmode)))
> +    gpr = force_reg (GET_MODE_INNER (vmode), gpr);
>    switch (GET_MODE_NUNITS (vmode))
>      {
>      case 1:
> -      return gen_rtx_SUBREG (vmode, gpr, 0);
> +      /* We are not using this case currently.  */
> +      gcc_unreachable ();
>      case 2:
>        return gen_rtx_VEC_CONCAT (vmode, gpr,
>                                  CONST0_RTX (GET_MODE_INNER (vmode)));



More information about the Gcc-patches mailing list