aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-12-14 15:33:20 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-12-14 15:33:20 +0000
commit150cf34781103ff73f2c930777cb514882f73ef2 (patch)
treedfb1ae36ce6b9b99e640afd0f53f3d93f3ad33cd /gcc
parent603cca934439bff931f1902e93416ec34922a80a (diff)
downloadgcc-150cf34781103ff73f2c930777cb514882f73ef2.zip
gcc-150cf34781103ff73f2c930777cb514882f73ef2.tar.gz
gcc-150cf34781103ff73f2c930777cb514882f73ef2.tar.bz2
re PR tree-optimization/68707 (testcase gcc.dg/vect/O3-pr36098.c vectorized using VEC_PERM_EXPR rather than VEC_LOAD_LANES)
2015-12-10 Richard Biener <rguenther@suse.de> PR tree-optimization/68707 PR tree-optimization/67323 * tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances if they can be vectorized using load/store-lane instructions. From-SVN: r231620
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/tree-vect-slp.c27
2 files changed, 8 insertions, 27 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 35a0586..ed6f28e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,13 @@
2015-12-14 Richard Biener <rguenther@suse.de>
+ Revert accidentially applied
+ PR tree-optimization/68707
+ PR tree-optimization/67323
+ * tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances
+ if they can be vectorized using load/store-lane instructions.
+
+2015-12-14 Richard Biener <rguenther@suse.de>
+
PR tree-optimization/68852
* tree-vectorizer.h (struct _slp_tree): Add def_type member.
(SLP_TREE_DEF_TYPE): New accessor.
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index b87b3d41..3fdc988 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -1808,33 +1808,6 @@ vect_analyze_slp_instance (vec_info *vinfo,
}
}
- /* If the loads and stores can be handled with load/store-lane
- instructions do not generate this SLP instance. */
- if (is_a <loop_vec_info> (vinfo)
- && loads_permuted
- && dr && vect_store_lanes_supported (vectype, group_size))
- {
- slp_tree load_node;
- FOR_EACH_VEC_ELT (loads, i, load_node)
- {
- gimple *first_stmt = GROUP_FIRST_ELEMENT
- (vinfo_for_stmt (SLP_TREE_SCALAR_STMTS (load_node)[0]));
- stmt_vec_info stmt_vinfo = vinfo_for_stmt (first_stmt);
- if (! vect_load_lanes_supported (STMT_VINFO_VECTYPE (stmt_vinfo),
- GROUP_SIZE (stmt_vinfo)))
- break;
- }
- if (i == loads.length ())
- {
- if (dump_enabled_p ())
- dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
- "Built SLP cancelled: can use "
- "load/store-lanes\n");
- vect_free_slp_instance (new_instance);
- return false;
- }
- }
-
vinfo->slp_instances.safe_push (new_instance);
if (dump_enabled_p ())