aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-transform.c
diff options
context:
space:
mode:
authorIra Rosen <irar@il.ibm.com>2007-10-24 09:35:00 +0000
committerIra Rosen <irar@gcc.gnu.org>2007-10-24 09:35:00 +0000
commit712f1172209b203503199c653f103fb7fb817005 (patch)
tree5442eb396e2bf2c2b415714edca5fed9b821b0b0 /gcc/tree-vect-transform.c
parent20e545c381eecde36210a913e013e588422a3cef (diff)
downloadgcc-712f1172209b203503199c653f103fb7fb817005.zip
gcc-712f1172209b203503199c653f103fb7fb817005.tar.gz
gcc-712f1172209b203503199c653f103fb7fb817005.tar.bz2
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
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r--gcc/tree-vect-transform.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 81abd36..1f07605 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -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.");