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
>

Reply via email to