Commit dececdaa by Kyrylo Tkachov Committed by Kyrylo Tkachov

[arm] Make gcc.target/arm/copysign_softfloat_1.c more robust

This test has needlessly restrictive requirements. It tries to force a soft-float target and tries to run.
This makes it unsupportable for any non-soft-float variant.
In fact, the test can be a run-time test for any target, and only the scan-assembler tests are specific to
-mfloat-abi=soft. So this patch makes the test always runnable and makes the scan-assembler checks predicable
on the the new arm_sotftfloat effective target check. 

	* doc/sourcebuild.texi (arm_softfloat): Document.

	* lib/target-supports.exp (check_effective_target_arm_softfloat):
	New procedure.
	* gcc.target/arm/copysign_softfloat_1.c: Allow running everywhere.
	Adjust scan-assembler checks for soft-float.

From-SVN: r256940
parent 6a79ea14
2018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* doc/sourcebuild.texi (arm_softfloat): Document.
2018-01-21 John David Anglin <danglin@gcc.gnu.org> 2018-01-21 John David Anglin <danglin@gcc.gnu.org>
PR gcc/77734 PR gcc/77734
......
...@@ -1650,6 +1650,10 @@ ARM target adheres to the VFP and Advanced SIMD Register Arguments ...@@ -1650,6 +1650,10 @@ ARM target adheres to the VFP and Advanced SIMD Register Arguments
variant of the ABI for the ARM Architecture (as selected with variant of the ABI for the ARM Architecture (as selected with
@code{-mfloat-abi=hard}). @code{-mfloat-abi=hard}).
@item arm_softfloat
ARM target uses the soft-float ABI with no floating-point instructions
used whatsoever (as selected with @code{-mfloat-abi=soft}).
@item arm_hard_vfp_ok @item arm_hard_vfp_ok
ARM target supports @code{-mfpu=vfp -mfloat-abi=hard}. ARM target supports @code{-mfpu=vfp -mfloat-abi=hard}.
Some multilibs may be incompatible with these options. Some multilibs may be incompatible with these options.
......
2018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* lib/target-supports.exp (check_effective_target_arm_softfloat):
New procedure.
* gcc.target/arm/copysign_softfloat_1.c: Allow running everywhere.
Adjust scan-assembler checks for soft-float.
2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR target/83946 PR target/83946
......
/* { dg-do run } */ /* { dg-do run } */
/* { dg-require-effective-target arm_thumb2_ok } */ /* { dg-require-effective-target arm_thumb2_ok } */
/* { dg-require-effective-target arm_soft_ok } */ /* { dg-add-options arm_arch_v6t2 } */
/* { dg-skip-if "skip override" { *-*-* } { "-mfloat-abi=softfp" "-mfloat-abi=hard" } { "" } } */ /* { dg-additional-options "-O2 --save-temps" } */
/* { dg-options "-O2 -mfloat-abi=soft --save-temps" } */
extern void abort (void); extern void abort (void);
#define N 16 #define N 16
...@@ -42,8 +42,8 @@ main (int argc, char **argv) ...@@ -42,8 +42,8 @@ main (int argc, char **argv)
{ {
int index = 0; int index = 0;
/* { dg-final { scan-assembler-times "bfi" 2 } } */ /* { dg-final { scan-assembler-times "bfi" 2 { target arm_softfloat } } } */
/* { dg-final { scan-assembler-times "lsr" 1 } } */ /* { dg-final { scan-assembler-times "lsr" 1 { target arm_softfloat } } } */
for (index; index < N; index++) for (index; index < N; index++)
{ {
if (__builtin_copysignf (a_f[index], b_f[index]) != c_f[index]) if (__builtin_copysignf (a_f[index], b_f[index]) != c_f[index])
......
...@@ -4885,6 +4885,19 @@ proc check_effective_target_arm_hf_eabi { } { ...@@ -4885,6 +4885,19 @@ proc check_effective_target_arm_hf_eabi { } {
}] }]
} }
# Return 1 if this is an ARM target that uses the soft float ABI
# with no floating-point instructions at all (e.g. -mfloat-abi=soft).
proc check_effective_target_arm_softfloat { } {
return [check_no_compiler_messages arm_softfloat object {
#if !defined(__SOFTFP__)
#error not soft-float EABI
#else
int dummy;
#endif
}]
}
# Return 1 if this is an ARM target supporting -mcpu=iwmmxt. # Return 1 if this is an ARM target supporting -mcpu=iwmmxt.
# Some multilibs may be incompatible with this option. # Some multilibs may be incompatible with this option.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment