On Tue, Jul 30, 2024 at 03:00:49PM +0200, Richard Biener wrote:

> > What mangling fld performs depends on the contents of the FP control
> > word which is awkward.

For float/double loads (FLDS and FLDL) we know format conversion changes
SNaNs to QNaNs, but it's a widening conversion, so e.g. rounding mode bits
have no effect (and precision control doesn't affect loads). For FLDT
there should be no mangling as far as I can tell.

On Tue, 30 Jul 2024, Jakub Jelinek wrote:

> > As Jakub said the padding is already dealt with in the caller
> > though I only added that there for convenience since padding is
> > problematic in general.
> > 
> > If you think XFmode is safe to transfer 10 bytes we could enable it,
> > I guess I'll amend the docs to be clear:

(I'm not proposing that, I think it's fine that the caller rejects that)

> > "Define this to return false if the mode @var{mode} cannot be used
> > for memory copying.  The default is to assume modes with the same
> > precision as size are fine to be used."
> > 
> > this might suggest transfering GET_MODE_PRECISION bits is intended
> > but it might want to say GET_MODE_SIZE units explicitly so the
> > default makes sense.
> 
> You could just gcc_unreachable (); for XFmode in the link with a short
> comment that the mode has padding.

I think this would be the right solution.

Alexander

Reply via email to