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.
}
}
- /* 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 ())