i386.c (dimode_scalar_chain::convert_op): Avoid sharing the SUBREG rtx between move...
authorJakub Jelinek <jakub@redhat.com>
Wed, 30 Nov 2016 13:02:07 +0000 (14:02 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 30 Nov 2016 13:02:07 +0000 (14:02 +0100)
* config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
sharing the SUBREG rtx between move and following insn.

From-SVN: r243018

gcc/ChangeLog
gcc/config/i386/i386.c

index 5b91b86..6c853e9 100644 (file)
@@ -1,5 +1,8 @@
 2016-11-30  Jakub Jelinek  <jakub@redhat.com>
 
+       * config/i386/i386.c (dimode_scalar_chain::convert_op): Avoid
+       sharing the SUBREG rtx between move and following insn.
+
        * ira.c (ira_update_equiv_info_by_shuffle_insn): Use copy_rtx
        for REG_EQUIV argument.
 
index 5018ccb..a5f5339 100644 (file)
@@ -3723,7 +3723,7 @@ dimode_scalar_chain::convert_op (rtx *op, rtx_insn *insn)
          emit_insn_before (seq, insn);
        }
 
-      emit_insn_before (gen_move_insn (tmp, vec_cst), insn);
+      emit_insn_before (gen_move_insn (copy_rtx (tmp), vec_cst), insn);
       *op = tmp;
     }
   else