diff mbox series

[v3] testsuite: arm: Use effective-target for attr-neon* tests

Message ID 20241110090107.2598870-1-torbjorn.svensson@foss.st.com
State New
Headers show
Series [v3] testsuite: arm: Use effective-target for attr-neon* tests | expand

Commit Message

Torbjorn SVENSSON Nov. 10, 2024, 9:01 a.m. UTC
Changes since v1:

- Changed from arm_neon to arm_arch_v7a for the required effective target.

Changes since v2:

- Added arm_libc_fp_abi as an required effective taret.
- Removed to arm_neon and arm_vfp from effective target.


With v3, the tests are now tested in armv7-a context in either hard or softfp
mode, depending on how libc was built.

Ok for trunk and releases/gcc-14?

--

Force armv7-a as the tests require a neon compatible architecture.

gcc/testsuite/ChangeLog:

	* gcc.target/arm/attr-neon-builtin-fail.c: Use effective-target
	arm_arch_v7a.
	* gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
	* gcc.target/arm/attr-neon-fp16.c: Likewise.
	* gcc.target/arm/attr-neon2.c: Likewise.

Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
---
 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c  | 7 ++++---
 gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
 gcc/testsuite/gcc.target/arm/attr-neon-fp16.c          | 6 ++++--
 gcc/testsuite/gcc.target/arm/attr-neon2.c              | 7 ++++---
 4 files changed, 16 insertions(+), 10 deletions(-)

Comments

Christophe Lyon Nov. 14, 2024, 3:16 p.m. UTC | #1
Hi Torbjörn,

On Sun, 10 Nov 2024 at 10:09, Torbjörn SVENSSON
<torbjorn.svensson@foss.st.com> wrote:
>
> Changes since v1:
>
> - Changed from arm_neon to arm_arch_v7a for the required effective target.
>
> Changes since v2:
>
> - Added arm_libc_fp_abi as an required effective taret.
> - Removed to arm_neon and arm_vfp from effective target.
>
>
> With v3, the tests are now tested in armv7-a context in either hard or softfp
> mode, depending on how libc was built.
>
I can see these tests have already quite a bit of history regarding
their dg-effective-target.... :-)

In your initial email, you said the tests fail for m55hard and
m85hard. So does this mean they pass for m7hard etc ? (I mean without
this patch).
As Richard said, there seems to be an underlying issue we can fix separately.

> Ok for trunk and releases/gcc-14?
AFAIU the patch does what was suggested: skip those tests on M-profile.

Does the arm_arch_v7a part also work on gcc-14 given it does not have
the -cpu=unset feature?

Thanks,

Christophe

