Re: [PATCH 4/5] testsuite: [arm/mve] Use dg-add-options arm_v8_1m_mve in MVE tests
On Tue, 14 Apr 2020 at 10:38, Andre Vieira (lists) wrote: > > On 10/04/2020 14:55, Christophe Lyon via Gcc-patches wrote: > > Several ARM/MVE tests can be compiled even if the toolchain does not > > support -mfloat-abi=hard (softfp is OK). > > > > Use dg-add-options arm_v8_1m_mve or arm_v8_1m_mve_fp instead of using > > dg-additional-options. > Hi Christophe, > > I think a bunch of these tests were initially meant to test hard float > abi with vectors, especially in the MVE integer cases, this is what the > scan-assemblers are meant to test. However, it seems to pass for > float-abi=softfp too ... which means these tests don't really mean > anything. I think it would be good to remove the scan-assembler tests > for now and improve these tests later with run tests, or some smarter > function body testing. > > I suggest we apply your changes and I can follow up with a patch to > remove the scan-assemblers for now, if a maintainer agrees with me that is. Not sure why I missed that, but mve_vector_float2.c fails on arm-linux-gnueabi, because it's scan-assembler works only with mfloat-abi=hard: gcc.target/arm/mve/intrinsics/mve_vector_float2.c scan-assembler vmov\\tq[0-7], q[0-7] I checked that diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c index e3cf8f8..10fe904 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c @@ -1,6 +1,7 @@ +/* { dg-require-effective-target arm_hard_ok } */ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ /* { dg-add-options arm_v8_1m_mve_fp } */ -/* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */ +/* { dg-additional-options "-mfloat-abi=hard" } */ #include "arm_mve.h" does the trick, but I also tried the check-function-bodies route. I hoped it would be easy, but... it wasn't because the testcase is also executed in C++ mode, so the function label is no longer foo32: but _Z5foo32v: and check-function-bodies wants exact matching here. Sigh Christophe > > Cheers, > Andre > > 2020-04-10 Christophe Lyon > > > > gcc/testsuite/ > > * gcc.target/arm/mve/intrinsics/mve_vector_float.c: Use > > arm_v8_1m_mve_fp. > > * gcc.target/arm/mve/intrinsics/mve_vector_float1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_float2.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_int.c: Use > > arm_v8_1m_mve. > > * gcc.target/arm/mve/intrinsics/mve_vector_int1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_int2.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint2.c: Likewise. > > --- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c| 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int2.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint2.c | 2 +- > > 9 files changed, 9 insertions(+), 9 deletions(-) > > > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > index 881157f..6519b81 100644 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > @@ -1,6 +1,6 @@ > > /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ > > +/* { dg-add-options arm_v8_1m_mve_fp } */ > > /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } > > {""} } */ > > -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto > > -mfloat-abi=hard -mthumb --save-temps" } */ > > > > #include "arm_mve.h" > > > > diff --git > > a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > index 9515ed6..855e3b8 100644 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > @@ -1,6 +1,6 @@ > > /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ > > +/* { dg-add-options arm_v8_1m_mve_fp } */ > > /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } > > {""} } */ > > -/* { dg-additional-options
RE: [PATCH 4/5] testsuite: [arm/mve] Use dg-add-options arm_v8_1m_mve in MVE tests
> -Original Message- > From: Gcc-patches On Behalf Of Andre > Vieira (lists) > Sent: 14 April 2020 09:38 > To: Christophe Lyon > Cc: gcc-patches@gcc.gnu.org > Subject: Re: [PATCH 4/5] testsuite: [arm/mve] Use dg-add-options > arm_v8_1m_mve in MVE tests > > On 10/04/2020 14:55, Christophe Lyon via Gcc-patches wrote: > > Several ARM/MVE tests can be compiled even if the toolchain does not > > support -mfloat-abi=hard (softfp is OK). > > > > Use dg-add-options arm_v8_1m_mve or arm_v8_1m_mve_fp instead of > using > > dg-additional-options. > Hi Christophe, > > I think a bunch of these tests were initially meant to test hard float > abi with vectors, especially in the MVE integer cases, this is what the > scan-assemblers are meant to test. However, it seems to pass for > float-abi=softfp too ... which means these tests don't really mean > anything. I think it would be good to remove the scan-assembler tests > for now and improve these tests later with run tests, or some smarter > function body testing. > > I suggest we apply your changes and I can follow up with a patch to > remove the scan-assemblers for now, if a maintainer agrees with me that is. > Sure, thanks. Ok. Kyrill > Cheers, > Andre > > 2020-04-10 Christophe Lyon > > > > gcc/testsuite/ > > * gcc.target/arm/mve/intrinsics/mve_vector_float.c: Use > > arm_v8_1m_mve_fp. > > * gcc.target/arm/mve/intrinsics/mve_vector_float1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_float2.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_int.c: Use > > arm_v8_1m_mve. > > * gcc.target/arm/mve/intrinsics/mve_vector_int1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_int2.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint1.c: Likewise. > > * gcc.target/arm/mve/intrinsics/mve_vector_uint2.c: Likewise. > > --- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c| 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int2.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint1.c | 2 +- > > gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint2.c | 2 +- > > 9 files changed, 9 insertions(+), 9 deletions(-) > > > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > index 881157f..6519b81 100644 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c > > @@ -1,6 +1,6 @@ > > /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ > > +/* { dg-add-options arm_v8_1m_mve_fp } */ > > /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } > > {""} } > */ > > -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto - > mfloat-abi=hard -mthumb --save-temps" } */ > > > > #include "arm_mve.h" > > > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > index 9515ed6..855e3b8 100644 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c > > @@ -1,6 +1,6 @@ > > /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ > > +/* { dg-add-options arm_v8_1m_mve_fp } */ > > /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } > > {""} } > */ > > -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto - > mfloat-abi=hard -mthumb --save-temps" } */ > > > > #include "arm_mve.h" > > > > diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c > b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c > > index 3ce8ea3..e3cf8f8 100644 > > --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c > > +++ b/gcc/testsuite/gcc.target
Re: [PATCH 4/5] testsuite: [arm/mve] Use dg-add-options arm_v8_1m_mve in MVE tests
On 10/04/2020 14:55, Christophe Lyon via Gcc-patches wrote: Several ARM/MVE tests can be compiled even if the toolchain does not support -mfloat-abi=hard (softfp is OK). Use dg-add-options arm_v8_1m_mve or arm_v8_1m_mve_fp instead of using dg-additional-options. Hi Christophe, I think a bunch of these tests were initially meant to test hard float abi with vectors, especially in the MVE integer cases, this is what the scan-assemblers are meant to test. However, it seems to pass for float-abi=softfp too ... which means these tests don't really mean anything. I think it would be good to remove the scan-assembler tests for now and improve these tests later with run tests, or some smarter function body testing. I suggest we apply your changes and I can follow up with a patch to remove the scan-assemblers for now, if a maintainer agrees with me that is. Cheers, Andre 2020-04-10 Christophe Lyon gcc/testsuite/ * gcc.target/arm/mve/intrinsics/mve_vector_float.c: Use arm_v8_1m_mve_fp. * gcc.target/arm/mve/intrinsics/mve_vector_float1.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_float2.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_int.c: Use arm_v8_1m_mve. * gcc.target/arm/mve/intrinsics/mve_vector_int1.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_int2.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_uint.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_uint1.c: Likewise. * gcc.target/arm/mve/intrinsics/mve_vector_uint2.c: Likewise. --- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c| 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int1.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int2.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint1.c | 2 +- gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_uint2.c | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c index 881157f..6519b81 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float.c @@ -1,6 +1,6 @@ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ +/* { dg-add-options arm_v8_1m_mve_fp } */ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto -mfloat-abi=hard -mthumb --save-temps" } */ #include "arm_mve.h" diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c index 9515ed6..855e3b8 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float1.c @@ -1,6 +1,6 @@ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ +/* { dg-add-options arm_v8_1m_mve_fp } */ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto -mfloat-abi=hard -mthumb --save-temps" } */ #include "arm_mve.h" diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c index 3ce8ea3..e3cf8f8 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_float2.c @@ -1,6 +1,6 @@ /* { dg-require-effective-target arm_v8_1m_mve_fp_ok } */ +/* { dg-add-options arm_v8_1m_mve_fp } */ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve.fp -mfpu=auto -mfloat-abi=hard -mthumb --save-temps" } */ #include "arm_mve.h" diff --git a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c index dab0705..e70cbc1 100644 --- a/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c +++ b/gcc/testsuite/gcc.target/arm/mve/intrinsics/mve_vector_int.c @@ -1,6 +1,6 @@ /* { dg-require-effective-target arm_v8_1m_mve_ok } */ +/* { dg-add-options arm_v8_1m_mve } */ /* { dg-skip-if "Incompatible float ABI" { *-*-* } { "-mfloat-abi=soft" } {""} } */ -/* { dg-additional-options "-march=armv8.1-m.main+mve -mfpu=auto -mfloat-abi=hard -mthumb --save-temps" } */ #include "arm_mve.h" diff --git