diff options
author | Ira Rosen <irar@il.ibm.com> | 2006-12-12 13:07:39 +0000 |
---|---|---|
committer | Ira Rosen <irar@gcc.gnu.org> | 2006-12-12 13:07:39 +0000 |
commit | a3895f55f7b6278ed4ce31883d75ed3094da96af (patch) | |
tree | a7c9004d84030f2e840f713009d443402d46a395 /gcc/tree-vect-analyze.c | |
parent | e2c104d8b62382883eb3a704f56b7394f2c1e8e6 (diff) | |
download | gcc-a3895f55f7b6278ed4ce31883d75ed3094da96af.zip gcc-a3895f55f7b6278ed4ce31883d75ed3094da96af.tar.gz gcc-a3895f55f7b6278ed4ce31883d75ed3094da96af.tar.bz2 |
tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check for stores with gaps.
* tree-vect-analyze.c (vect_analyze_data_ref_access): Add another check
for stores with gaps.
* tree-vect-transform.c (vect_permute_store_chain): Create
interleave_high or interleave_low according to the endianess.
From-SVN: r119779
Diffstat (limited to 'gcc/tree-vect-analyze.c')
-rw-r--r-- | gcc/tree-vect-analyze.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/tree-vect-analyze.c b/gcc/tree-vect-analyze.c index 7506150..c8b2bf8 100644 --- a/gcc/tree-vect-analyze.c +++ b/gcc/tree-vect-analyze.c @@ -1804,7 +1804,8 @@ vect_analyze_data_ref_access (struct data_reference *dr) /* COUNT is the number of accesses found, we multiply it by the size of the type to get COUNT_IN_BYTES. */ count_in_bytes = type_size * count; - /* Check the size of the interleaving is not greater than STEP. */ + + /* Check that the size of the interleaving is not greater than STEP. */ if (dr_step < count_in_bytes) { if (vect_print_dump_info (REPORT_DETAILS)) @@ -1815,6 +1816,15 @@ vect_analyze_data_ref_access (struct data_reference *dr) return false; } + /* Check that the size of the interleaving is equal to STEP for stores, + i.e., that there are no gaps. */ + if (!DR_IS_READ (dr) && dr_step != count_in_bytes) + { + if (vect_print_dump_info (REPORT_DETAILS)) + fprintf (vect_dump, "interleaved store with gaps"); + return false; + } + /* Check that STEP is a multiple of type size. */ if ((dr_step % type_size) != 0) { |