>
> --
>
> Force armv7-a as the tests require a neon compatible architecture.
>
> gcc/testsuite/ChangeLog:
>
>         * gcc.target/arm/attr-neon-builtin-fail.c: Use effective-target
>         arm_arch_v7a.
>         * gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
>         * gcc.target/arm/attr-neon-fp16.c: Likewise.
>         * gcc.target/arm/attr-neon2.c: Likewise.
>
> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
> ---
>  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c  | 7 ++++---
>  gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
>  gcc/testsuite/gcc.target/arm/attr-neon-fp16.c          | 6 ++++--
>  gcc/testsuite/gcc.target/arm/attr-neon2.c              | 7 ++++---
>  4 files changed, 16 insertions(+), 10 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
> index fb6e0b9cd66..143ad9c4908 100644
> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
> @@ -1,9 +1,10 @@
>  /* Check that calling a neon builtin from a function compiled with vfp fails.  */
>  /* { dg-do compile } */
> -/* { dg-require-effective-target arm_fp_ok } */
> -/* { dg-require-effective-target arm_neon_ok } */
> +/* { dg-require-effective-target arm_arch_v7a_ok } */
> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>  /* { dg-options "-O2" } */
> -/* { dg-add-options arm_fp } */
> +/* { dg-add-options arm_arch_v7a } */
> +/* { dg-add-options arm_libc_fp_abi } */
>
>  #include <arm_neon.h>
>
> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
> index 9cb5a2ebb90..39689b7c3c7 100644
> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
> @@ -1,8 +1,10 @@
>  /* Check that calling a neon builtin from a function compiled with vfp fails.  */
>  /* { dg-do compile } */
> -/* { dg-require-effective-target arm_vfp_ok } */
> +/* { dg-require-effective-target arm_arch_v7a_ok } */
> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>  /* { dg-options "-O2" } */
> -/* { dg-add-options arm_vfp } */
> +/* { dg-add-options arm_arch_v7a } */
> +/* { dg-add-options arm_libc_fp_abi } */
>
>  extern __simd64_int8_t a, b;
>
> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
> index d7b75645bc4..9bc6ce635e2 100644
> --- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
> @@ -1,8 +1,10 @@
>  /* { dg-do compile } */
>  /* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } { "-mpure-code" } } */
> -/* { dg-require-effective-target arm_fp_ok } */
> +/* { dg-require-effective-target arm_arch_v7a_ok } */
> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>  /* { dg-options "-mfp16-format=ieee" } */
> -/* { dg-add-options arm_fp } */
> +/* { dg-add-options arm_arch_v7a } */
> +/* { dg-add-options arm_libc_fp_abi } */
>
>  #include "arm_neon.h"
>
> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/testsuite/gcc.target/arm/attr-neon2.c
> index a7a72dac379..db10cfa4928 100644
> --- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
> +++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
> @@ -1,8 +1,9 @@
>  /* { dg-do compile } */
> -/* { dg-require-effective-target arm_neon_ok } */
> -/* { dg-require-effective-target arm_fp_ok } */
> +/* { dg-require-effective-target arm_arch_v7a_ok } */
> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>  /* { dg-options "-Ofast" } */
> -/* { dg-add-options arm_fp } */
> +/* { dg-add-options arm_arch_v7a } */
> +/* { dg-add-options arm_libc_fp_abi } */
>
>  /* Reset fpu to a value compatible with the next pragmas.  */
>  #pragma GCC target ("fpu=vfp")
> --
> 2.25.1
>
Torbjorn SVENSSON Nov. 14, 2024, 4:51 p.m. UTC | #2
On 2024-11-14 16:16, Christophe Lyon wrote:
> Hi Torbjörn,
> 
> On Sun, 10 Nov 2024 at 10:09, Torbjörn SVENSSON
> <torbjorn.svensson@foss.st.com> wrote:
>>
>> Changes since v1:
>>
>> - Changed from arm_neon to arm_arch_v7a for the required effective target.
>>
>> Changes since v2:
>>
>> - Added arm_libc_fp_abi as an required effective taret.
>> - Removed to arm_neon and arm_vfp from effective target.
>>
>>
>> With v3, the tests are now tested in armv7-a context in either hard or softfp
>> mode, depending on how libc was built.
>>
> I can see these tests have already quite a bit of history regarding
> their dg-effective-target.... :-)
> 
> In your initial email, you said the tests fail for m55hard and
> m85hard. So does this mean they pass for m7hard etc ? (I mean without
> this patch).

Without the patch, the test cases are listed as unsupported due to 
conflicting switches (in this case -mcpu=cortex-m7 and -march=X where X 
depends on the test case...). The only targets that passes the required 
effective-target is armv8.m-main, but it is incompatible with the 
include of arm_nenon.h.

With the patch, all the tests are executed in armv7-a context, so then 
they all pass.

> As Richard said, there seems to be an underlying issue we can fix separately.
> 
>> Ok for trunk and releases/gcc-14?
> AFAIU the patch does what was suggested: skip those tests on M-profile.
> 
> Does the arm_arch_v7a part also work on gcc-14 given it does not have
> the -cpu=unset feature?

I only have a really old build of GCC14 available right now but it 
appears fine. Also, without the unset-feature, if the tested target is 
not compatible with -march=armv7-a, then there would be a warning 
printed and that would be enough to say that the effective-target is not 
fulfilled. The drawback is that there might be a few more combinations 
that will no list the test as unsupported rather than fail/pass.

Kind regards,
Torbjörn

