On Fri, 2022-01-28 at 11:50 -0600, Bill Schmidt via Gcc-patches wrote:
> PR104004 caught some misses on my part in converting to the new
> built-in
> function infrastructure.  In particular, I forgot to mark all of the
> "nosoft"
> built-ins, and one of those should also have been marked "no32bit".
> 
> Bootstrapped and tested on powerpc64le-linux-gnu with no regressions.
> Is this okay for trunk?
> 
> Thanks,
> Bill
> 
Hi,

The patch here seems reasonable to me. 
There are comments/subsequent pings that include commentary about
additional test coverage.

I see all of the builtins referenced here appear to be touched by
the existing test  gcc.target/powerpc/test_fpscr_drn_builtin.c .
I could create a variation of that test forcing ! hard_dfp in case that
would help, though i'm uncertain the value there. 

Thanks
-Will

> 
> 2022-01-27  Bill Schmidt  <wschm...@linux.ibm.com>
> 
> gcc/
>       * config/rs6000/rs6000-builtin.def (MFFSL): Mark nosoft.
>       (MTFSB0): Likewise.
>       (MTFSB1): Likewise.
>       (SET_FPSCR_RN): Likewise.
>       (SET_FPSCR_DRN): Mark nosoft and no32bit.
> ---
>  gcc/config/rs6000/rs6000-builtins.def | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/gcc/config/rs6000/rs6000-builtins.def
> b/gcc/config/rs6000/rs6000-builtins.def
> index c8f0cf332eb..98619a649e3 100644
> --- a/gcc/config/rs6000/rs6000-builtins.def
> +++ b/gcc/config/rs6000/rs6000-builtins.def
> @@ -215,7 +215,7 @@
>  ; processors, this builtin automatically falls back to mffs on older
>  ; platforms.  Thus it appears here in the [always] stanza.
>    double __builtin_mffsl ();
> -    MFFSL rs6000_mffsl {}
> +    MFFSL rs6000_mffsl {nosoft}
> 
>  ; This is redundant with __builtin_pack_ibm128, as it requires long
>  ; double to be __ibm128.  Should probably be deprecated.
> @@ -226,10 +226,10 @@
>      MFTB rs6000_mftb_di {32bit}
> 
>    void __builtin_mtfsb0 (const int<0,31>);
> -    MTFSB0 rs6000_mtfsb0 {}
> +    MTFSB0 rs6000_mtfsb0 {nosoft}
> 
>    void __builtin_mtfsb1 (const int<0,31>);
> -    MTFSB1 rs6000_mtfsb1 {}
> +    MTFSB1 rs6000_mtfsb1 {nosoft}
> 
>    void __builtin_mtfsf (const int<0,255>, double);
>      MTFSF rs6000_mtfsf {}
> @@ -238,7 +238,7 @@
>      PACK_IF packif {}
> 
>    void __builtin_set_fpscr_rn (const int[0,3]);
> -    SET_FPSCR_RN rs6000_set_fpscr_rn {}
> +    SET_FPSCR_RN rs6000_set_fpscr_rn {nosoft}
> 
>    const double __builtin_unpack_ibm128 (__ibm128, const int<0,1>);
>      UNPACK_IF unpackif {}
> @@ -2969,7 +2969,7 @@
>      PACK_TD packtd {}
> 
>    void __builtin_set_fpscr_drn (const int[0,7]);
> -    SET_FPSCR_DRN rs6000_set_fpscr_drn {}
> +    SET_FPSCR_DRN rs6000_set_fpscr_drn {nosoft,no32bit}
> 
>    const unsigned long long __builtin_unpack_dec128 (_Decimal128, \
>                                                      const int<0,1>);

Reply via email to