tree-vect-transform.c (vectorizable_operation): Try word_mode vectorization if UNITS_...
authorPaolo Bonzini <bonzini@gnu.org>
Thu, 26 May 2005 07:58:47 +0000 (07:58 +0000)
committerPaolo Bonzini <bonzini@gcc.gnu.org>
Thu, 26 May 2005 07:58:47 +0000 (07:58 +0000)
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

gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-7.c
gcc/tree-vect-transform.c

index 6d9e69f5c1923683f9906f827ce79227bed1f0b4..73e46756c09efed8410bed79f6b0872ce6a9d6f3 100644 (file)
@@ -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
 
        * tree-ssa-math-opts.c: New file.
 
+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.
index e7747a3706aa64696516812c4d60a3f18c73233e..ae03c426670c74dcd8d6baaa68b824e5c028966a 100644 (file)
@@ -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.
index c753de8cd8179a92752178db5e7a613493d5723c..e359bbe2c563c906b12812b40e025ae9a4c899f9 100644 (file)
@@ -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" } } */
index 17d65897cdb90a2b9cdac6cf12c286bf4829133e..5b5bf220fb9976264caa85fa819aa35870f30c1e 100644 (file)
@@ -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?  */