> 
> Thanks,
> 
> Christophe
> 
>>
>> --
>>
>> Force armv7-a as the tests require a neon compatible architecture.
>>
>> gcc/testsuite/ChangeLog:
>>
>>          * gcc.target/arm/attr-neon-builtin-fail.c: Use effective-target
>>          arm_arch_v7a.
>>          * gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
>>          * gcc.target/arm/attr-neon-fp16.c: Likewise.
>>          * gcc.target/arm/attr-neon2.c: Likewise.
>>
>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
>> ---
>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c  | 7 ++++---
>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
>>   gcc/testsuite/gcc.target/arm/attr-neon-fp16.c          | 6 ++++--
>>   gcc/testsuite/gcc.target/arm/attr-neon2.c              | 7 ++++---
>>   4 files changed, 16 insertions(+), 10 deletions(-)
>>
>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>> index fb6e0b9cd66..143ad9c4908 100644
>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>> @@ -1,9 +1,10 @@
>>   /* Check that calling a neon builtin from a function compiled with vfp fails.  */
>>   /* { dg-do compile } */
>> -/* { dg-require-effective-target arm_fp_ok } */
>> -/* { dg-require-effective-target arm_neon_ok } */
>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>   /* { dg-options "-O2" } */
>> -/* { dg-add-options arm_fp } */
>> +/* { dg-add-options arm_arch_v7a } */
>> +/* { dg-add-options arm_libc_fp_abi } */
>>
>>   #include <arm_neon.h>
>>
>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>> index 9cb5a2ebb90..39689b7c3c7 100644
>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>> @@ -1,8 +1,10 @@
>>   /* Check that calling a neon builtin from a function compiled with vfp fails.  */
>>   /* { dg-do compile } */
>> -/* { dg-require-effective-target arm_vfp_ok } */
>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>   /* { dg-options "-O2" } */
>> -/* { dg-add-options arm_vfp } */
>> +/* { dg-add-options arm_arch_v7a } */
>> +/* { dg-add-options arm_libc_fp_abi } */
>>
>>   extern __simd64_int8_t a, b;
>>
>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>> index d7b75645bc4..9bc6ce635e2 100644
>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>> @@ -1,8 +1,10 @@
>>   /* { dg-do compile } */
>>   /* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } { "-mpure-code" } } */
>> -/* { dg-require-effective-target arm_fp_ok } */
>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>   /* { dg-options "-mfp16-format=ieee" } */
>> -/* { dg-add-options arm_fp } */
>> +/* { dg-add-options arm_arch_v7a } */
>> +/* { dg-add-options arm_libc_fp_abi } */
>>
>>   #include "arm_neon.h"
>>
>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/testsuite/gcc.target/arm/attr-neon2.c
>> index a7a72dac379..db10cfa4928 100644
>> --- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
>> @@ -1,8 +1,9 @@
>>   /* { dg-do compile } */
>> -/* { dg-require-effective-target arm_neon_ok } */
>> -/* { dg-require-effective-target arm_fp_ok } */
>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>   /* { dg-options "-Ofast" } */
>> -/* { dg-add-options arm_fp } */
>> +/* { dg-add-options arm_arch_v7a } */
>> +/* { dg-add-options arm_libc_fp_abi } */
>>
>>   /* Reset fpu to a value compatible with the next pragmas.  */
>>   #pragma GCC target ("fpu=vfp")
>> --
>> 2.25.1
>>
Torbjorn SVENSSON Dec. 19, 2024, 7:23 p.m. UTC | #3
Gentle ping :)

Kind regards,
Torbjörn

