Re: rs6000 patch ping: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
On Wed, Mar 30, 2022 at 06:07:26PM -0500, Segher Boessenkool wrote: > On Tue, Mar 15, 2022 at 02:18:00PM +0100, Jakub Jelinek wrote: > > 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". > > > This patch fixes a P1 regression and from my (limited) understanding > > doesn't depend on any other patch in the series. > > It depends on 3/8 which was only partially applied (or not at all even?) > It is a mess :-( > > I'll look into it tomorrow. 3/8 wasn't applied at all. I did some surgery to apply this 8/8 though. Segher
Re: rs6000 patch ping: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
On Tue, Mar 15, 2022 at 02:18:00PM +0100, Jakub Jelinek wrote: > 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". > This patch fixes a P1 regression and from my (limited) understanding > doesn't depend on any other patch in the series. It depends on 3/8 which was only partially applied (or not at all even?) It is a mess :-( I'll look into it tomorrow. Segher
Re: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
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 > > 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>);
rs6000 patch ping^2: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
On Tue, Mar 15, 2022 at 02:18:00PM +0100, Jakub Jelinek via Gcc-patches wrote: > 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 > > > > 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)? I'd like to ping this again. > > 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 Jakub
rs6000 patch ping: [PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
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 > > 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
[PATCH 8/8] rs6000: Fix some missing built-in attributes [PR104004]
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 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>); -- 2.27.0