OSDN Git Service

2008-02-13 Andreas Krebbel <krebbel1@de.ibm.com>
[pf3gnuchains/gcc-fork.git] / gcc / tree-vect-patterns.c
index cfae6e0..c1ce14c 100644 (file)
@@ -246,15 +246,14 @@ vect_recog_dot_prod_pattern (tree last_stmt, tree *type_in, tree *type_out)
 
   prod_type = half_type;
   stmt = SSA_NAME_DEF_STMT (oprnd0);
-  gcc_assert (stmt);
+  /* FORNOW.  Can continue analyzing the def-use chain when this stmt in a phi 
+     inside the loop (in case we are analyzing an outer-loop).  */
+  if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT)
+    return NULL; 
   stmt_vinfo = vinfo_for_stmt (stmt);
   gcc_assert (stmt_vinfo);
   if (STMT_VINFO_DEF_TYPE (stmt_vinfo) != vect_loop_def)
     return NULL;
-  /* FORNOW. Can continue analyzing the def-use chain when this stmt in a phi 
-     inside the loop (in case we are analyzing an outer-loop).  */
-  if (TREE_CODE (stmt) != GIMPLE_MODIFY_STMT)
-    return NULL; 
   expr = GIMPLE_STMT_OPERAND (stmt, 1);
   if (TREE_CODE (expr) != MULT_EXPR)
     return NULL;
@@ -545,7 +544,7 @@ vect_recog_pow_pattern (tree last_stmt, tree *type_in, tree *type_out)
    stmts that constitute the pattern. In this case it will be:
         WIDEN_SUM <x_t, sum_0>
 
-   Note: The widneing-sum idiom is a widening reduction pattern that is 
+   Note: The widening-sum idiom is a widening reduction pattern that is 
         vectorized without preserving all the intermediate results. It
          produces only N/2 (widened) results (by summing up pairs of 
         intermediate results) rather than all N results.  Therefore, we