On Tue, Jul 30, 2024 at 1:07 PM Uros Bizjak <ubiz...@gmail.com> wrote:
>
> On Tue, Jul 30, 2024 at 12:18 PM Richard Biener <rguent...@suse.de> wrote:
> >
> > The following implements the hook, excluding x87 modes for scalar
> > and complex float modes.
> >
> > Bootstrapped and tested on x86_64-unknown-linux-gnu.
> >
> > OK?
> >
> > Thanks,
> > Richard.
> >
> >         * i386.cc (TARGET_MODE_CAN_TRANSFER_BITS): Define.
> >         (ix86_mode_can_transfer_bits): New function.
> > ---
> >  gcc/config/i386/i386.cc | 21 +++++++++++++++++++++
> >  1 file changed, 21 insertions(+)
> >
> > diff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc
> > index 12d15feb5e9..5184366916b 100644
> > --- a/gcc/config/i386/i386.cc
> > +++ b/gcc/config/i386/i386.cc
> > @@ -26113,6 +26113,24 @@ ix86_have_ccmp ()
> >    return (bool) TARGET_APX_CCMP;
> >  }
> >
> > +/* Implement TARGET_MODE_CAN_TRANSFER_BITS.  */
> > +static bool
> > +ix86_mode_can_transfer_bits (machine_mode mode)
> > +{
> > +  if (GET_MODE_CLASS (mode) == MODE_FLOAT
> > +      || GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT)
> > +    switch (GET_MODE_INNER (mode))
> > +      {
> > +      case SFmode:
> > +      case DFmode:
> > +       return TARGET_SSE_MATH && !TARGET_MIX_SSE_I387;
>
> This can be simplified to:
>
> return !(ix86_fpmath & FPMATH_387);
>
> (Which implies that we should introduce TARGET_I387_MATH to parallel
> TARGET_SSE_MATH some day...)
>
> > +      default:
> > +       return false;
>
> We don't want to enable HFmode for transfers?

Oh, and please add a small comment why we don't use XFmode here.

Uros.

Reply via email to