I am testing the following and will commit it as obvious.
Richard. 2019-08-21 Richard Biener <rguent...@suse.de> PR target/91498 * config/i386/i386-features.c (general_scalar_chain::make_vector_copies): Copy stack temporary rtx when using it multiple times. (general_scalar_chain::convert_reg): Likewise. Index: gcc/config/i386/i386-features.c =================================================================== --- gcc/config/i386/i386-features.c (revision 274764) +++ gcc/config/i386/i386-features.c (working copy) @@ -706,7 +706,7 @@ general_scalar_chain::make_vector_copies gen_rtx_SUBREG (SImode, reg, 4)); } else - emit_move_insn (tmp, reg); + emit_move_insn (copy_rtx (tmp), reg); emit_insn (gen_rtx_SET (gen_rtx_SUBREG (vmode, vreg, 0), gen_gpr_to_xmm_move_src (vmode, tmp))); } @@ -810,7 +810,7 @@ general_scalar_chain::convert_reg (unsig adjust_address (tmp, SImode, 4)); } else - emit_move_insn (scopy, tmp); + emit_move_insn (scopy, copy_rtx (tmp)); } else if (!TARGET_64BIT && smode == DImode) {