aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-stmts.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-04-18 12:57:17 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-04-18 12:57:17 +0000
commit08940f33eb4bb87f8944e771189ba48d8c7ca176 (patch)
treed2f83ada3798b32cb210ac1543a9fa62b2494525 /gcc/tree-vect-stmts.c
parent0e0f87d44bfa4c5a2e6547f780e869a8756dca70 (diff)
downloadgcc-08940f33eb4bb87f8944e771189ba48d8c7ca176.zip
gcc-08940f33eb4bb87f8944e771189ba48d8c7ca176.tar.gz
gcc-08940f33eb4bb87f8944e771189ba48d8c7ca176.tar.bz2
tree-vect-data-refs.c (vect_analyze_group_access): Properly handle negative step.
2013-04-18 Richard Biener <rguenther@suse.de> * tree-vect-data-refs.c (vect_analyze_group_access): Properly handle negative step. Remove redundant checks. (vect_create_data_ref_ptr): Avoid ICEs with non-constant steps. * tree-vect-stmts.c (vectorizable_load): Instead of asserting for negative step and grouped loads fail to vectorize. From-SVN: r198054
Diffstat (limited to 'gcc/tree-vect-stmts.c')
-rw-r--r--gcc/tree-vect-stmts.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index bdd4d64..ca474c1 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -4465,7 +4465,13 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt,
if (negative)
{
- gcc_assert (!grouped_load);
+ if (grouped_load)
+ {
+ if (dump_enabled_p ())
+ dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
+ "negative step for group load not supported");
+ return false;
+ }
alignment_support_scheme = vect_supportable_dr_alignment (dr, false);
if (alignment_support_scheme != dr_aligned
&& alignment_support_scheme != dr_unaligned_supported)