aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2018-04-17 19:01:31 +0200
committerJakub Jelinek <jakub@gcc.gnu.org>2018-04-17 19:01:31 +0200
commit2f00fe6d3bd06a929ceb8c646085fef9145d490b (patch)
tree511ba28045380229e4857097ef22ce58ad8935a5
parenta422e1ca494ee59303caf362fede7cc142ce678c (diff)
downloadgcc-2f00fe6d3bd06a929ceb8c646085fef9145d490b.zip
gcc-2f00fe6d3bd06a929ceb8c646085fef9145d490b.tar.gz
gcc-2f00fe6d3bd06a929ceb8c646085fef9145d490b.tar.bz2
re PR target/85430 (ICE: SIGSEGV in memory_operand at recog.c:1358/9 with -O2 -fno-tree-ccp -fno-tree-fre)
PR target/85430 * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. * gcc.dg/pr85430.c: New test. From-SVN: r259436
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/config/i386/i386.md6
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/pr85430.c12
4 files changed, 23 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e444bf1..1d6d385 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2018-04-17 Jakub Jelinek <jakub@redhat.com>
+ PR target/85430
+ * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
+
PR middle-end/85414
* rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG
on a SUBREG.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 3522120..95ca2cf 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -10713,7 +10713,7 @@
{
switch (get_attr_type (insn))
{
- case TYPE_ALU:
+ case TYPE_ALU1:
gcc_assert (operands[1] == const1_rtx);
return "add{b}\t%0, %0";
@@ -10729,12 +10729,12 @@
(cond [(and (and (match_test "TARGET_DOUBLE_WITH_ADD")
(match_operand 0 "register_operand"))
(match_operand 1 "const1_operand"))
- (const_string "alu")
+ (const_string "alu1")
]
(const_string "ishift1")))
(set (attr "length_immediate")
(if_then_else
- (ior (eq_attr "type" "alu")
+ (ior (eq_attr "type" "alu1")
(and (eq_attr "type" "ishift1")
(and (match_operand 1 "const1_operand")
(ior (match_test "TARGET_SHIFT1")
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index af61628..f0d6035 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-04-17 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/85430
+ * gcc.dg/pr85430.c: New test.
+
2018-04-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
PR testsuite/85326
diff --git a/gcc/testsuite/gcc.dg/pr85430.c b/gcc/testsuite/gcc.dg/pr85430.c
new file mode 100644
index 0000000..7b58a3c
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/pr85430.c
@@ -0,0 +1,12 @@
+/* PR target/85430 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -fno-tree-ccp -fno-tree-fre" } */
+
+typedef char V __attribute__((vector_size (4)));
+
+V
+foo (V v)
+{
+ v[(V){}[0]] <<= 1;
+ return v;
+}