aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2017-09-12 10:51:33 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2017-09-12 10:51:33 +0000
commitdee6fc2b43d2fc004ffe65a0e030fc74facb7c64 (patch)
treeaaffe0d37b0bebe507e0ed90c22672ae5dd8f699
parentb70514811c6e42a34d54fe0b67600782538c1d57 (diff)
downloadgcc-dee6fc2b43d2fc004ffe65a0e030fc74facb7c64.zip
gcc-dee6fc2b43d2fc004ffe65a0e030fc74facb7c64.tar.gz
gcc-dee6fc2b43d2fc004ffe65a0e030fc74facb7c64.tar.bz2
tree-vect-generic.c (expand_vector_operations_1): Do nothing for operations we cannot scalarize.
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
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree-vect-generic.c12
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 68a4b3e..c150b01 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index e88a58f..dc8b2ed 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -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 */