On 2024-11-14 17:51, Torbjorn SVENSSON wrote:
> 
> 
> On 2024-11-14 16:16, Christophe Lyon wrote:
>> Hi Torbjörn,
>>
>> On Sun, 10 Nov 2024 at 10:09, Torbjörn SVENSSON
>> <torbjorn.svensson@foss.st.com> wrote:
>>>
>>> Changes since v1:
>>>
>>> - Changed from arm_neon to arm_arch_v7a for the required effective 
>>> target.
>>>
>>> Changes since v2:
>>>
>>> - Added arm_libc_fp_abi as an required effective taret.
>>> - Removed to arm_neon and arm_vfp from effective target.
>>>
>>>
>>> With v3, the tests are now tested in armv7-a context in either hard 
>>> or softfp
>>> mode, depending on how libc was built.
>>>
>> I can see these tests have already quite a bit of history regarding
>> their dg-effective-target.... :-)
>>
>> In your initial email, you said the tests fail for m55hard and
>> m85hard. So does this mean they pass for m7hard etc ? (I mean without
>> this patch).
> 
> Without the patch, the test cases are listed as unsupported due to 
> conflicting switches (in this case -mcpu=cortex-m7 and -march=X where X 
> depends on the test case...). The only targets that passes the required 
> effective-target is armv8.m-main, but it is incompatible with the 
> include of arm_nenon.h.
> 
> With the patch, all the tests are executed in armv7-a context, so then 
> they all pass.
> 
>> As Richard said, there seems to be an underlying issue we can fix 
>> separately.
>>
>>> Ok for trunk and releases/gcc-14?
>> AFAIU the patch does what was suggested: skip those tests on M-profile.
>>
>> Does the arm_arch_v7a part also work on gcc-14 given it does not have
>> the -cpu=unset feature?
> 
> I only have a really old build of GCC14 available right now but it 
> appears fine. Also, without the unset-feature, if the tested target is 
> not compatible with -march=armv7-a, then there would be a warning 
> printed and that would be enough to say that the effective-target is not 
> fulfilled. The drawback is that there might be a few more combinations 
> that will no list the test as unsupported rather than fail/pass.
> 
> Kind regards,
> Torbjörn
> 
>>
>> Thanks,
>>
>> Christophe
>>
>>>
>>> -- 
>>>
>>> Force armv7-a as the tests require a neon compatible architecture.
>>>
>>> gcc/testsuite/ChangeLog:
>>>
>>>          * gcc.target/arm/attr-neon-builtin-fail.c: Use effective-target
>>>          arm_arch_v7a.
>>>          * gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
>>>          * gcc.target/arm/attr-neon-fp16.c: Likewise.
>>>          * gcc.target/arm/attr-neon2.c: Likewise.
>>>
>>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
>>> ---
>>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c  | 7 ++++---
>>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
>>>   gcc/testsuite/gcc.target/arm/attr-neon-fp16.c          | 6 ++++--
>>>   gcc/testsuite/gcc.target/arm/attr-neon2.c              | 7 ++++---
>>>   4 files changed, 16 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/ 
>>> gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>> index fb6e0b9cd66..143ad9c4908 100644
>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>> @@ -1,9 +1,10 @@
>>>   /* Check that calling a neon builtin from a function compiled with 
>>> vfp fails.  */
>>>   /* { dg-do compile } */
>>> -/* { dg-require-effective-target arm_fp_ok } */
>>> -/* { dg-require-effective-target arm_neon_ok } */
>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>   /* { dg-options "-O2" } */
>>> -/* { dg-add-options arm_fp } */
>>> +/* { dg-add-options arm_arch_v7a } */
>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>
>>>   #include <arm_neon.h>
>>>
>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 
>>> b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>> index 9cb5a2ebb90..39689b7c3c7 100644
>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>> @@ -1,8 +1,10 @@
>>>   /* Check that calling a neon builtin from a function compiled with 
>>> vfp fails.  */
>>>   /* { dg-do compile } */
>>> -/* { dg-require-effective-target arm_vfp_ok } */
>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>   /* { dg-options "-O2" } */
>>> -/* { dg-add-options arm_vfp } */
>>> +/* { dg-add-options arm_arch_v7a } */
>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>
>>>   extern __simd64_int8_t a, b;
>>>
>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/ 
>>> testsuite/gcc.target/arm/attr-neon-fp16.c
>>> index d7b75645bc4..9bc6ce635e2 100644
>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>>> @@ -1,8 +1,10 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-skip-if "-mpure-code supports M-profile only and without 
>>> Neon" { *-*-* } { "-mpure-code" } } */
>>> -/* { dg-require-effective-target arm_fp_ok } */
>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>   /* { dg-options "-mfp16-format=ieee" } */
>>> -/* { dg-add-options arm_fp } */
>>> +/* { dg-add-options arm_arch_v7a } */
>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>
>>>   #include "arm_neon.h"
>>>
>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/ 
>>> testsuite/gcc.target/arm/attr-neon2.c
>>> index a7a72dac379..db10cfa4928 100644
>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
>>> @@ -1,8 +1,9 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-require-effective-target arm_neon_ok } */
>>> -/* { dg-require-effective-target arm_fp_ok } */
>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>   /* { dg-options "-Ofast" } */
>>> -/* { dg-add-options arm_fp } */
>>> +/* { dg-add-options arm_arch_v7a } */
>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>
>>>   /* Reset fpu to a value compatible with the next pragmas.  */
>>>   #pragma GCC target ("fpu=vfp")
>>> -- 
>>> 2.25.1
>>>
>
Torbjorn SVENSSON Jan. 24, 2025, 5:45 p.m. UTC | #4
Another ping... :)

Kind regards,
Torbjörn

