re PR tree-optimization/33804 (ICE in vect_transform_stmt, at tree-vect-transform.c:6131 with -ftree-vectorize)
PR tree-optimization/33804 * tree-vect-transform.c (vectorizable_operation): Remove the checks that the vectorization is worthwhile from the transformation phase. From-SVN: r129599
This commit is contained in:
parent
20e545c381
commit
712f117220
4 changed files with 36 additions and 4 deletions
|
@ -1,3 +1,10 @@
|
|||
2007-10-24 Ira Rosen <irar@il.ibm.com>
|
||||
|
||||
PR tree-optimization/33804
|
||||
* tree-vect-transform.c (vectorizable_operation): Remove the
|
||||
checks that the vectorization is worthwhile from the transformation
|
||||
phase.
|
||||
|
||||
2007-10-24 Ira Rosen <irar@il.ibm.com>
|
||||
|
||||
* tree-vect-analyze.c (vect_build_slp_tree): Return false if
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2007-10-24 Ira Rosen <irar@il.ibm.com>
|
||||
|
||||
PR tree-optimization/33804
|
||||
* gcc.dg/vect/pr33804.c: New testcase.
|
||||
|
||||
2007-10-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
|
||||
|
||||
PR forrtran/33849
|
||||
|
|
17
gcc/testsuite/gcc.dg/vect/pr33804.c
Normal file
17
gcc/testsuite/gcc.dg/vect/pr33804.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target vect_int } */
|
||||
|
||||
void f(unsigned char *s, unsigned char *d, int n) {
|
||||
int i;
|
||||
for (i = 0; i < n; i += 4) {
|
||||
d[i + 0] += s[i + 0];
|
||||
d[i + 1] += s[i + 1];
|
||||
d[i + 2] += s[i + 2];
|
||||
d[i + 3] += s[i + 3];
|
||||
}
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|
||||
/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" } } */
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
||||
|
|
@ -3858,18 +3858,21 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt,
|
|||
{
|
||||
if (vect_print_dump_info (REPORT_DETAILS))
|
||||
fprintf (vect_dump, "op not supported by target.");
|
||||
/* Check only during analysis. */
|
||||
if (GET_MODE_SIZE (vec_mode) != UNITS_PER_WORD
|
||||
|| LOOP_VINFO_VECT_FACTOR (loop_vinfo)
|
||||
< vect_min_worthwhile_factor (code))
|
||||
|| (LOOP_VINFO_VECT_FACTOR (loop_vinfo)
|
||||
< vect_min_worthwhile_factor (code)
|
||||
&& !vec_stmt))
|
||||
return false;
|
||||
if (vect_print_dump_info (REPORT_DETAILS))
|
||||
fprintf (vect_dump, "proceeding using word mode.");
|
||||
}
|
||||
|
||||
/* Worthwhile without SIMD support? */
|
||||
/* Worthwhile without SIMD support? Check only during analysis. */
|
||||
if (!VECTOR_MODE_P (TYPE_MODE (vectype))
|
||||
&& LOOP_VINFO_VECT_FACTOR (loop_vinfo)
|
||||
< vect_min_worthwhile_factor (code))
|
||||
< vect_min_worthwhile_factor (code)
|
||||
&& !vec_stmt)
|
||||
{
|
||||
if (vect_print_dump_info (REPORT_DETAILS))
|
||||
fprintf (vect_dump, "not worthwhile without SIMD support.");
|
||||
|
|
Loading…
Add table
Reference in a new issue