aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-slp-patterns.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-vect-slp-patterns.c')
-rw-r--r--gcc/tree-vect-slp-patterns.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vect-slp-patterns.c b/gcc/tree-vect-slp-patterns.c
index bb2830d..fede889 100644
--- a/gcc/tree-vect-slp-patterns.c
+++ b/gcc/tree-vect-slp-patterns.c
@@ -240,7 +240,8 @@ linear_loads_p (slp_tree_to_load_perm_map_t *perm_cache, slp_tree root)
{
complex_load_perm_t res = linear_loads_p (perm_cache, child);
kind = vect_merge_perms (kind, res.first);
- if (kind == PERM_UNKNOWN)
+ /* Unknown and Top are not valid on blends as they produce no permute. */
+ if (kind == PERM_UNKNOWN || kind == PERM_TOP)
return retval;
all_loads.safe_push (res.second);
}