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 <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.
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