summaryrefslogtreecommitdiff
path: root/gcc/tree-vect-transform.c
diff options
context:
space:
mode:
authorirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-24 09:35:00 +0000
committerirar <irar@138bc75d-0d04-0410-961f-82ee72b054a4>2007-10-24 09:35:00 +0000
commite9097dc55fc7e8367b03665a46d2b627cbc42ab8 (patch)
tree5442eb396e2bf2c2b415714edca5fed9b821b0b0 /gcc/tree-vect-transform.c
parent71a495a26422eda3b10183903fa3600cdc410786 (diff)
downloadgcc-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.c11
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.");