PR tree-optimization/69207
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Jan 2016 17:55:38 +0000 (17:55 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 11 Jan 2016 17:55:38 +0000 (17:55 +0000)
* tree-vect-slp.c (vect_get_constant_vectors): For
VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
fold_convertible_p to vector_type's element type, and always
use VCE for non-VECTOR_BOOLEAN_TYPE_P.

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

gcc/ChangeLog
gcc/tree-vect-slp.c

index a256b34..6ae3248 100644 (file)
@@ -1,3 +1,11 @@
+2016-01-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/69207
+       * tree-vect-slp.c (vect_get_constant_vectors): For
+       VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
+       fold_convertible_p to vector_type's element type, and always
+       use VCE for non-VECTOR_BOOLEAN_TYPE_P.
+
 2016-01-11  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/69173
index 0aac2e2..d185838 100644 (file)
@@ -2999,12 +2999,9 @@ vect_get_constant_vectors (tree op, slp_tree slp_node,
                  gimple *init_stmt;
                  if (VECTOR_BOOLEAN_TYPE_P (vector_type))
                    {
-                     gcc_assert (fold_convertible_p (TREE_TYPE (vector_type),
-                                                     op));
+                     gcc_assert (INTEGRAL_TYPE_P (TREE_TYPE (op)));
                      init_stmt = gimple_build_assign (new_temp, NOP_EXPR, op);
                    }
-                 else if (fold_convertible_p (TREE_TYPE (vector_type), op))
-                   init_stmt = gimple_build_assign (new_temp, NOP_EXPR, op);
                  else
                    {
                      op = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (vector_type),