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: r237178
This commit is contained in:
Uros Bizjak 2016-06-07 17:23:42 +02:00
parent 658b4b19f2
commit 15e0956f3c
4 changed files with 49 additions and 14 deletions

View File

@ -1,3 +1,10 @@
2016-06-07 Uros Bizjak <ubizjak@gmail.com>
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.
2016-06-05 Uros Bizjak <ubizjak@gmail.com>
Backport from mainline
@ -15,7 +22,7 @@
2016-06-03 Andreas Tobler <andreast@gcc.gnu.org>
Backport from mainline
2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
* config.gcc: Move hard float support for arm*hf*-*-freebsd* into
armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
@ -61,7 +68,7 @@
2016-03-24 Richard Henderson <rth@redhat.com>
PR middle-end/69845
PR middle-end/69845
* fold-const.c (extract_muldiv_1): Correct test for multiplication
overflow.
@ -2219,7 +2226,7 @@
Backport from mainline
2015-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Bernd Schmidt <bschmidt@redhat.com>
Bernd Schmidt <bschmidt@redhat.com>
PR rtl-optimization/67226
* calls.c (store_one_arg): Take into account
@ -2279,7 +2286,7 @@
Backport from mainline
2015-11-24 Bernd Schmidt <bschmidt@redhat.com>
Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR rtl-optimization/68194
PR rtl-optimization/68328
@ -2552,7 +2559,7 @@
Backport from mainline
2015-11-16 Oleg Endo <olegendo@gcc.gnu.org>
Kaz Kojima <kkojima@gcc.gnu.org>
Kaz Kojima <kkojima@gcc.gnu.org>
PR target/68277
* config/sh/sh.md (addsi3_scr): Handle reg overlap of operands[0] and
@ -2626,7 +2633,7 @@
Backport from mainline
2015-10-23 Steve Ellcey <sellcey@imgtec.com>
Andrew Pinski <apinski@cavium.com>
Andrew Pinski <apinski@cavium.com>
PR rtl-optimization/67736
* combine.c (simplify_comparison): Use gen_lowpart_or_truncate instead

View File

@ -17707,7 +17707,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
emit_insn (store_unaligned (op0, op1));
@ -18015,7 +18015,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)));
}
}
}

View File

@ -1,3 +1,8 @@
2016-06-07 Uros Bizjak <ubizjak@gmail.com>
PR target/71389
* g++.dg/pr71389.C: New test.
2016-06-03 Release Manager
* GCC 5.4.0 released.
@ -31,7 +36,7 @@
* gcc.dg/pr69634.c: New.
2016-03-23 Patrick Palka <ppalka@gcc.gnu.org>
PR c++/70347
* g++.dg/cpp1y/nsdmi-union1.C: New test.
@ -42,7 +47,7 @@
2016-03-24 Richard Henderson <rth@redhat.com>
PR middle-end/69845
PR middle-end/69845
* gcc.dg/tree-ssa/pr69845-1.c: New test.
* gcc.dg/tree-ssa/pr69845-2.c: New test.
@ -105,8 +110,8 @@
PR middle-end/67278
* gcc.dg/simd-7.c: Add -w -Wno-psabi to dg-options.
PR target/67278
* gcc.dg/simd-8.c: Add -w -Wno-psabi to dg-options.
PR target/67278
* gcc.dg/simd-8.c: Add -w -Wno-psabi to dg-options.
2016-05-20 Richard Biener <rguenther@suse.de>
@ -130,13 +135,13 @@
* gcc.dg/torture/pr70941.c: New testcase.
2016-05-06 Jakub Jelinek <jakub@redhat.com>
PR middle-end/70941
* gcc.dg/torture/pr70941.c (abort): Remove prototype.
(a, b, c, d): Change type from char to signed char.
(main): Compare against (signed char) -1634678893 instead of
hardcoded -109. Use __builtin_abort instead of abort.
2016-05-06 Richard Biener <rguenther@suse.de>
PR middle-end/70931

View File

@ -0,0 +1,23 @@
// { dg-do compile { target i?86-*-* x86_64-*-* } }
// { dg-options "-std=c++11 -O3 -march=ivybridge" }
#include <functional>
extern int le_s6, le_s9, le_s11;
long foo_v14[16][16];
void fn1() {
std::array<std::array<int, 16>, 16> v13;
for (; le_s6;)
for (int k1 = 2; k1 < 4; k1 = k1 + 1) {
for (int n1 = 0; n1 < le_s9; n1 = 8) {
*foo_v14[6] = 20923310;
for (int i2 = n1; i2 < n1 + 8; i2 = i2 + 1)
v13.at(5).at(i2 + 6 - n1) = 306146921;
}
for (int l2 = 0; l2 < le_s11; l2 = l2 + 1)
*(l2 + v13.at(5).begin()) = 306146921;
}
v13.at(le_s6 - 4);
}