aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2007-07-25 20:24:15 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2007-07-25 20:24:15 +0000
commit6887a8b9b74d26cafd06b9a5fdc5fd7e7d81abbd (patch)
tree7c1ab9dc53b004e991f7754b0bfa1527f4b4f7fb
parent4883241c1873a0e4fd10ff2df64de6e5584b8165 (diff)
downloadgcc-6887a8b9b74d26cafd06b9a5fdc5fd7e7d81abbd.zip
gcc-6887a8b9b74d26cafd06b9a5fdc5fd7e7d81abbd.tar.gz
gcc-6887a8b9b74d26cafd06b9a5fdc5fd7e7d81abbd.tar.bz2
re PR target/32218 (segfault with -O1 -ftree-vectorize)
PR target/32218 * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type. From-SVN: r126931
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-vect-patterns.c5
2 files changed, 8 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0a6bb35..861f347 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2007-07-25 Steve Ellcey <sje@cup.hp.com>
+ PR target/32218
+ * tree-vect-patterns.c (vect_pattern_recog_1): Check for valid type.
+
+2007-07-25 Steve Ellcey <sje@cup.hp.com>
+
* config/ia64/ia64.h (HARD_REGNO_NREGS): Handle RFmode.
(HARD_REGNO_MODE_OK): Ditto.
(MODES_TIEABLE_P): Ditto.
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 5773344..86d6a42 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -651,8 +651,9 @@ vect_pattern_recog_1 (
|| (icode = optab->handlers[(int) vec_mode].insn_code) ==
CODE_FOR_nothing
|| (type_out
- && (insn_data[icode].operand[0].mode !=
- TYPE_MODE (get_vectype_for_scalar_type (type_out)))))
+ && (!get_vectype_for_scalar_type (type_out)
+ || (insn_data[icode].operand[0].mode !=
+ TYPE_MODE (get_vectype_for_scalar_type (type_out))))))
return;
}