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 5b91b860c54a0052f434784c6f9c48021126c5c8..6c853e90b8308053083b7839486e76274dd99346 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 5018ccb633aef756c13c273b70b65365fd40bc6a..a5f5339be67e90cd8e07d752f97a28591a88e2ee 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