aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2005-05-26 07:58:47 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2005-05-26 07:58:47 +0000
commit598b20248f3cde5d55297fe27659e27b2879ab52 (patch)
tree8ea9815d20ea9d983f4221384b512d3584958492 /gcc
parent11b6985e3a1c835c92f6fad743a8ccaf6747b1c0 (diff)
downloadgcc-598b20248f3cde5d55297fe27659e27b2879ab52.zip
gcc-598b20248f3cde5d55297fe27659e27b2879ab52.tar.gz
gcc-598b20248f3cde5d55297fe27659e27b2879ab52.tar.bz2
tree-vect-transform.c (vectorizable_operation): Try word_mode vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD...
2005-05-26 Paolo Bonzini <bonzini@gnu.org> * tree-vect-transform.c (vectorizable_operation): Try word_mode vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even if a vector mode is available. testsuite/ChangeLog: 2005-05-26 Paolo Bonzini <bonzini@gnu.org> * gcc.dg/vect/vect-7.c: Remove xfail for alpha. From-SVN: r100195
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-7.c4
-rw-r--r--gcc/tree-vect-transform.c7
4 files changed, 22 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d9e69f..73e4675 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2005-05-26 Paolo Bonzini <bonzini@gnu.org>
+
+ * tree-vect-transform.c (vectorizable_operation): Try word_mode
+ vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
+ if a vector mode is available.
+
2005-05-25 Roger Sayle <roger@eyesopen.com>
PR middle-end/21709
@@ -1044,6 +1050,10 @@
2005-05-17 Paolo Bonzini <bonzini@gnu.org>
+ * tree-ssa-math-opts.c: New file.
+
+2005-05-17 Paolo Bonzini <bonzini@gnu.org>
+
* Makefile.in: Add tree-ssa-math-opts.c.
* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
* fold-const.c (distribute_real_division): New.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e7747a3..ae03c42 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2005-05-26 Paolo Bonzini <bonzini@gnu.org>
+
+ * gcc.dg/vect/vect-7.c: Remove xfail for alpha.
+
2005-05-26 Andreas Jaeger <aj@suse.de>
* gcc.dg/tree-ssa/ssa-pre-14.c (foo): Use correct type for strlen.
diff --git a/gcc/testsuite/gcc.dg/vect/vect-7.c b/gcc/testsuite/gcc.dg/vect/vect-7.c
index c753de8..e359bbe 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-7.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-7.c
@@ -45,7 +45,7 @@ int main (void)
return main1 ();
}
-/* Fails for targets that don't vectorize PLUS. */
-/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail alpha*-*-* } } } */
+/* Fails for 32-bit targets that don't vectorize PLUS. */
+/* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/tree-vect-transform.c b/gcc/tree-vect-transform.c
index 17d6589..5b5bf22 100644
--- a/gcc/tree-vect-transform.c
+++ b/gcc/tree-vect-transform.c
@@ -815,7 +815,12 @@ vectorizable_operation (tree stmt, block_stmt_iterator *bsi, tree *vec_stmt)
{
if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
fprintf (vect_dump, "op not supported by target.");
- return false;
+ if (GET_MODE_SIZE (vec_mode) != UNITS_PER_WORD
+ || LOOP_VINFO_VECT_FACTOR (loop_vinfo)
+ < vect_min_worthwhile_factor (code))
+ return false;
+ if (vect_print_dump_info (REPORT_DETAILS, UNKNOWN_LOC))
+ fprintf (vect_dump, "proceeding using word mode.");
}
/* Worthwhile without SIMD support? */