On 2024-12-19 20:23, Torbjorn SVENSSON wrote:
> Gentle ping :)
> 
> Kind regards,
> Torbjörn
> 
> On 2024-11-14 17:51, Torbjorn SVENSSON wrote:
>>
>>
>> On 2024-11-14 16:16, Christophe Lyon wrote:
>>> Hi Torbjörn,
>>>
>>> On Sun, 10 Nov 2024 at 10:09, Torbjörn SVENSSON
>>> <torbjorn.svensson@foss.st.com> wrote:
>>>>
>>>> Changes since v1:
>>>>
>>>> - Changed from arm_neon to arm_arch_v7a for the required effective 
>>>> target.
>>>>
>>>> Changes since v2:
>>>>
>>>> - Added arm_libc_fp_abi as an required effective taret.
>>>> - Removed to arm_neon and arm_vfp from effective target.
>>>>
>>>>
>>>> With v3, the tests are now tested in armv7-a context in either hard 
>>>> or softfp
>>>> mode, depending on how libc was built.
>>>>
>>> I can see these tests have already quite a bit of history regarding
>>> their dg-effective-target.... :-)
>>>
>>> In your initial email, you said the tests fail for m55hard and
>>> m85hard. So does this mean they pass for m7hard etc ? (I mean without
>>> this patch).
>>
>> Without the patch, the test cases are listed as unsupported due to 
>> conflicting switches (in this case -mcpu=cortex-m7 and -march=X where 
>> X depends on the test case...). The only targets that passes the 
>> required effective-target is armv8.m-main, but it is incompatible with 
>> the include of arm_nenon.h.
>>
>> With the patch, all the tests are executed in armv7-a context, so then 
>> they all pass.
>>
>>> As Richard said, there seems to be an underlying issue we can fix 
>>> separately.
>>>
>>>> Ok for trunk and releases/gcc-14?
>>> AFAIU the patch does what was suggested: skip those tests on M-profile.
>>>
>>> Does the arm_arch_v7a part also work on gcc-14 given it does not have
>>> the -cpu=unset feature?
>>
>> I only have a really old build of GCC14 available right now but it 
>> appears fine. Also, without the unset-feature, if the tested target is 
>> not compatible with -march=armv7-a, then there would be a warning 
>> printed and that would be enough to say that the effective-target is 
>> not fulfilled. The drawback is that there might be a few more 
>> combinations that will no list the test as unsupported rather than 
>> fail/pass.
>>
>> Kind regards,
>> Torbjörn
>>
>>>
>>> Thanks,
>>>
>>> Christophe
>>>
>>>>
>>>> -- 
>>>>
>>>> Force armv7-a as the tests require a neon compatible architecture.
>>>>
>>>> gcc/testsuite/ChangeLog:
>>>>
>>>>          * gcc.target/arm/attr-neon-builtin-fail.c: Use effective- 
>>>> target
>>>>          arm_arch_v7a.
>>>>          * gcc.target/arm/attr-neon-builtin-fail2.c: Likewise.
>>>>          * gcc.target/arm/attr-neon-fp16.c: Likewise.
>>>>          * gcc.target/arm/attr-neon2.c: Likewise.
>>>>
>>>> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
>>>> ---
>>>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c  | 7 ++++---
>>>>   gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c | 6 ++++--
>>>>   gcc/testsuite/gcc.target/arm/attr-neon-fp16.c          | 6 ++++--
>>>>   gcc/testsuite/gcc.target/arm/attr-neon2.c              | 7 ++++---
>>>>   4 files changed, 16 insertions(+), 10 deletions(-)
>>>>
>>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c 
>>>> b/ gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>>> index fb6e0b9cd66..143ad9c4908 100644
>>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
>>>> @@ -1,9 +1,10 @@
>>>>   /* Check that calling a neon builtin from a function compiled with 
>>>> vfp fails.  */
>>>>   /* { dg-do compile } */
>>>> -/* { dg-require-effective-target arm_fp_ok } */
>>>> -/* { dg-require-effective-target arm_neon_ok } */
>>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>>   /* { dg-options "-O2" } */
>>>> -/* { dg-add-options arm_fp } */
>>>> +/* { dg-add-options arm_arch_v7a } */
>>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>>
>>>>   #include <arm_neon.h>
>>>>
>>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c 
>>>> b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>>> index 9cb5a2ebb90..39689b7c3c7 100644
>>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
>>>> @@ -1,8 +1,10 @@
>>>>   /* Check that calling a neon builtin from a function compiled with 
>>>> vfp fails.  */
>>>>   /* { dg-do compile } */
>>>> -/* { dg-require-effective-target arm_vfp_ok } */
>>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>>   /* { dg-options "-O2" } */
>>>> -/* { dg-add-options arm_vfp } */
>>>> +/* { dg-add-options arm_arch_v7a } */
>>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>>
>>>>   extern __simd64_int8_t a, b;
>>>>
>>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/ 
>>>> testsuite/gcc.target/arm/attr-neon-fp16.c
>>>> index d7b75645bc4..9bc6ce635e2 100644
>>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
>>>> @@ -1,8 +1,10 @@
>>>>   /* { dg-do compile } */
>>>>   /* { dg-skip-if "-mpure-code supports M-profile only and without 
>>>> Neon" { *-*-* } { "-mpure-code" } } */
>>>> -/* { dg-require-effective-target arm_fp_ok } */
>>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>>   /* { dg-options "-mfp16-format=ieee" } */
>>>> -/* { dg-add-options arm_fp } */
>>>> +/* { dg-add-options arm_arch_v7a } */
>>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>>
>>>>   #include "arm_neon.h"
>>>>
>>>> diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/ 
>>>> testsuite/gcc.target/arm/attr-neon2.c
>>>> index a7a72dac379..db10cfa4928 100644
>>>> --- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
>>>> +++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
>>>> @@ -1,8 +1,9 @@
>>>>   /* { dg-do compile } */
>>>> -/* { dg-require-effective-target arm_neon_ok } */
>>>> -/* { dg-require-effective-target arm_fp_ok } */
>>>> +/* { dg-require-effective-target arm_arch_v7a_ok } */
>>>> +/* { dg-require-effective-target arm_libc_fp_abi_ok } */
>>>>   /* { dg-options "-Ofast" } */
>>>> -/* { dg-add-options arm_fp } */
>>>> +/* { dg-add-options arm_arch_v7a } */
>>>> +/* { dg-add-options arm_libc_fp_abi } */
>>>>
>>>>   /* Reset fpu to a value compatible with the next pragmas.  */
>>>>   #pragma GCC target ("fpu=vfp")
>>>> -- 
>>>> 2.25.1
>>>>
>>
>
diff mbox series

