summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-generic.c
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 /gcc/tree-vect-generic.c
parentb70514811c6e42a34d54fe0b67600782538c1d57 (diff)
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
Diffstat (limited to 'gcc/tree-vect-generic.c')
-rw-r--r--gcc/tree-vect-generic.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index e88a58fd0b2..dc8b2ed38ad 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 */