diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 88d090a6ec8..fd5f595f934 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-05-01 Jan Hubicka + + * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is + invariant. + 2007-05-01 Jan Hubicka * tree.h (maybe_fold_offset_to_component_ref): Remove. diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c index d235a4917ba..f635334f19d 100644 --- a/gcc/tree-vectorizer.c +++ b/gcc/tree-vectorizer.c @@ -1644,6 +1644,12 @@ vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def_stmt, *dt = vect_constant_def; return true; } + if (is_gimple_min_invariant (operand)) + { + *def = operand; + *dt = vect_invariant_def; + return true; + } if (TREE_CODE (operand) != SSA_NAME) { @@ -1671,7 +1677,7 @@ vect_is_simple_use (tree operand, loop_vec_info loop_vinfo, tree *def_stmt, if (IS_EMPTY_STMT (*def_stmt)) { tree arg = TREE_OPERAND (*def_stmt, 0); - if (TREE_CODE (arg) == INTEGER_CST || TREE_CODE (arg) == REAL_CST) + if (is_gimple_min_invariant (arg)) { *def = operand; *dt = vect_invariant_def;