Patch

diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
index fb6e0b9cd66..143ad9c4908 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail.c
@@ -1,9 +1,10 @@ 
 /* Check that calling a neon builtin from a function compiled with vfp fails.  */
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_fp_ok } */
-/* { dg-require-effective-target arm_neon_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
 /* { dg-options "-O2" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 #include <arm_neon.h>
 
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
index 9cb5a2ebb90..39689b7c3c7 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-builtin-fail2.c
@@ -1,8 +1,10 @@ 
 /* Check that calling a neon builtin from a function compiled with vfp fails.  */
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_vfp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
 /* { dg-options "-O2" } */
-/* { dg-add-options arm_vfp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 extern __simd64_int8_t a, b;
 
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
index d7b75645bc4..9bc6ce635e2 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon-fp16.c
@@ -1,8 +1,10 @@ 
 /* { dg-do compile } */
 /* { dg-skip-if "-mpure-code supports M-profile only and without Neon" { *-*-* } { "-mpure-code" } } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
 /* { dg-options "-mfp16-format=ieee" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 #include "arm_neon.h"
 
diff --git a/gcc/testsuite/gcc.target/arm/attr-neon2.c b/gcc/testsuite/gcc.target/arm/attr-neon2.c
index a7a72dac379..db10cfa4928 100644
--- a/gcc/testsuite/gcc.target/arm/attr-neon2.c
+++ b/gcc/testsuite/gcc.target/arm/attr-neon2.c
@@ -1,8 +1,9 @@ 
 /* { dg-do compile } */
-/* { dg-require-effective-target arm_neon_ok } */
-/* { dg-require-effective-target arm_fp_ok } */
+/* { dg-require-effective-target arm_arch_v7a_ok } */
+/* { dg-require-effective-target arm_libc_fp_abi_ok } */
 /* { dg-options "-Ofast" } */
-/* { dg-add-options arm_fp } */
+/* { dg-add-options arm_arch_v7a } */
+/* { dg-add-options arm_libc_fp_abi } */
 
 /* Reset fpu to a value compatible with the next pragmas.  */
 #pragma GCC target ("fpu=vfp")