diff options
author | Ira Rosen <irar@il.ibm.com> | 2008-05-22 10:39:44 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2008-05-22 10:39:44 +0000 |
commit | f8b52c2ff7dfe999f04c2db276c8c557d7eaf9e9 (patch) | |
tree | 8807701d0a703f7ad3321677074d5ac787dae058 /gcc | |
parent | 1842e4d44ec1023a2c7f74ccfae56a91f858d759 (diff) | |
download | gcc-f8b52c2ff7dfe999f04c2db276c8c557d7eaf9e9.zip gcc-f8b52c2ff7dfe999f04c2db276c8c557d7eaf9e9.tar.gz gcc-f8b52c2ff7dfe999f04c2db276c8c557d7eaf9e9.tar.bz2 |
re PR tree-optimization/36293 (ICE or wrong code in vector-strided gap tests)
PR tree-optimization/36293
* tree-vect-transform.c (vect_transform_strided_load): Don't check
if the first load must be skipped because of a gap.
From-SVN: r135755
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/tree-vect-transform.c | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4f2d4c4..eda2ea2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-05-22 Ira Rosen <irar@il.ibm.com> + + PR tree-optimization/36293 + * tree-vect-transform.c (vect_transform_strided_load): Don't check + if the first load must be skipped because of a gap. + 2008-05-22 Richard Guenther <rguenther@suse.de> * tree-dfa.c (refs_may_alias_p): Exit early if possible. Handle diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 82a4c84..1f6a13b 100644 --- a/gcc/tree-vect-transform.c +++ b/gcc/tree-vect-transform.c @@ -5473,12 +5473,14 @@ vect_transform_strided_load (tree stmt, VEC(tree,heap) *dr_chain, int size, break; /* Skip the gaps. Loads created for the gaps will be removed by dead - code elimination pass later. + code elimination pass later. No need to check for the first stmt in + the group, since it always exists. DR_GROUP_GAP is the number of steps in elements from the previous access (if there is no gap DR_GROUP_GAP is 1). We skip loads that correspond to the gaps. */ - if (gap_count < DR_GROUP_GAP (vinfo_for_stmt (next_stmt))) + if (next_stmt != first_stmt + && gap_count < DR_GROUP_GAP (vinfo_for_stmt (next_stmt))) { gap_count++; continue; |