aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.c
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 /gcc/tree-vect-patterns.c
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
Diffstat (limited to 'gcc/tree-vect-patterns.c')
-rw-r--r--gcc/tree-vect-patterns.c5
1 files changed, 3 insertions, 2 deletions
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;
}