diff gcc/tree-vect-analyze.c @ 47:3bfb6c00c1e0

update it from 4.4.2 to 4.4.3.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Sun, 07 Feb 2010 17:44:34 +0900
parents 58ad6c70ea60
children
line wrap: on
line diff
--- a/gcc/tree-vect-analyze.c	Sun Feb 07 17:43:48 2010 +0900
+++ b/gcc/tree-vect-analyze.c	Sun Feb 07 17:44:34 2010 +0900
@@ -3213,6 +3213,7 @@
 {
   int i = 0, j, prev = -1, next, k;
   bool supported;
+  sbitmap load_index;
 
   /* FORNOW: permutations are only supported for loop-aware SLP.  */
   if (!slp_instn)
@@ -3233,6 +3234,8 @@
     return false;
 
   supported = true;
+  load_index = sbitmap_alloc (group_size);
+  sbitmap_zero (load_index); 
   for (j = 0; j < group_size; j++)
     {
       for (i = j * group_size, k = 0;
@@ -3246,9 +3249,19 @@
           }
 
          prev = next;
-       }  
+       } 
+
+      if (TEST_BIT (load_index, prev))
+        {
+          supported = false;
+          break;
+        }
+
+      SET_BIT (load_index, prev);
     }
 
+  sbitmap_free (load_index);
+
   if (supported && i == group_size * group_size
       && vect_supported_slp_permutation_p (slp_instn))
     return true;