OSDN Git Service

2004-10-01 Paolo Bonzini <bonzini@gnu.org>
authorbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Oct 2004 09:59:01 +0000 (09:59 +0000)
committerbonzini <bonzini@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Oct 2004 09:59:01 +0000 (09:59 +0000)
* tree-vectorizer.c (vectorizable_operation): Fail unless
the mode for the vector type is indeed a vector mode.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@88390 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/tree-vectorizer.c

index 7bce571..d7d99a7 100644 (file)
@@ -1,8 +1,13 @@
+2004-10-01  Paolo Bonzini  <bonzini@gnu.org>
+
+       * tree-vectorizer.c (vectorizable_operation): Fail unless
+       the mode for the vector type is indeed a vector mode.
+
 2004-10-01  Zdenek Dvorak  <dvorakz@suse.cz>
 
        * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1,
        chrec_fold_multiply): Use fold_convert or build_int_cst_type instead
-       od fonvert.
+       of convert.
        * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop,
        add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs,
        follow_ssa_edge_in_rhs): Ditto.
index 4493da1..e4de786 100644 (file)
@@ -1408,6 +1408,16 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
       return false;
     }
   vec_mode = TYPE_MODE (vectype);
+  if (!VECTOR_MODE_P (vec_mode))
+    {
+      /* TODO: tree-complex.c sometimes can parallelize operations
+        on generic vectors.  We can vectorize the loop in that case,
+        but then we should re-run the lowering pass.  */
+      if (vect_debug_details (NULL))
+       fprintf (dump_file, "mode not supported by target.");
+      return false;
+    }
+
   if (optab->handlers[(int) vec_mode].insn_code == CODE_FOR_nothing)
     {
       if (vect_debug_details (NULL))
@@ -1421,7 +1431,7 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
       return true;
     }
 
-  /** Trasform.  **/
+  /** Transform.  **/
 
   if (vect_debug_details (NULL))
     fprintf (dump_file, "transform binary/unary operation.");