[RS6000] Unsupported test options for -m32
Alan Modra
amodra@gmail.com
Mon Oct 26 23:35:45 GMT 2020
On Mon, Oct 26, 2020 at 04:28:20PM +0000, Iain Sandoe wrote:
> David Edelsohn via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
>
> > FAIL: gcc.target/powerpc/swaps-p8-22.c (test for excess errors)
> > Excess errors:
> > cc1: error: '-mcmodel' not supported in this configuration
> >
> > * gcc.target/powerpc/swaps-p8-22.c: Disable for -m32.
> >
> > diff --git a/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
> > b/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
> > index 83f6ab3a1c0..bceada41b75 100644
> > --- a/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
> > +++ b/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
> > @@ -1,5 +1,5 @@
> > /* { dg-do compile } */
> > -/* { dg-require-effective-target powerpc_p8vector_ok } */
> > +/* { dg-require-effective-target { lp64 && powerpc_p8vector_ok } } */
> > /* { dg-options "-O2 -mdejagnu-cpu=power8 -maltivec -mcmodel=large" } */
> >
> > /* The expansion for vector character multiply introduces a vperm
> > operation.
> >
> >
> > Please don't fix the failure this way. This is incorrect. -m32 means
> > more than Linux. This reverts my hard work to run more of the powerpc
> > testsuite on AIX. AIX also is -m32.
Ah, David was the culprit that broke the test on linux and darwin.
;-)
> Darwin also is (powerpc-darwin) and has an m32 multilib (powerpc64-darwin)
> so not reliable there either.
> >
> > This probably should be fixed with
> >
> > { dg-additional-options "-mcmodel=large" { target { lp64 ||
> > !powerpc*-*-linux* } } }
> >
> > or whatever the appropriate incantation to omit only ppc32 linux. Or maybe
> >
> > { dg-do compile { target { lp64 || !powerpc*-*-linux* } } }
>
> mcmodel will also break for powerpc64 and powerpc / m64 Darwin, so if this is
> meant to be Linux-specific, that seems to be the thing to mention.
$ grep mcmodel gcc/config/rs6000/*.opt
gcc/config/rs6000/aix64.opt:mcmodel=
gcc/config/rs6000/aix64.opt:Known code models (for use with the -mcmodel= option):
gcc/config/rs6000/linux64.opt:mcmodel=
gcc/config/rs6000/linux64.opt:Known code models (for use with the -mcmodel= option):
aix64.opt is used for all rs6000-aix targets, linux64.opt for 64-bit
and biarch powerpc linux targets. powerpc linux errors for -mcmodel
when -m32 (yes, even when biarch Segher). So the proper test is a
little more complicated than any suggestion given so far.
This looks correct to me, bearing in mind that the test is a duplicate
of swaps-p8-21.c aimed specifically at testing -mcmodel=large.
* gcc.target/powerpc/swaps-p8-22.c: Enable only for aix and
-m64 linux.
diff --git a/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c b/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
index 83f6ab3a1c0..847aebccca8 100644
--- a/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
+++ b/gcc/testsuite/gcc.target/powerpc/swaps-p8-22.c
@@ -1,4 +1,4 @@
-/* { dg-do compile } */
+/* { dg-do compile { target { *-*-aix* || { *-*-linux* && lp64 } } } } */
/* { dg-require-effective-target powerpc_p8vector_ok } */
/* { dg-options "-O2 -mdejagnu-cpu=power8 -maltivec -mcmodel=large" } */
--
Alan Modra
Australia Development Lab, IBM
More information about the Gcc-patches
mailing list