diff options
author | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-24 09:35:00 +0000 |
---|---|---|
committer | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-10-24 09:35:00 +0000 |
commit | e9097dc55fc7e8367b03665a46d2b627cbc42ab8 (patch) | |
tree | 5442eb396e2bf2c2b415714edca5fed9b821b0b0 /gcc/tree-vect-transform.c | |
parent | 71a495a26422eda3b10183903fa3600cdc410786 (diff) | |
download | gcc-e9097dc55fc7e8367b03665a46d2b627cbc42ab8.tar.gz |
PR tree-optimization/33804
* tree-vect-transform.c (vectorizable_operation): Remove the
checks that the vectorization is worthwhile from the transformation
phase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@129599 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vect-transform.c')
-rw-r--r-- | gcc/tree-vect-transform.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c index 81abd36fadd..1f07605d67d 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."); |