Message ID | CADnVucBAL5d+Qgi2M_w=X-sR84c55gkKWNgBX8Dfv1ErUVnLVA@mail.gmail.com |
---|---|
State | New |
Headers | show |
PIng? On 19 September 2013 18:21, Charles Baylis <charles.baylis@linaro.org> wrote: > Hi > > Here is an updated version. > > Changelog: > > * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets > * gcc.dg/tls/pr42894.c: Remove options, forcing -mthumb fails > with hardfloat, and test is not thumb-specific > * gcc,target/arm/thumb-ltu.c: Avoid test failure with > hardfloat ABI by requiring arm_thumb1_ok > * lib/target-supports.exp > (check_effective_target_arm_fp16_ok_nocache): don't force > -mfloat-abi=soft when building for hardfloat target > > On 19 August 2013 16:34, Richard Earnshaw <rearnsha@arm.com> wrote: >> On 15/08/13 15:10, Charles Baylis wrote: >>> Hi >>> >>> The attached patch fixes some tests which fail when testing gcc for a >>> arm-none-linux-gnueabihf target because they do not expect to be built >>> with a hard float ABI. >>> >>> The change in target-supports.exp fixes arm-fp16-ops-5.c and arm-fp16-ops-6.c. >>> >>> Tested on arm-none-linux-gnueabihf using qemu-arm, and does not cause >>> any other tests to break. >>> >>> Comments? This is my first patch, so please point out anything wrong. >>> >>> >> >>> >>> >>> 2013-08-15 Charles Baylis <charles.baylis@linaro.org> >>> >>> * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets >>> * gcc.dg/tls/pr42894.c: Use -mfloat-abi=soft as Thumb1 does >>> not support hardfloat ABI >>> * arm/thumb-ltu.c: Use -mfloat-abi=soft as Thumb1 does not >>> support hardfloat ABI >>> * target-supports.exp: don't force -mfloat-abi=soft when >>> building for hardfloat target >>> >>> >>> hf-fixes.txt >>> >>> >>> Index: gcc/testsuite/gcc.dg/builtin-apply2.c >>> =================================================================== >>> --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 201726) >>> +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) >>> @@ -1,6 +1,7 @@ >>> /* { dg-do run } */ >>> /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ >>> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ >>> +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-gnueabihf" } { "*" } { "-mfloat-abi=soft*" } } */ >>> >> >> >> As you've noticed, basing the test's behaviour on the config variant >> doesn't work reliably. The builtin-apply2 test really should be skipped >> if the current test variant is not soft-float. We already have >> check_effective_target_arm_hf_eabi in target-supports.exp that checks >> whether __ARM_PCS_VFP is defined during a compilation. So can replace >> both arm related lines in builtin-apply2 with >> >> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP >> variant." { "arm*-*-*" && arm_hf_eabi} { "*" } { "" } } */ >> >>> /* PR target/12503 */ >>> /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ >>> Index: gcc/testsuite/gcc.dg/tls/pr42894.c >>> =================================================================== >>> --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 201726) >>> +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) >>> @@ -1,6 +1,7 @@ >>> /* PR target/42894 */ >>> /* { dg-do compile } */ >>> /* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ >>> +/* { dg-options "-march=armv5te -mthumb -mfloat-abi=soft" { target arm*-*-*hf } } */ >>> /* { dg-require-effective-target tls } */ >>> >> >> Although the original PR was for Thumb1, this is a generic test. I'm >> not convinced that on ARM it should try to force thumb1. Removing the >> original dg-options line should solve the problem and we then get better >> multi-lib testing as well. >> >>> extern __thread int t; >>> Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c >>> =================================================================== >>> --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 201726) >>> +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) >>> @@ -1,6 +1,6 @@ >>> /* { dg-do compile } */ >>> /* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ >>> -/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ >>> +/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2 -mfloat-abi=soft" } */ >>> >> >> This won't work if there's an explict -mfloat-abi={softfp,hard} on the >> multilib options. Probably the best thing to do here is to skip the >> test if arm_thumb1_ok is not true. >> >>> void f(unsigned a, unsigned b, unsigned c, unsigned d) >>> { >>> Index: gcc/testsuite/lib/target-supports.exp >>> =================================================================== >>> --- gcc/testsuite/lib/target-supports.exp (revision 201726) >>> +++ gcc/testsuite/lib/target-supports.exp (working copy) >>> @@ -2445,6 +2445,11 @@ >>> # Must generate floating-point instructions. >>> return 0 >>> } >>> + if [check-flags [list "" { *-*-gnueabihf } { "*" } { "" } ]] { >>> + # Use existing float-abi and force an fpu which supports fp16 >> >> This should use arm_hf_eabi as described above. >> >>> + set et_arm_fp16_flags "-mfpu=vfpv4" >>> + return 1; >>> + } >>> if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { >>> # The existing -mfpu value is OK; use it, but add softfp. >>> set et_arm_fp16_flags "-mfloat-abi=softfp" >>> >> >> Kyrill's comments re ChangeLogs also apply. >> >> R. >>
On 19/09/13 18:21, Charles Baylis wrote: > Hi > > Here is an updated version. > > Changelog: > > * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets > * gcc.dg/tls/pr42894.c: Remove options, forcing -mthumb fails > with hardfloat, and test is not thumb-specific > * gcc,target/arm/thumb-ltu.c: Avoid test failure with > hardfloat ABI by requiring arm_thumb1_ok > * lib/target-supports.exp > (check_effective_target_arm_fp16_ok_nocache): don't force > -mfloat-abi=soft when building for hardfloat target > ChangeLogs should be formatted to 80 columns. Otherwise OK. R. > On 19 August 2013 16:34, Richard Earnshaw <rearnsha@arm.com> wrote: >> On 15/08/13 15:10, Charles Baylis wrote: >>> Hi >>> >>> The attached patch fixes some tests which fail when testing gcc for a >>> arm-none-linux-gnueabihf target because they do not expect to be built >>> with a hard float ABI. >>> >>> The change in target-supports.exp fixes arm-fp16-ops-5.c and arm-fp16-ops-6.c. >>> >>> Tested on arm-none-linux-gnueabihf using qemu-arm, and does not cause >>> any other tests to break. >>> >>> Comments? This is my first patch, so please point out anything wrong. >>> >>> >> >>> >>> >>> 2013-08-15 Charles Baylis <charles.baylis@linaro.org> >>> >>> * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets >>> * gcc.dg/tls/pr42894.c: Use -mfloat-abi=soft as Thumb1 does >>> not support hardfloat ABI >>> * arm/thumb-ltu.c: Use -mfloat-abi=soft as Thumb1 does not >>> support hardfloat ABI >>> * target-supports.exp: don't force -mfloat-abi=soft when >>> building for hardfloat target >>> >>> >>> hf-fixes.txt >>> >>> >>> Index: gcc/testsuite/gcc.dg/builtin-apply2.c >>> =================================================================== >>> --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 201726) >>> +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) >>> @@ -1,6 +1,7 @@ >>> /* { dg-do run } */ >>> /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ >>> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ >>> +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-gnueabihf" } { "*" } { "-mfloat-abi=soft*" } } */ >>> >> >> >> As you've noticed, basing the test's behaviour on the config variant >> doesn't work reliably. The builtin-apply2 test really should be skipped >> if the current test variant is not soft-float. We already have >> check_effective_target_arm_hf_eabi in target-supports.exp that checks >> whether __ARM_PCS_VFP is defined during a compilation. So can replace >> both arm related lines in builtin-apply2 with >> >> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP >> variant." { "arm*-*-*" && arm_hf_eabi} { "*" } { "" } } */ >> >>> /* PR target/12503 */ >>> /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ >>> Index: gcc/testsuite/gcc.dg/tls/pr42894.c >>> =================================================================== >>> --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 201726) >>> +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) >>> @@ -1,6 +1,7 @@ >>> /* PR target/42894 */ >>> /* { dg-do compile } */ >>> /* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ >>> +/* { dg-options "-march=armv5te -mthumb -mfloat-abi=soft" { target arm*-*-*hf } } */ >>> /* { dg-require-effective-target tls } */ >>> >> >> Although the original PR was for Thumb1, this is a generic test. I'm >> not convinced that on ARM it should try to force thumb1. Removing the >> original dg-options line should solve the problem and we then get better >> multi-lib testing as well. >> >>> extern __thread int t; >>> Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c >>> =================================================================== >>> --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 201726) >>> +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) >>> @@ -1,6 +1,6 @@ >>> /* { dg-do compile } */ >>> /* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ >>> -/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ >>> +/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2 -mfloat-abi=soft" } */ >>> >> >> This won't work if there's an explict -mfloat-abi={softfp,hard} on the >> multilib options. Probably the best thing to do here is to skip the >> test if arm_thumb1_ok is not true. >> >>> void f(unsigned a, unsigned b, unsigned c, unsigned d) >>> { >>> Index: gcc/testsuite/lib/target-supports.exp >>> =================================================================== >>> --- gcc/testsuite/lib/target-supports.exp (revision 201726) >>> +++ gcc/testsuite/lib/target-supports.exp (working copy) >>> @@ -2445,6 +2445,11 @@ >>> # Must generate floating-point instructions. >>> return 0 >>> } >>> + if [check-flags [list "" { *-*-gnueabihf } { "*" } { "" } ]] { >>> + # Use existing float-abi and force an fpu which supports fp16 >> >> This should use arm_hf_eabi as described above. >> >>> + set et_arm_fp16_flags "-mfpu=vfpv4" >>> + return 1; >>> + } >>> if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { >>> # The existing -mfpu value is OK; use it, but add softfp. >>> set et_arm_fp16_flags "-mfloat-abi=softfp" >>> >> >> Kyrill's comments re ChangeLogs also apply. >> >> R. >> > > > hf-fixes3.txt > > > Index: gcc/testsuite/gcc.dg/builtin-apply2.c > =================================================================== > --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 202747) > +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) > @@ -1,6 +1,6 @@ > /* { dg-do run } */ > /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ > -/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ > +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } { "*" } { "" } } */ > > /* PR target/12503 */ > /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ > Index: gcc/testsuite/gcc.dg/tls/pr42894.c > =================================================================== > --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 202747) > +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) > @@ -1,6 +1,5 @@ > /* PR target/42894 */ > /* { dg-do compile } */ > -/* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ > /* { dg-require-effective-target tls } */ > > extern __thread int t; > Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c > =================================================================== > --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 202747) > +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) > @@ -1,5 +1,5 @@ > /* { dg-do compile } */ > -/* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ > +/* { dg-require-effective-target arm_thumb1_ok } */ > /* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ > > void f(unsigned a, unsigned b, unsigned c, unsigned d) > Index: gcc/testsuite/lib/target-supports.exp > =================================================================== > --- gcc/testsuite/lib/target-supports.exp (revision 202747) > +++ gcc/testsuite/lib/target-supports.exp (working copy) > @@ -2467,6 +2467,11 @@ > # Must generate floating-point instructions. > return 0 > } > + if [check_effective_target_arm_hf_eabi] { > + # Use existing float-abi and force an fpu which supports fp16 > + set et_arm_fp16_flags "-mfpu=vfpv4" > + return 1; > + } > if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { > # The existing -mfpu value is OK; use it, but add softfp. > set et_arm_fp16_flags "-mfloat-abi=softfp" >
On 17/10/13 11:32, Richard Earnshaw wrote: > On 19/09/13 18:21, Charles Baylis wrote: >> Hi >> >> Here is an updated version. >> >> Changelog: >> >> * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets >> * gcc.dg/tls/pr42894.c: Remove options, forcing -mthumb fails >> with hardfloat, and test is not thumb-specific >> * gcc,target/arm/thumb-ltu.c: Avoid test failure with >> hardfloat ABI by requiring arm_thumb1_ok >> * lib/target-supports.exp >> (check_effective_target_arm_fp16_ok_nocache): don't force >> -mfloat-abi=soft when building for hardfloat target >> > > ChangeLogs should be formatted to 80 columns. > Oh, and they should be complete sentences. So start with a capital letter, and end with a full stop. R. > Otherwise OK. > > R. > >> On 19 August 2013 16:34, Richard Earnshaw <rearnsha@arm.com> wrote: >>> On 15/08/13 15:10, Charles Baylis wrote: >>>> Hi >>>> >>>> The attached patch fixes some tests which fail when testing gcc for a >>>> arm-none-linux-gnueabihf target because they do not expect to be built >>>> with a hard float ABI. >>>> >>>> The change in target-supports.exp fixes arm-fp16-ops-5.c and arm-fp16-ops-6.c. >>>> >>>> Tested on arm-none-linux-gnueabihf using qemu-arm, and does not cause >>>> any other tests to break. >>>> >>>> Comments? This is my first patch, so please point out anything wrong. >>>> >>>> >>> >>>> >>>> >>>> 2013-08-15 Charles Baylis <charles.baylis@linaro.org> >>>> >>>> * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets >>>> * gcc.dg/tls/pr42894.c: Use -mfloat-abi=soft as Thumb1 does >>>> not support hardfloat ABI >>>> * arm/thumb-ltu.c: Use -mfloat-abi=soft as Thumb1 does not >>>> support hardfloat ABI >>>> * target-supports.exp: don't force -mfloat-abi=soft when >>>> building for hardfloat target >>>> >>>> >>>> hf-fixes.txt >>>> >>>> >>>> Index: gcc/testsuite/gcc.dg/builtin-apply2.c >>>> =================================================================== >>>> --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 201726) >>>> +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) >>>> @@ -1,6 +1,7 @@ >>>> /* { dg-do run } */ >>>> /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ >>>> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ >>>> +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-gnueabihf" } { "*" } { "-mfloat-abi=soft*" } } */ >>>> >>> >>> >>> As you've noticed, basing the test's behaviour on the config variant >>> doesn't work reliably. The builtin-apply2 test really should be skipped >>> if the current test variant is not soft-float. We already have >>> check_effective_target_arm_hf_eabi in target-supports.exp that checks >>> whether __ARM_PCS_VFP is defined during a compilation. So can replace >>> both arm related lines in builtin-apply2 with >>> >>> /* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP >>> variant." { "arm*-*-*" && arm_hf_eabi} { "*" } { "" } } */ >>> >>>> /* PR target/12503 */ >>>> /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ >>>> Index: gcc/testsuite/gcc.dg/tls/pr42894.c >>>> =================================================================== >>>> --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 201726) >>>> +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) >>>> @@ -1,6 +1,7 @@ >>>> /* PR target/42894 */ >>>> /* { dg-do compile } */ >>>> /* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ >>>> +/* { dg-options "-march=armv5te -mthumb -mfloat-abi=soft" { target arm*-*-*hf } } */ >>>> /* { dg-require-effective-target tls } */ >>>> >>> >>> Although the original PR was for Thumb1, this is a generic test. I'm >>> not convinced that on ARM it should try to force thumb1. Removing the >>> original dg-options line should solve the problem and we then get better >>> multi-lib testing as well. >>> >>>> extern __thread int t; >>>> Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c >>>> =================================================================== >>>> --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 201726) >>>> +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) >>>> @@ -1,6 +1,6 @@ >>>> /* { dg-do compile } */ >>>> /* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ >>>> -/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ >>>> +/* { dg-options "-mcpu=arm1136jf-s -mthumb -O2 -mfloat-abi=soft" } */ >>>> >>> >>> This won't work if there's an explict -mfloat-abi={softfp,hard} on the >>> multilib options. Probably the best thing to do here is to skip the >>> test if arm_thumb1_ok is not true. >>> >>>> void f(unsigned a, unsigned b, unsigned c, unsigned d) >>>> { >>>> Index: gcc/testsuite/lib/target-supports.exp >>>> =================================================================== >>>> --- gcc/testsuite/lib/target-supports.exp (revision 201726) >>>> +++ gcc/testsuite/lib/target-supports.exp (working copy) >>>> @@ -2445,6 +2445,11 @@ >>>> # Must generate floating-point instructions. >>>> return 0 >>>> } >>>> + if [check-flags [list "" { *-*-gnueabihf } { "*" } { "" } ]] { >>>> + # Use existing float-abi and force an fpu which supports fp16 >>> >>> This should use arm_hf_eabi as described above. >>> >>>> + set et_arm_fp16_flags "-mfpu=vfpv4" >>>> + return 1; >>>> + } >>>> if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { >>>> # The existing -mfpu value is OK; use it, but add softfp. >>>> set et_arm_fp16_flags "-mfloat-abi=softfp" >>>> >>> >>> Kyrill's comments re ChangeLogs also apply. >>> >>> R. >>> >> >> >> hf-fixes3.txt >> >> >> Index: gcc/testsuite/gcc.dg/builtin-apply2.c >> =================================================================== >> --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 202747) >> +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) >> @@ -1,6 +1,6 @@ >> /* { dg-do run } */ >> /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ >> -/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ >> +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } { "*" } { "" } } */ >> >> /* PR target/12503 */ >> /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ >> Index: gcc/testsuite/gcc.dg/tls/pr42894.c >> =================================================================== >> --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 202747) >> +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) >> @@ -1,6 +1,5 @@ >> /* PR target/42894 */ >> /* { dg-do compile } */ >> -/* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ >> /* { dg-require-effective-target tls } */ >> >> extern __thread int t; >> Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c >> =================================================================== >> --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 202747) >> +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) >> @@ -1,5 +1,5 @@ >> /* { dg-do compile } */ >> -/* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ >> +/* { dg-require-effective-target arm_thumb1_ok } */ >> /* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ >> >> void f(unsigned a, unsigned b, unsigned c, unsigned d) >> Index: gcc/testsuite/lib/target-supports.exp >> =================================================================== >> --- gcc/testsuite/lib/target-supports.exp (revision 202747) >> +++ gcc/testsuite/lib/target-supports.exp (working copy) >> @@ -2467,6 +2467,11 @@ >> # Must generate floating-point instructions. >> return 0 >> } >> + if [check_effective_target_arm_hf_eabi] { >> + # Use existing float-abi and force an fpu which supports fp16 >> + set et_arm_fp16_flags "-mfpu=vfpv4" >> + return 1; >> + } >> if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { >> # The existing -mfpu value is OK; use it, but add softfp. >> set et_arm_fp16_flags "-mfloat-abi=softfp" >> >
On Thu, Oct 17, 2013 at 11:32:42AM +0100, Richard Earnshaw wrote: > On 19/09/13 18:21, Charles Baylis wrote: > > Here is an updated version. > > > > Changelog: > > > > * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets > > * gcc.dg/tls/pr42894.c: Remove options, forcing -mthumb fails > > with hardfloat, and test is not thumb-specific > > * gcc,target/arm/thumb-ltu.c: Avoid test failure with > > hardfloat ABI by requiring arm_thumb1_ok > > * lib/target-supports.exp > > (check_effective_target_arm_fp16_ok_nocache): don't force > > -mfloat-abi=soft when building for hardfloat target > > > > ChangeLogs should be formatted to 80 columns. Not only that. The descriptions should start with capital letter and end with a dot. For pr42894.c, you are not removing options, you are removing dg-options, and the rest is why, not what, so doesn't belong into the ChangeLog description. Similarly, for thumb-ltu.c, what are doing is remove dg-skip-if and require affective target arm_thumb1_ok. Jakub
Committed on Charles' behalf as rev 203799 with this ChangeLog entry: 2013-10-17 Charles Bayis <charles.baylis@linaro.org> * gcc.dg/builtin-apply2.c: Skip test on arm hardfloat ABI targets. * gcc.dg/tls/pr42894.c: Remove dg-options for arm*-*-* targets. * gcc.target/arm/thumb-ltu.c: Remove dg-skip-if and require effective target arm_thumb1_ok. * lib/target-supports.exp (check_effective_target_arm_fp16_ok_nocache): Don't force -mfloat-abi=soft when building for hardfloat target. (sorry, despite selecting 'plain text mode', gmail seems to change formatting) Christophe. On 17 October 2013 12:39, Jakub Jelinek <jakub@redhat.com> wrote: > On Thu, Oct 17, 2013 at 11:32:42AM +0100, Richard Earnshaw wrote: >> On 19/09/13 18:21, Charles Baylis wrote: >> > Here is an updated version. >> > >> > Changelog: >> > >> > * gcc.dg/builtin-apply2.c: skip test on arm hardfloat ABI targets >> > * gcc.dg/tls/pr42894.c: Remove options, forcing -mthumb fails >> > with hardfloat, and test is not thumb-specific >> > * gcc,target/arm/thumb-ltu.c: Avoid test failure with >> > hardfloat ABI by requiring arm_thumb1_ok >> > * lib/target-supports.exp >> > (check_effective_target_arm_fp16_ok_nocache): don't force >> > -mfloat-abi=soft when building for hardfloat target >> > >> >> ChangeLogs should be formatted to 80 columns. > > Not only that. The descriptions should start with capital letter > and end with a dot. For pr42894.c, you are not removing options, > you are removing dg-options, and the rest is why, not what, so doesn't > belong into the ChangeLog description. Similarly, for thumb-ltu.c, > what are doing is remove dg-skip-if and require affective target > arm_thumb1_ok. > > Jakub
Index: gcc/testsuite/gcc.dg/builtin-apply2.c =================================================================== --- gcc/testsuite/gcc.dg/builtin-apply2.c (revision 202747) +++ gcc/testsuite/gcc.dg/builtin-apply2.c (working copy) @@ -1,6 +1,6 @@ /* { dg-do run } */ /* { dg-skip-if "Variadic funcs have all args on stack. Normal funcs have args in registers." { "aarch64*-*-* avr-*-* " } { "*" } { "" } } */ -/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { "arm*-*-*" } { "-mfloat-abi=hard" } { "" } } */ +/* { dg-skip-if "Variadic funcs use Base AAPCS. Normal funcs use VFP variant." { arm*-*-* && arm_hf_eabi } { "*" } { "" } } */ /* PR target/12503 */ /* Origin: <pierre.nguyen-tuong@asim.lip6.fr> */ Index: gcc/testsuite/gcc.dg/tls/pr42894.c =================================================================== --- gcc/testsuite/gcc.dg/tls/pr42894.c (revision 202747) +++ gcc/testsuite/gcc.dg/tls/pr42894.c (working copy) @@ -1,6 +1,5 @@ /* PR target/42894 */ /* { dg-do compile } */ -/* { dg-options "-march=armv5te -mthumb" { target arm*-*-* } } */ /* { dg-require-effective-target tls } */ extern __thread int t; Index: gcc/testsuite/gcc.target/arm/thumb-ltu.c =================================================================== --- gcc/testsuite/gcc.target/arm/thumb-ltu.c (revision 202747) +++ gcc/testsuite/gcc.target/arm/thumb-ltu.c (working copy) @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-skip-if "incompatible options" { arm*-*-* } { "-march=*" } { "-march=armv6" "-march=armv6j" "-march=armv6z" } } */ +/* { dg-require-effective-target arm_thumb1_ok } */ /* { dg-options "-mcpu=arm1136jf-s -mthumb -O2" } */ void f(unsigned a, unsigned b, unsigned c, unsigned d) Index: gcc/testsuite/lib/target-supports.exp =================================================================== --- gcc/testsuite/lib/target-supports.exp (revision 202747) +++ gcc/testsuite/lib/target-supports.exp (working copy) @@ -2467,6 +2467,11 @@ # Must generate floating-point instructions. return 0 } + if [check_effective_target_arm_hf_eabi] { + # Use existing float-abi and force an fpu which supports fp16 + set et_arm_fp16_flags "-mfpu=vfpv4" + return 1; + } if [check-flags [list "" { *-*-* } { "-mfpu=*" } { "" } ]] { # The existing -mfpu value is OK; use it, but add softfp. set et_arm_fp16_flags "-mfloat-abi=softfp"