https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71854

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
--- tree-vect-stmts.c.jj4       2016-07-14 20:28:33.000000000 +0200
+++ tree-vect-stmts.c   2016-07-21 13:49:35.015011603 +0200
@@ -7763,7 +7763,17 @@ vectorizable_condition (gimple *stmt, gi
           vec_else_clause = vec_oprnds3[i];

          if (masked)
-           vec_compare = vec_cond_lhs;
+           {
+             if (slp_node
+                 && !VECTOR_BOOLEAN_TYPE_P (TREE_TYPE (vec_cond_lhs)))
+               {
+                 tree zero = build_zero_cst (TREE_TYPE (vec_cond_lhs));
+                 vec_compare = build2 (NE_EXPR, vec_cmp_type,
+                                       vec_cond_lhs, zero);
+               }
+             else
+               vec_compare = vec_cond_lhs;
+           }
          else
            {
              vec_cond_rhs = vec_oprnds1[i];

didn't help, the bug has to be elsewhere, guess related to SLP pattern recog
and the VECTOR_BOOLEAN_P stuff.  Anyway, not working on this.

Reply via email to