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 test failures on SPU


Hi,

Uli noticed several vectorizer cost model test failures on SPU.
Two of them are because the loops are now unrolled, so I increased the loop
bounds. And the third failure is caused by different realignment technique.
I fixed the test accordingly.

Tested by Revital on Cell SPU.

OK for mainline?

Thanks,
Ira

testsuite/ChangeLog:

	* gcc.dg/vect/costmodel/spu/costmodel-vect-33.c: Expect
	vectorization to be not profitable if peeling is used to
	realign the memory access.
	* gcc.dg/vect/costmodel/spu/costmodel-vect-76a.c: Increase
	loop bound to avoid loop unrolling.
	* gcc.dg/vect/costmodel/spu/costmodel-vect-76c.c: Likewise.

Index: costmodel/spu/costmodel-vect-33.c
===================================================================
--- costmodel/spu/costmodel-vect-33.c   (revision 168537)
+++ costmodel/spu/costmodel-vect-33.c   (working copy)
@@ -4,7 +4,7 @@
 #include <stdarg.h>
 #include "../../tree-vect.h"

-#define N 17
+#define N 16
 struct test {
   char ca[N];
 };
@@ -35,6 +35,9 @@ int main (void)
   return main1 ();
 }

-/* { dg-final { scan-tree-dump-times "vectorization not profitable" 0
"vect" } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* Peeling to align the store is used. Overhead of peeling is too high.
*/
+/* { dg-final { scan-tree-dump-times "vectorization not profitable" 1
"vect" { target vector_alignment_reachable } } } */
+
+/* Versioning to align the store is used. Overhead of versioning is not
too high.  */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1
"vect" { target {! vector_alignment_reachable} } } } */
 /* { dg-final { cleanup-tree-dump "vect" } } */
Index: costmodel/spu/costmodel-vect-76a.c
===================================================================
--- costmodel/spu/costmodel-vect-76a.c  (revision 168537)
+++ costmodel/spu/costmodel-vect-76a.c  (working copy)
@@ -3,7 +3,7 @@
 #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" -
Index: costmodel/spu/costmodel-vect-76c.c
===================================================================
--- costmodel/spu/costmodel-vect-76c.c  (revision 168537)
+++ costmodel/spu/costmodel-vect-76c.c  (working copy)
@@ -3,7 +3,7 @@
 #include <stdarg.h>
 #include "../../tree-vect.h"

-#define N 8
+#define N 32
 #define OFF 4

 /* Check handling of accesses for which the "initial condition" -


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