Message ID | 8e5d314579e9051b828167d5b9eb1f94a5daec70.camel@vnet.ibm.com |
---|---|
State | New |
Headers | show |
Series | [rs6000] testsuite fixup pr96139 tests | expand |
Hi! On Fri, Sep 11, 2020 at 09:44:54AM -0500, will schmidt wrote: > As reported, the recently added pr96139 tests will fail on older targets > because the tests are missing the appropriate -mvsx or -maltivec options. > This adds the options and clarifies the dg-require statements. > gcc/testsuite/ChangeLog: > * gcc.target/powerpc/pr96139-a.c: specify -mvsx option and require. > * gcc.target/powerpc/pr96139-a.c: specify -mvsx option and require. > * gcc.target/powerpc/pr96139-a.c: specify -maltivec option and require. (Capital "S" on each line.) ("and require" isn't clear... "dg-require"?) (And the files are -a, -b, -c). > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > index b3daee4..12a3383 100644 > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > @@ -1,9 +1,9 @@ > /* { dg-do compile } */ > -/* { dg-options "-O2 -Wall -m32" } */ > +/* { dg-options "-O2 -Wall -m32 -mvsx" } */ > /* { dg-require-effective-target ilp32 } */ > -/* { dg-require-effective-target powerpc_altivec_ok } */ > +/* { dg-require-effective-target powerpc_vsx_ok } */ This uses vector long long. Okay. > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-b.c > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-b.c Ditto. > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > index 2464b8d..3ada260 100644 > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > @@ -1,7 +1,7 @@ > /* { dg-do run } */ > -/* { dg-options "-O2 -Wall" } */ > +/* { dg-options "-O2 -Wall -maltivec" } */ > /* { dg-require-effective-target powerpc_altivec_ok } */ But this one as well, why does it not need VSX like the rest? Segher
On Fri, 2020-09-11 at 12:37 -0500, Segher Boessenkool wrote: > Hi! > > On Fri, Sep 11, 2020 at 09:44:54AM -0500, will schmidt wrote: > > As reported, the recently added pr96139 tests will fail on older targets > > because the tests are missing the appropriate -mvsx or -maltivec options. > > This adds the options and clarifies the dg-require statements. > > gcc/testsuite/ChangeLog: > > * gcc.target/powerpc/pr96139-a.c: specify -mvsx option and require. > > * gcc.target/powerpc/pr96139-a.c: specify -mvsx option and require. > > * gcc.target/powerpc/pr96139-a.c: specify -maltivec option and require. > > (Capital "S" on each line.) > ("and require" isn't clear... "dg-require"?) > (And the files are -a, -b, -c). Thanks for the review. I've updated that to read: gcc/testsuite/ChangeLog: * gcc.target/powerpc/pr96139-a.c: Specify -mvsx option and update the dg-require stanza to match. * gcc.target/powerpc/pr96139-b.c: Same. * gcc.target/powerpc/pr96139-c.c: Specify -maltivec option and update the dg-require stanza to match. > > > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > > index b3daee4..12a3383 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c > > @@ -1,9 +1,9 @@ > > /* { dg-do compile } */ > > -/* { dg-options "-O2 -Wall -m32" } */ > > +/* { dg-options "-O2 -Wall -m32 -mvsx" } */ > > /* { dg-require-effective-target ilp32 } */ > > -/* { dg-require-effective-target powerpc_altivec_ok } */ > > +/* { dg-require-effective-target powerpc_vsx_ok } */ > > This uses vector long long. Okay. > > > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-b.c > > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-b.c > > Ditto. > > > diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > > index 2464b8d..3ada260 100644 > > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > > @@ -1,7 +1,7 @@ > > /* { dg-do run } */ > > -/* { dg-options "-O2 -Wall" } */ > > +/* { dg-options "-O2 -Wall -maltivec" } */ > > /* { dg-require-effective-target powerpc_altivec_ok } */ > > But this one as well, why does it not need VSX like the rest? I made these changes based on the failures reported when I tested against older targets, and thats all it seems to want. :-) Upon further investigation, it appears that the logic simplifies down to a BIT_FIELD_REF against the llfoo symbol and the call to printf. The actual code generation consists entirely of non-vector instructions (lis,ori,std,addi,... bl..). So it simply does not need the vsx support. It is still sufficient to trigger the initially reported error, so it does still serve that purpose. thanks, -Will > > > Segher
Hi! On Fri, Sep 11, 2020 at 02:55:03PM -0500, will schmidt wrote: > > > --- a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > > > +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c > > > @@ -1,7 +1,7 @@ > > > /* { dg-do run } */ > > > -/* { dg-options "-O2 -Wall" } */ > > > +/* { dg-options "-O2 -Wall -maltivec" } */ > > > /* { dg-require-effective-target powerpc_altivec_ok } */ > > > > But this one as well, why does it not need VSX like the rest? > > I made these changes based on the failures reported when I tested > against older targets, and thats all it seems to want. :-) > > Upon further investigation, it appears that the logic simplifies down > to a BIT_FIELD_REF against the llfoo symbol and the call to printf. > The actual code generation consists entirely of non-vector instructions > (lis,ori,std,addi,... bl..). So it simply does not need the vsx > support. Ah, this testcase will not actually use vectors at all. It just needs -maltivec for altivec.h to work, and for the "vector" keyword. Okay for trunk. Thank you! Segher
diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c index b3daee4..12a3383 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr96139-a.c +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-a.c @@ -1,9 +1,9 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -m32" } */ +/* { dg-options "-O2 -Wall -m32 -mvsx" } */ /* { dg-require-effective-target ilp32 } */ -/* { dg-require-effective-target powerpc_altivec_ok } */ +/* { dg-require-effective-target powerpc_vsx_ok } */ #include <stdio.h> #include <altivec.h> void diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-b.c b/gcc/testsuite/gcc.target/powerpc/pr96139-b.c index 19c1110..379849a 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr96139-b.c +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-b.c @@ -1,9 +1,9 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -Wall -m64" } */ +/* { dg-options "-O2 -Wall -m64 -mvsx" } */ /* { dg-require-effective-target lp64 } */ -/* { dg-require-effective-target powerpc_altivec_ok } */ +/* { dg-require-effective-target powerpc_vsx_ok } */ #include <stdio.h> #include <altivec.h> void diff --git a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c index 2464b8d..3ada260 100644 --- a/gcc/testsuite/gcc.target/powerpc/pr96139-c.c +++ b/gcc/testsuite/gcc.target/powerpc/pr96139-c.c @@ -1,7 +1,7 @@ /* { dg-do run } */ -/* { dg-options "-O2 -Wall" } */ +/* { dg-options "-O2 -Wall -maltivec" } */ /* { dg-require-effective-target powerpc_altivec_ok } */ /* * Based on test created by sjmunroe for pr96139 */