------- Comment #6 from rguenth at gcc dot gnu dot org 2006-04-27 10:16 ------- The vectorizer doesn't seem to handle differing types for COND_EXPRs. So something along
*** tree-vect-transform.c (revision 113296) --- tree-vect-transform.c (working copy) *************** vectorizable_condition (tree stmt, block *** 2115,2120 **** --- 2115,2125 ---- then_clause = TREE_OPERAND (op, 1); else_clause = TREE_OPERAND (op, 2); + /* We do not handle two different vector types for the condition + and the values. */ + if (TREE_TYPE (TREE_OPERAND (cond_expr, 0)) != TREE_TYPE (vectype)) + return false; + if (!vect_is_simple_cond (cond_expr, loop_vinfo)) return false; should fix it. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |rguenth at gcc dot gnu dot |dot org |org Status|NEW |ASSIGNED Last reconfirmed|2006-04-14 01:01:38 |2006-04-27 10:16:44 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27151