2019-09-23 Sandra Loosemore <sandra@codesourcery.com>
gcc/testsuite/ * lib/target-supports.exp (check_effective_target_arm_vfp_ok_nocache): New. (check_effective_target_arm_vfp_ok): Rewrite. (add_options_for_arm_vfp): New. (add_options_for_sqrt_insn): Add options for arm. * gcc.target/arm/attr-neon-builtin-fail2.c: Use dg-add-options. * gcc.target/arm/short-vfp-1.c: Likewise. From-SVN: r276063
This commit is contained in:
parent
33ba6ac391
commit
7926a220d8
@ -1,3 +1,13 @@
|
||||
2019-09-23 Sandra Loosemore <sandra@codesourcery.com>
|
||||
|
||||
* lib/target-supports.exp
|
||||
(check_effective_target_arm_vfp_ok_nocache): New.
|
||||
(check_effective_target_arm_vfp_ok): Rewrite.
|
||||
(add_options_for_arm_vfp): New.
|
||||
(add_options_for_sqrt_insn): Add options for arm.
|
||||
* gcc.target/arm/attr-neon-builtin-fail2.c: Use dg-add-options.
|
||||
* gcc.target/arm/short-vfp-1.c: Likewise.
|
||||
|
||||
2019-09-23 Marek Polacek <polacek@redhat.com>
|
||||
|
||||
PR c++/91844 - Implement CWG 2352, Similar types and reference binding.
|
||||
|
@ -1,7 +1,8 @@
|
||||
/* Check that calling a neon builtin from a function compiled with vfp fails. */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target arm_vfp_ok } */
|
||||
/* { dg-options "-O2 -mfloat-abi=softfp" } */
|
||||
/* { dg-options "-O2" } */
|
||||
/* { dg-add-options arm_vfp } */
|
||||
|
||||
extern __simd64_int8_t a, b;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-require-effective-target arm_vfp_ok }
|
||||
/* { dg-options "-mfpu=vfp" } */
|
||||
/* { dg-add-options arm_vfp } */
|
||||
|
||||
int
|
||||
test_sisf (float x)
|
||||
|
@ -3489,18 +3489,43 @@ proc check_effective_target_arm_soft_ok { } {
|
||||
}
|
||||
}
|
||||
|
||||
# Return 1 if this is an ARM target supporting -mfpu=vfp
|
||||
# -mfloat-abi=softfp. Some multilibs may be incompatible with these
|
||||
# options.
|
||||
# Return 1 if this is an ARM target supporting -mfpu=vfp with an
|
||||
# appropriate abi.
|
||||
|
||||
proc check_effective_target_arm_vfp_ok_nocache { } {
|
||||
global et_arm_vfp_flags
|
||||
set et_arm_vfp_flags ""
|
||||
if { [check_effective_target_arm32] } {
|
||||
foreach flags {"-mfpu=vfp" "-mfpu=vfp -mfloat-abi=softfp" "-mpu=vfp -mfloat-abi=hard"} {
|
||||
if { [check_no_compiler_messages_nocache arm_fp_ok object {
|
||||
#ifndef __ARM_FP
|
||||
#error __ARM_FP not defined
|
||||
#endif
|
||||
} "$flags"] } {
|
||||
set et_arm_vfp_flags $flags
|
||||
return 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
proc check_effective_target_arm_vfp_ok { } {
|
||||
if { [check_effective_target_arm32] } {
|
||||
return [check_no_compiler_messages arm_vfp_ok object {
|
||||
int dummy;
|
||||
} "-mfpu=vfp -mfloat-abi=softfp"]
|
||||
} else {
|
||||
return 0
|
||||
return [check_cached_effective_target arm_vfp_ok \
|
||||
check_effective_target_arm_vfp_ok_nocache]
|
||||
}
|
||||
|
||||
# Add the options needed to compile code with -mfpu=vfp. We need either
|
||||
# -mfloat-abi=softfp or -mfloat-abi=hard, but if one is already
|
||||
# specified by the multilib, use it.
|
||||
|
||||
proc add_options_for_arm_vfp { flags } {
|
||||
if { ! [check_effective_target_arm_vfp_ok] } {
|
||||
return "$flags"
|
||||
}
|
||||
global et_arm_vfp_flags
|
||||
return "$flags $et_arm_vfp_flags"
|
||||
}
|
||||
|
||||
# Return 1 if this is an ARM target supporting -mfpu=vfp3
|
||||
@ -6678,6 +6703,9 @@ proc add_options_for_sqrt_insn { flags } {
|
||||
if { [istarget amdgcn*-*-*] } {
|
||||
return "$flags -ffast-math"
|
||||
}
|
||||
if { [istarget arm*-*-*] } {
|
||||
return [add_options_for_arm_vfp "$flags"]
|
||||
}
|
||||
return $flags
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user