ping?
On Fri, 30 Apr 2021 at 16:22, Christophe Lyon <christophe.l...@linaro.org> wrote: > > ping? > > On Wed, 21 Apr 2021 at 22:48, Christophe Lyon > <christophe.l...@linaro.org> wrote: > > > > The acle/saturation.c test uses __[su]sat() and > > __saturation_occurred() intrinsics but __[su]sat() are defined in > > acle.h if __ARM_FEATURE_SAT true, while __saturation_occurred() > > depends on __ARM_FEATURE_QBIT. > > > > QBIT is a v5te feature, while SAT is available since v6, so the test > > really needs __ARM_FEATURE_SAT, to have both available. > > > > This patch renames arm_qbit_ok into arm_sat_ok and checks > > __ARM_FEATURE_SAT. It updates acle/saturation.c accordingly. > > > > This enables the test to pass on arm-eabi with default cpu/fpu/mode, > > where arm_qbit previously used -march=armv5te instead of armv6 now. > > > > 2021-04-22 Christophe Lyon <christophe.l...@linaro.org> > > > > gcc/ > > * doc/sourcebuild.texi (arm_qbit_ok): Rename into... > > (arm_sat_ok): ...this. > > > > gcc/testsuite/ > > * gcc.target/arm/acle/saturation.c: Use arm_sat_ok effective > > target. > > * lib/target-supports.exp > > (check_effective_target_arm_qbit_ok_nocache): Rename into... > > (check_effective_target_arm_sat_ok_nocache): ... this. Check > > __ARM_FEATURE_SAT and use armv6. > > --- > > gcc/doc/sourcebuild.texi | 6 ++-- > > gcc/testsuite/gcc.target/arm/acle/saturation.c | 4 +-- > > gcc/testsuite/lib/target-supports.exp | 42 > > +++++++++++++------------- > > 3 files changed, 26 insertions(+), 26 deletions(-) > > > > diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi > > index b5bdd4f..4d9ec3c 100644 > > --- a/gcc/doc/sourcebuild.texi > > +++ b/gcc/doc/sourcebuild.texi > > @@ -2041,9 +2041,9 @@ ARM Target supports options suitable for accessing > > the SIMD32 intrinsics from > > @code{arm_acle.h}. > > Some multilibs may be incompatible with these options. > > > > -@item arm_qbit_ok > > -@anchor{arm_qbit_ok} > > -ARM Target supports options suitable for accessing the Q-bit manipulation > > +@item arm_sat_ok > > +@anchor{arm_sat_ok} > > +ARM Target supports options suitable for accessing the saturation > > intrinsics from @code{arm_acle.h}. > > Some multilibs may be incompatible with these options. > > > > diff --git a/gcc/testsuite/gcc.target/arm/acle/saturation.c > > b/gcc/testsuite/gcc.target/arm/acle/saturation.c > > index 0b3fe51..a9f99e5 100644 > > --- a/gcc/testsuite/gcc.target/arm/acle/saturation.c > > +++ b/gcc/testsuite/gcc.target/arm/acle/saturation.c > > @@ -1,6 +1,6 @@ > > /* { dg-do compile } */ > > -/* { dg-require-effective-target arm_qbit_ok } */ > > -/* { dg-add-options arm_qbit } */ > > +/* { dg-require-effective-target arm_sat_ok } */ > > +/* { dg-add-options arm_sat } */ > > > > #include <arm_acle.h> > > > > diff --git a/gcc/testsuite/lib/target-supports.exp > > b/gcc/testsuite/lib/target-supports.exp > > index a522da3..5fab170 100644 > > --- a/gcc/testsuite/lib/target-supports.exp > > +++ b/gcc/testsuite/lib/target-supports.exp > > @@ -4168,24 +4168,24 @@ proc add_options_for_arm_simd32 { flags } { > > return "$flags $et_arm_simd32_flags" > > } > > > > -# Return 1 if this is an ARM target supporting the saturation intrinsics > > -# from arm_acle.h. Some multilibs may be incompatible with these options. > > -# Also set et_arm_qbit_flags to the best options to add. > > -# arm_acle.h includes stdint.h which can cause trouble with incompatible > > -# -mfloat-abi= options. > > - > > -proc check_effective_target_arm_qbit_ok_nocache { } { > > - global et_arm_qbit_flags > > - set et_arm_qbit_flags "" > > - foreach flags {"" "-march=armv5te" "-march=armv5te -mfloat-abi=softfp" > > "-march=armv5te -mfloat-abi=hard"} { > > - if { [check_no_compiler_messages_nocache et_arm_qbit_flags object { > > +# Return 1 if this is an ARM target supporting the __ssat and __usat > > +# saturation intrinsics from arm_acle.h. Some multilibs may be > > +# incompatible with these options. Also set et_arm_sat_flags to the > > +# best options to add. arm_acle.h includes stdint.h which can cause > > +# trouble with incompatible -mfloat-abi= options. > > + > > +proc check_effective_target_arm_sat_ok_nocache { } { > > + global et_arm_sat_flags > > + set et_arm_sat_flags "" > > + foreach flags {"" "-march=armv6" "-march=armv6 -mfloat-abi=softfp" > > "-march=armv6 -mfloat-abi=hard -mfpu=vfp"} { > > + if { [check_no_compiler_messages_nocache et_arm_sat_flags object { > > #include <arm_acle.h> > > int dummy; > > - #ifndef __ARM_FEATURE_QBIT > > - #error not QBIT > > + #ifndef __ARM_FEATURE_SAT > > + #error not SAT > > #endif > > } "$flags"] } { > > - set et_arm_qbit_flags $flags > > + set et_arm_sat_flags $flags > > return 1 > > } > > } > > @@ -4193,17 +4193,17 @@ proc check_effective_target_arm_qbit_ok_nocache { } > > { > > return 0 > > } > > > > -proc check_effective_target_arm_qbit_ok { } { > > - return [check_cached_effective_target et_arm_qbit_flags \ > > - check_effective_target_arm_qbit_ok_nocache] > > +proc check_effective_target_arm_sat_ok { } { > > + return [check_cached_effective_target et_arm_sat_flags \ > > + check_effective_target_arm_sat_ok_nocache] > > } > > > > -proc add_options_for_arm_qbit { flags } { > > - if { ! [check_effective_target_arm_qbit_ok] } { > > +proc add_options_for_arm_sat { flags } { > > + if { ! [check_effective_target_arm_sat_ok] } { > > return "$flags" > > } > > - global et_arm_qbit_flags > > - return "$flags $et_arm_qbit_flags" > > + global et_arm_sat_flags > > + return "$flags $et_arm_sat_flags" > > } > > > > # Return 1 if this is an ARM target supporting the DSP intrinsics from > > -- > > 2.7.4 > >