* [PATCH] Fix testsuite test cases slp-perm-[1234].c
@ 2010-07-16 18:30 Peter Bergner
2010-07-18 18:02 ` Richard Guenther
0 siblings, 1 reply; 3+ messages in thread
From: Peter Bergner @ 2010-07-16 18:30 UTC (permalink / raw)
To: gcc-patches
Sometime recently (r161984?) the compiler is now vectorizing the
initialization loops for slp-perm.[123].c on powerpc64-linux. I copied
the method of really disabling vectorization in the initialization loops
used in PR testsuite/44538 by adding a asm ("") into the loops we don't
want vectorized. For safety, I did the same for the check_results loops.
Looking closer, I also noticed the loop limits for the check_results
loop were bogus for slp-perm-[34].c, so I fixed those too.
Ok for mainline?
Peter
* gcc.dg/vect/slp-perm-1.c (main): Make sure loops aren't vectorized.
* gcc.dg/vect/slp-perm-2.c (main): Likewise.
* gcc.dg/vect/slp-perm-3.c (main): Likewise. Fix loop limit.
* gcc.dg/vect/slp-perm-4.c (main): Fix loop limit.
Index: gcc.dg/vect/slp-perm-1.c
===================================================================
--- gcc.dg/vect/slp-perm-1.c (revision 162190)
+++ gcc.dg/vect/slp-perm-1.c (working copy)
@@ -42,16 +42,18 @@ int main (int argc, const char* argv[])
for (i = 0; i < N; i++)
{
input[i] = i%256;
- if (input[i] > 200)
- abort();
output[i] = 0;
+ __asm__ volatile ("");
}
foo (input, output);
for (i = 0; i < N; i++)
- if (output[i] != check_results[i])
- abort ();
+ {
+ if (output[i] != check_results[i])
+ abort ();
+ __asm__ volatile ("");
+ }
return 0;
}
Index: gcc.dg/vect/slp-perm-2.c
===================================================================
--- gcc.dg/vect/slp-perm-2.c (revision 162190)
+++ gcc.dg/vect/slp-perm-2.c (working copy)
@@ -37,16 +37,18 @@ int main (int argc, const char* argv[])
for (i = 0; i < N; i++)
{
input[i] = i%256;
- if (input[i] > 200)
- abort();
output[i] = 0;
+ __asm__ volatile ("");
}
foo (input, output);
for (i = 0; i < N; i++)
- if (output[i] != check_results[i])
- abort ();
+ {
+ if (output[i] != check_results[i])
+ abort ();
+ __asm__ volatile ("");
+ }
return 0;
}
Index: gcc.dg/vect/slp-perm-3.c
===================================================================
--- gcc.dg/vect/slp-perm-3.c (revision 162190)
+++ gcc.dg/vect/slp-perm-3.c (working copy)
@@ -51,16 +51,18 @@ int main (int argc, const char* argv[])
for (i = 0; i < N; i++)
{
input[i] = i%256;
- if (input[i] > 200)
- abort();
output[i] = 0;
+ __asm__ volatile ("");
}
foo (input, output);
- for (i = 0; i < N - N; i++)
- if (output[i] != check_results[i])
- abort ();
+ for (i = 0; i < N; i++)
+ {
+ if (output[i] != check_results[i])
+ abort ();
+ __asm__ volatile ("");
+ }
return 0;
}
Index: gcc.dg/vect/slp-perm-4.c
===================================================================
--- gcc.dg/vect/slp-perm-4.c (revision 162190)
+++ gcc.dg/vect/slp-perm-4.c (working copy)
@@ -74,7 +74,7 @@ int main (int argc, const char* argv[])
foo (input, output);
- for (i = 0; i < N - N; i++)
+ for (i = 0; i < N; i++)
if (output[i] != check_results[i])
abort ();
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Fix testsuite test cases slp-perm-[1234].c
2010-07-16 18:30 [PATCH] Fix testsuite test cases slp-perm-[1234].c Peter Bergner
@ 2010-07-18 18:02 ` Richard Guenther
2010-07-19 17:37 ` Peter Bergner
0 siblings, 1 reply; 3+ messages in thread
From: Richard Guenther @ 2010-07-18 18:02 UTC (permalink / raw)
To: Peter Bergner; +Cc: gcc-patches
On Fri, Jul 16, 2010 at 8:29 PM, Peter Bergner <bergner@vnet.ibm.com> wrote:
> Sometime recently (r161984?) the compiler is now vectorizing the
> initialization loops for slp-perm.[123].c on powerpc64-linux. I copied
> the method of really disabling vectorization in the initialization loops
> used in PR testsuite/44538 by adding a asm ("") into the loops we don't
> want vectorized. For safety, I did the same for the check_results loops.
> Looking closer, I also noticed the loop limits for the check_results
> loop were bogus for slp-perm-[34].c, so I fixed those too.
>
> Ok for mainline?
Ok.
Thanks,
Richard.
> Peter
>
>
> * gcc.dg/vect/slp-perm-1.c (main): Make sure loops aren't vectorized.
> * gcc.dg/vect/slp-perm-2.c (main): Likewise.
> * gcc.dg/vect/slp-perm-3.c (main): Likewise. Fix loop limit.
> * gcc.dg/vect/slp-perm-4.c (main): Fix loop limit.
>
> Index: gcc.dg/vect/slp-perm-1.c
> ===================================================================
> --- gcc.dg/vect/slp-perm-1.c (revision 162190)
> +++ gcc.dg/vect/slp-perm-1.c (working copy)
> @@ -42,16 +42,18 @@ int main (int argc, const char* argv[])
> for (i = 0; i < N; i++)
> {
> input[i] = i%256;
> - if (input[i] > 200)
> - abort();
> output[i] = 0;
> + __asm__ volatile ("");
> }
>
> foo (input, output);
>
> for (i = 0; i < N; i++)
> - if (output[i] != check_results[i])
> - abort ();
> + {
> + if (output[i] != check_results[i])
> + abort ();
> + __asm__ volatile ("");
> + }
>
> return 0;
> }
> Index: gcc.dg/vect/slp-perm-2.c
> ===================================================================
> --- gcc.dg/vect/slp-perm-2.c (revision 162190)
> +++ gcc.dg/vect/slp-perm-2.c (working copy)
> @@ -37,16 +37,18 @@ int main (int argc, const char* argv[])
> for (i = 0; i < N; i++)
> {
> input[i] = i%256;
> - if (input[i] > 200)
> - abort();
> output[i] = 0;
> + __asm__ volatile ("");
> }
>
> foo (input, output);
>
> for (i = 0; i < N; i++)
> - if (output[i] != check_results[i])
> - abort ();
> + {
> + if (output[i] != check_results[i])
> + abort ();
> + __asm__ volatile ("");
> + }
>
> return 0;
> }
> Index: gcc.dg/vect/slp-perm-3.c
> ===================================================================
> --- gcc.dg/vect/slp-perm-3.c (revision 162190)
> +++ gcc.dg/vect/slp-perm-3.c (working copy)
> @@ -51,16 +51,18 @@ int main (int argc, const char* argv[])
> for (i = 0; i < N; i++)
> {
> input[i] = i%256;
> - if (input[i] > 200)
> - abort();
> output[i] = 0;
> + __asm__ volatile ("");
> }
>
> foo (input, output);
>
> - for (i = 0; i < N - N; i++)
> - if (output[i] != check_results[i])
> - abort ();
> + for (i = 0; i < N; i++)
> + {
> + if (output[i] != check_results[i])
> + abort ();
> + __asm__ volatile ("");
> + }
>
> return 0;
> }
> Index: gcc.dg/vect/slp-perm-4.c
> ===================================================================
> --- gcc.dg/vect/slp-perm-4.c (revision 162190)
> +++ gcc.dg/vect/slp-perm-4.c (working copy)
> @@ -74,7 +74,7 @@ int main (int argc, const char* argv[])
>
> foo (input, output);
>
> - for (i = 0; i < N - N; i++)
> + for (i = 0; i < N; i++)
> if (output[i] != check_results[i])
> abort ();
>
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Fix testsuite test cases slp-perm-[1234].c
2010-07-18 18:02 ` Richard Guenther
@ 2010-07-19 17:37 ` Peter Bergner
0 siblings, 0 replies; 3+ messages in thread
From: Peter Bergner @ 2010-07-19 17:37 UTC (permalink / raw)
To: Richard Guenther; +Cc: gcc-patches
On Sun, 2010-07-18 at 20:02 +0200, Richard Guenther wrote:
> On Fri, Jul 16, 2010 at 8:29 PM, Peter Bergner <bergner@vnet.ibm.com> wrote:
> > Sometime recently (r161984?) the compiler is now vectorizing the
> > initialization loops for slp-perm.[123].c on powerpc64-linux. I copied
> > the method of really disabling vectorization in the initialization loops
> > used in PR testsuite/44538 by adding a asm ("") into the loops we don't
> > want vectorized. For safety, I did the same for the check_results loops.
> > Looking closer, I also noticed the loop limits for the check_results
> > loop were bogus for slp-perm-[34].c, so I fixed those too.
> >
> > Ok for mainline?
>
> Ok.
Thanks, committed as revision 162311.
Peter
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-07-19 17:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-07-16 18:30 [PATCH] Fix testsuite test cases slp-perm-[1234].c Peter Bergner
2010-07-18 18:02 ` Richard Guenther
2010-07-19 17:37 ` Peter Bergner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).