diff options
author | Jakub Jelinek <jakub@redhat.com> | 2012-11-13 08:25:36 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-11-13 08:25:36 +0100 |
commit | 784fb9b322452e7f5e31e75be538ccf453335abb (patch) | |
tree | 5384a6491928ac5d95d62e04069c2d911f262a7c /gcc/tree-vect-generic.c | |
parent | 5d68b7e60b0b2f26624477ff0b7ef9f2595c9325 (diff) | |
download | gcc-784fb9b322452e7f5e31e75be538ccf453335abb.zip gcc-784fb9b322452e7f5e31e75be538ccf453335abb.tar.gz gcc-784fb9b322452e7f5e31e75be538ccf453335abb.tar.bz2 |
re PR tree-optimization/55281 (ICE in build_int_cst_wide, at tree.c:1217 (with Ofast, ok with O3))
PR tree-optimization/55281
* tree-vect-generic.c (expand_vector_condition): Accept any
is_gimple_val rather than just SSA_NAME if not COMPARISON_CLASS_P.
* fold-const.c (fold_ternary_loc): Fold VEC_COND_EXPR if arg0 is
either integer_all_onesp or integer_zerop.
* tree-vect-stmts.c (vectorizable_condition): Build the condition
using corresponding vector integer type instead of vectype.
* gcc.dg/vect/fast-math-pr55281.c: New test.
* g++.dg/opt/pr55281.C: New test.
From-SVN: r193471
Diffstat (limited to 'gcc/tree-vect-generic.c')
-rw-r--r-- | gcc/tree-vect-generic.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c index 2dec341..611666f 100644 --- a/gcc/tree-vect-generic.c +++ b/gcc/tree-vect-generic.c @@ -892,7 +892,7 @@ expand_vector_condition (gimple_stmt_iterator *gsi) int i; location_t loc = gimple_location (gsi_stmt (*gsi)); - if (TREE_CODE (a) != SSA_NAME) + if (!is_gimple_val (a)) { gcc_assert (COMPARISON_CLASS_P (a)); a_is_comparison = true; |