aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
authorUros Bizjak <uros@gcc.gnu.org>2016-06-06 00:55:35 +0200
committerUros Bizjak <uros@gcc.gnu.org>2016-06-06 00:55:35 +0200
commit903ca97bc452be391f45e6b9a2f36ac744b6f29c (patch)
treeec9fe99007c02ce94d4bc08a6718711316b78189 /gcc/config
parent603e5a828b646bb802c4695b1046c7974fc2112f (diff)
downloadgcc-903ca97bc452be391f45e6b9a2f36ac744b6f29c.zip
gcc-903ca97bc452be391f45e6b9a2f36ac744b6f29c.tar.gz
gcc-903ca97bc452be391f45e6b9a2f36ac744b6f29c.tar.bz2
re PR target/71389 (ICE on trunk gcc on ivybridge target (df_refs_verify))
PR target/71389 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Copy op1 RTX to avoid invalid sharing. (ix86_expand_vector_move_misalign): Ditto. testsuite/ChangeLog: PR target/71389 * g++.dg/pr71389.C: New test. From-SVN: r237111
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/i386/i386.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 0873ac7..c191eeb 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -19552,7 +19552,7 @@ ix86_avx256_split_vector_move_misalign (rtx op0, rtx op1)
m = adjust_address (op0, mode, 0);
emit_insn (extract (m, op1, const0_rtx));
m = adjust_address (op0, mode, 16);
- emit_insn (extract (m, op1, const1_rtx));
+ emit_insn (extract (m, copy_rtx (op1), const1_rtx));
}
else
gcc_unreachable ();
@@ -19724,7 +19724,7 @@ ix86_expand_vector_move_misalign (machine_mode mode, rtx operands[])
m = adjust_address (op0, V2SFmode, 0);
emit_insn (gen_sse_storelps (m, op1));
m = adjust_address (op0, V2SFmode, 8);
- emit_insn (gen_sse_storehps (m, op1));
+ emit_insn (gen_sse_storehps (m, copy_rtx (op1)));
}
}
else