This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch, testsuite] Fix vectorizer cost model testcases for SPU.


Hi,

The attached patch fixes vectorizer cost model testcases for SPU.

Tested on Cell SPU. O.K. for 4.3.2 and mainline?

Thanks,
Ira

ChangeLog:

      * gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c: Add noinline.
      attribute to main1().
      * gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Increase the loop
      bound in order to make it worth to vectorize the loop.
      * gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c: Likewise.

Index: testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c
===================================================================?
--- testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c   (revision
136861)
+++ testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-iv-9.c   (working
copy)
@@ -6,7 +6,7 @@
 #define N 26
 int a[N];

-int main1 (int X)
+__attribute__ ((noinline)) int main1 (int X)
 {
   int s = X;
   int i;
Index: testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-33.c
===================================================================
--- testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-33.c     (revision
136861)
+++ testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-33.c     (working
copy)
@@ -4,7 +4,7 @@
 #include <stdarg.h>
 #include "../../tree-vect.h"

-#define N 16
+#define N 17
 struct test {..
   char ca[N];..
 };
Index: testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c
===================================================================
--- testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c    (revision
136861)
+++ testsuite/gcc.dg/vect/costmodel/spu/costmodel-vect-76b.c    (working
copy)
@@ -3,20 +3,20 @@.
 #include <stdarg.h>
 #include "../../tree-vect.h"

-#define N 8.
+#define N 16
 #define OFF 4..

 /* Check handling of accesses for which the "initial condition" -
    the expression that represents the first location accessed - is
    more involved than just an ssa_name.  */

-int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13,
17, 0, 2, 6, 10};
+int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13,
17, 0, 2, 6, 10, 0, 1, 3, 5, 7, 11, 13, 17};

 int main1 (int *pib)
 {
   int i;
   int ia[N+OFF];
-  int ic[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10};
+  int ic[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 0, 1, 3, 5, 7,
11, 13, 17};

   for (i = OFF; i < N; i++)
     {


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]