mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
658b4b19f2
commit
15e0956f3c
|
|
@ -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>
|
2016-06-05 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
Backport from mainline
|
Backport from mainline
|
||||||
|
|
|
||||||
|
|
@ -17707,7 +17707,7 @@ ix86_avx256_split_vector_move_misalign (rtx op0, rtx op1)
|
||||||
m = adjust_address (op0, mode, 0);
|
m = adjust_address (op0, mode, 0);
|
||||||
emit_insn (extract (m, op1, const0_rtx));
|
emit_insn (extract (m, op1, const0_rtx));
|
||||||
m = adjust_address (op0, mode, 16);
|
m = adjust_address (op0, mode, 16);
|
||||||
emit_insn (extract (m, op1, const1_rtx));
|
emit_insn (extract (m, copy_rtx (op1), const1_rtx));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
emit_insn (store_unaligned (op0, op1));
|
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);
|
m = adjust_address (op0, V2SFmode, 0);
|
||||||
emit_insn (gen_sse_storelps (m, op1));
|
emit_insn (gen_sse_storelps (m, op1));
|
||||||
m = adjust_address (op0, V2SFmode, 8);
|
m = adjust_address (op0, V2SFmode, 8);
|
||||||
emit_insn (gen_sse_storehps (m, op1));
|
emit_insn (gen_sse_storehps (m, copy_rtx (op1)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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
|
2016-06-03 Release Manager
|
||||||
|
|
||||||
* GCC 5.4.0 released.
|
* GCC 5.4.0 released.
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue