diff mbox

[ARM] PR target/67929 Tighten vfp3_const_double_for_bits checks

Message ID 56374AAC.1010505@arm.com
State New
Headers show

Commit Message

Kyrylo Tkachov Nov. 2, 2015, 11:36 a.m. UTC
On 02/11/15 09:29, Kyrill Tkachov wrote:
>
> On 02/11/15 09:28, Yvan Roux wrote:
>> On 2 November 2015 at 10:24, Ramana Radhakrishnan
>> <ramana.radhakrishnan@foss.arm.com> wrote:
>>>
>>> On 02/11/15 09:01, Christophe Lyon wrote:
>>>> On 2 November 2015 at 09:51, Yvan Roux <yvan.roux@linaro.org> wrote:
>>>>> On 2 November 2015 at 09:38, Ramana Radhakrishnan
>>>>> <ramana.radhakrishnan@foss.arm.com> wrote:
>>>>>>>>> 2015-10-12  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>>>>>>>>>
>>>>>>>>>      PR target/67929
>>>>>>>>>      * gcc.target/arm/pr67929_1.c: New test.
>>>>>>> This test fails when tested on hard-float targets, adding the
>>>>>>> following line to avoid testing it in such cases will fix the issue,
>>>>>>> but I wonder if there is a better dejaGNU directives sequence to do
>>>>>>> that.
>>>>>>>
>>>>>>> /* { dg-skip-if "avoid conflicting multilib options" { *-*-*eabihf } {
>>>>>>> "*" } { "" } } */
>>>>>> No, not without further investigation into why the test is failing.
>>>>> Sorry, it fails because of the ABI mismatch between the built libs for
>>>>> HF targets and the testcase which is built with the flag
>>>>> -mfloat-abi=softfp (which is added by the directive arm_vfpv3_ok)
>>>>>
>>>> I think that's what I meant in:
>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67929#c7
>>> Ah, I see what you mean - instead I would just remove all the special options and move this test into gcc.c-torture/execute.
>>>
>>> There are enough testers that test by default to armhf now for us to be worried about testing the exact combination.
>> Ha yes that's ture and I remember that we ended to that same
>> conclusion for one testcase I tried to find the exact float ABI flag
>> combination several months ago.
>
> Ok, moving the test to the torture suite sounds best.
> I'll prepare a patch.
>

Is this proposed patch ok to commit?
It moves the test and adds noclone and noinline attributes to 'foo' like Richard suggested.

2015-11-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

     PR target/67929
     * gcc.target/arm/pr67929_1.c: Move to...
     * gcc.c-torture/execute/pr67929_1.c: ... Here.
     Remove arm-specific directives.  Add noclone, noinline
     attributes.

Thanks,
Kyrill

> Sorry for the trouble,
> Kyrill
>
>>
>>
>> Yvan
>>> regards
>>> Ramana
>>>
>>>> Christophe.
>>>>
>>>>> Yvan
>>>>>
>>>>>> regards
>>>>>> Ramana
>>>>>>
>>>>>>> Cheers,
>>>>>>> Yvan
>>>>>>>
>

Comments

Richard Earnshaw Nov. 2, 2015, 11:50 a.m. UTC | #1
On 02/11/15 11:36, Kyrill Tkachov wrote:
> 
> On 02/11/15 09:29, Kyrill Tkachov wrote:
>>
>> On 02/11/15 09:28, Yvan Roux wrote:
>>> On 2 November 2015 at 10:24, Ramana Radhakrishnan
>>> <ramana.radhakrishnan@foss.arm.com> wrote:
>>>>
>>>> On 02/11/15 09:01, Christophe Lyon wrote:
>>>>> On 2 November 2015 at 09:51, Yvan Roux <yvan.roux@linaro.org> wrote:
>>>>>> On 2 November 2015 at 09:38, Ramana Radhakrishnan
>>>>>> <ramana.radhakrishnan@foss.arm.com> wrote:
>>>>>>>>>> 2015-10-12  Kyrylo Tkachov <kyrylo.tkachov@arm.com>
>>>>>>>>>>
>>>>>>>>>>      PR target/67929
>>>>>>>>>>      * gcc.target/arm/pr67929_1.c: New test.
>>>>>>>> This test fails when tested on hard-float targets, adding the
>>>>>>>> following line to avoid testing it in such cases will fix the
>>>>>>>> issue,
>>>>>>>> but I wonder if there is a better dejaGNU directives sequence to do
>>>>>>>> that.
>>>>>>>>
>>>>>>>> /* { dg-skip-if "avoid conflicting multilib options" {
>>>>>>>> *-*-*eabihf } {
>>>>>>>> "*" } { "" } } */
>>>>>>> No, not without further investigation into why the test is failing.
>>>>>> Sorry, it fails because of the ABI mismatch between the built libs
>>>>>> for
>>>>>> HF targets and the testcase which is built with the flag
>>>>>> -mfloat-abi=softfp (which is added by the directive arm_vfpv3_ok)
>>>>>>
>>>>> I think that's what I meant in:
>>>>> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67929#c7
>>>> Ah, I see what you mean - instead I would just remove all the
>>>> special options and move this test into gcc.c-torture/execute.
>>>>
>>>> There are enough testers that test by default to armhf now for us to
>>>> be worried about testing the exact combination.
>>> Ha yes that's ture and I remember that we ended to that same
>>> conclusion for one testcase I tried to find the exact float ABI flag
>>> combination several months ago.
>>
>> Ok, moving the test to the torture suite sounds best.
>> I'll prepare a patch.
>>
> 
> Is this proposed patch ok to commit?
> It moves the test and adds noclone and noinline attributes to 'foo' like
> Richard suggested.
> 
> 2015-11-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
> 
>     PR target/67929
>     * gcc.target/arm/pr67929_1.c: Move to...
>     * gcc.c-torture/execute/pr67929_1.c: ... Here.
>     Remove arm-specific directives.  Add noclone, noinline
>     attributes.
> 

