rs6000 patch ping: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]

Jakub Jelinek jakub@redhat.com
Tue Mar 15 13:18:00 GMT 2022


On Fri, Jan 28, 2022 at 11:50:26AM -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
> 
> 
> 2022-01-27  Bill Schmidt  <wschmidt@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.

This patch fixes a P1 regression and from my (limited) understanding
doesn't depend on any other patch in the series.

Is this ok for trunk (I agree some testcase coverage would be nice)?

> 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>);
> -- 
> 2.27.0

	Jakub



More information about the Gcc-patches mailing list