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
vectype cannot be determined for the scalar type.
(vect_analyze_slp_instance): Likewise.
+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
--- /dev/null
+/* { 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" } } */
+
{
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.");