From: Richard Biener Date: Wed, 21 Aug 2019 08:44:59 +0000 (+0000) Subject: re PR target/91498 (STV change in r274481 causes 300.twolf regression on Haswell) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8ef64ab95417d6787b9bd2777ac282932b09a530;p=gcc.git re PR target/91498 (STV change in r274481 causes 300.twolf regression on Haswell) 2019-08-21 Richard Biener PR target/91498 PR target/91503 * 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. From-SVN: r274792 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7f0686b5efa..c17d0e14c4f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2019-08-21 Richard Biener + + PR target/91498 + PR target/91503 + * 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. + 2019-08-20 Bernd Edlinger * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==. diff --git a/gcc/config/i386/i386-features.c b/gcc/config/i386/i386-features.c index c27ea16862d..fb7ac1b7d10 100644 --- a/gcc/config/i386/i386-features.c +++ b/gcc/config/i386/i386-features.c @@ -706,7 +706,7 @@ general_scalar_chain::make_vector_copies (unsigned regno) 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 (unsigned regno) adjust_address (tmp, SImode, 4)); } else - emit_move_insn (scopy, tmp); + emit_move_insn (scopy, copy_rtx (tmp)); } else if (!TARGET_64BIT && smode == DImode) {