tree-vect-generic.c (expand_vector_operations_1): Do nothing for operations we cannot...
authorRichard Biener <rguenther@suse.de>
Tue, 12 Sep 2017 10:51:33 +0000 (10:51 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 12 Sep 2017 10:51:33 +0000 (10:51 +0000)
2017-09-12  Richard Biener  <rguenther@suse.de>

* tree-vect-generic.c (expand_vector_operations_1): Do nothing
for operations we cannot scalarize.

From-SVN: r252002

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

index 68a4b3e..c150b01 100644 (file)
@@ -1,3 +1,8 @@
+2017-09-12  Richard Biener  <rguenther@suse.de>
+
+       * tree-vect-generic.c (expand_vector_operations_1): Do nothing
+       for operations we cannot scalarize.
+
 2017-09-12  Aldy Hernandez  <aldyh@redhat.com>
 
        * tree-ssa-threadbackward.c (fsm_find_thread_path): Make GC
index e88a58f..dc8b2ed 100644 (file)
@@ -1638,7 +1638,11 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi)
   /* The signedness is determined from input argument.  */
   if (code == VEC_UNPACK_FLOAT_HI_EXPR
       || code == VEC_UNPACK_FLOAT_LO_EXPR)
-    type = TREE_TYPE (rhs1);
+    {
+      type = TREE_TYPE (rhs1);
+      /* We do not know how to scalarize those.  */
+      return;
+    }
 
   /* For widening/narrowing vector operations, the relevant type is of the
      arguments, not the widened result.  VEC_UNPACK_FLOAT_*_EXPR is
@@ -1655,7 +1659,11 @@ expand_vector_operations_1 (gimple_stmt_iterator *gsi)
       || code == VEC_PACK_FIX_TRUNC_EXPR
       || code == VEC_WIDEN_LSHIFT_HI_EXPR
       || code == VEC_WIDEN_LSHIFT_LO_EXPR)
-    type = TREE_TYPE (rhs1);
+    {
+      type = TREE_TYPE (rhs1);
+      /* We do not know how to scalarize those.  */
+      return;
+    }
 
   /* Choose between vector shift/rotate by vector and vector shift/rotate by
      scalar */