diff options
author | Jakub Jelinek <jakub@redhat.com> | 2016-05-03 13:38:38 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2016-05-03 13:38:38 +0200 |
commit | dea60b590ccf8968b5b651eddfc25ddf3226c8a1 (patch) | |
tree | 3459d718336d1ebc25505364e09c63567058e8b6 /gcc/tree-vect-patterns.c | |
parent | adedd5c173388ae505470df152b9cb3947339566 (diff) | |
download | gcc-dea60b590ccf8968b5b651eddfc25ddf3226c8a1.zip gcc-dea60b590ccf8968b5b651eddfc25ddf3226c8a1.tar.gz gcc-dea60b590ccf8968b5b651eddfc25ddf3226c8a1.tar.bz2 |
re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
PR tree-optimization/70916
* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
* gcc.c-torture/compile/pr70916.c: New test.
From-SVN: r235814
Diffstat (limited to 'gcc/tree-vect-patterns.c')
-rw-r--r-- | gcc/tree-vect-patterns.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c index 27080d2..d08b454 100644 --- a/gcc/tree-vect-patterns.c +++ b/gcc/tree-vect-patterns.c @@ -3673,8 +3673,10 @@ vect_recog_mask_conversion_pattern (vec<gimple *> *stmts, tree *type_in, if (!rhs1_type) return NULL; } - else + else if (COMPARISON_CLASS_P (rhs1)) rhs1_type = TREE_TYPE (TREE_OPERAND (rhs1, 0)); + else + return NULL; vectype2 = get_mask_type_for_scalar_type (rhs1_type); |