OK.

R.

> Thanks,
> Kyrill
> 
>> Sorry for the trouble,
>> Kyrill
>>
>>>
>>>
>>> Yvan
>>>> regards
>>>> Ramana
>>>>
>>>>> Christophe.
>>>>>
>>>>>> Yvan
>>>>>>
>>>>>>> regards
>>>>>>> Ramana
>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Yvan
>>>>>>>>
>>
> 
> 
> arm-move-test.patch
> 
> 
> commit f7da7437733ea999c09806c593d9b253fd2ba324
> Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
> Date:   Mon Nov 2 11:16:57 2015 +0000
> 
>     Move gcc.target/arm/pr67929_1.c test to execute.exp
> 
> diff --git a/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c b/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c
> new file mode 100644
> index 0000000..ae6cfbf
> --- /dev/null
> +++ b/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c
> @@ -0,0 +1,15 @@
> +int __attribute__ ((noinline, noclone))
> +foo (float a)
> +{
> +  return a * 4.9f;
> +}
> +
> +
> +int
> +main (void)
> +{
> +  if (foo (10.0f) != 49)
> +    __builtin_abort ();
> +
> +  return 0;
> +}
> diff --git a/gcc/testsuite/gcc.target/arm/pr67929_1.c b/gcc/testsuite/gcc.target/arm/pr67929_1.c
> deleted file mode 100644
> index 14943b6..0000000
> --- a/gcc/testsuite/gcc.target/arm/pr67929_1.c
> +++ /dev/null
> @@ -1,21 +0,0 @@
> -/* { dg-do run } */
> -/* { dg-require-effective-target arm_vfp3_ok } */
> -/* { dg-options "-O2 -fno-inline" } */
> -/* { dg-add-options arm_vfp3 } */
> -/* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
> -
> -int
> -foo (float a)
> -{
> -  return a * 4.9f;
> -}
> -
> -
> -int
> -main (void)
> -{
> -  if (foo (10.0f) != 49)
> -    __builtin_abort ();
> -
> -  return 0;
> -}
> \ No newline at end of file
>
diff mbox

Patch

commit f7da7437733ea999c09806c593d9b253fd2ba324
Author: Kyrylo Tkachov <kyrylo.tkachov@arm.com>
Date:   Mon Nov 2 11:16:57 2015 +0000

    Move gcc.target/arm/pr67929_1.c test to execute.exp

diff --git a/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c b/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c
new file mode 100644
index 0000000..ae6cfbf
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/pr67929_1.c
@@ -0,0 +1,15 @@ 
+int __attribute__ ((noinline, noclone))
+foo (float a)
+{
+  return a * 4.9f;
+}
+
+
+int
+main (void)
+{
+  if (foo (10.0f) != 49)
+    __builtin_abort ();
+
+  return 0;
+}
diff --git a/gcc/testsuite/gcc.target/arm/pr67929_1.c b/gcc/testsuite/gcc.target/arm/pr67929_1.c
deleted file mode 100644
index 14943b6..0000000
--- a/gcc/testsuite/gcc.target/arm/pr67929_1.c
+++ /dev/null
@@ -1,21 +0,0 @@ 
-/* { dg-do run } */
-/* { dg-require-effective-target arm_vfp3_ok } */
-/* { dg-options "-O2 -fno-inline" } */
-/* { dg-add-options arm_vfp3 } */
-/* { dg-skip-if "need fp instructions" { *-*-* } { "-mfloat-abi=soft" } { "" } } */
-
-int
-foo (float a)
-{
-  return a * 4.9f;
-}
-
-
-int
-main (void)
-{
-  if (foo (10.0f) != 49)
-    __builtin_abort ();
-
-  return 0;
-}
\ No newline at end of file