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 <[email protected]>
>
> 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