On Fri, Oct 04, 2024 at 08:09:48AM -0600, Jeff Law wrote:
> 
> 
> On 10/4/24 7:46 AM, Georg-Johann Lay wrote:
> > This patch implements TARGET_FLOATN_MODE which maps
> > _Float32[x] to SFmode and _Float64[x] to DFmode.
> > 
> > There is currently no library support for extended float types,
> > but these settings are more reasonable for avr (and they make
> > more tests pass).
> > 
> > Ok for trunk?
> > 
> > Johann
> > 
> > -- 
> > 
> > AVR: Implement TARGET_FLOATN_MODE.
> > 
> > gcc/
> >      * config/avr/avr.cc (avr_floatn_mode): New static function.
> >      (TARGET_FLOATN_MODE): New define.
> OK

This is certainly incorrect.

As specified by e.g. ISO C23 H.2.3 Extended floating types, the requirement
on the extended floating types is:
"For each of its basic formats, IEC 60559 specifies an extended format whose 
maximum exponent and
precision exceed those of the basic format it is associated with. Extended 
formats are intended for
arithmetic with more precision and exponent range than is available in the 
basic formats used for
the input data."
So, while SFmode is a good mode to use for _Float32 and DFmode is a good
mode to use for _Float64, SFmode isn't a good mode to use for _Float32x and
neither is DFmode a good mode to use for _Float64x.
I'd expect you want DFmode for _Float32x and opt_scalar_float_mode () for
_Float64x.

        Jakub

Reply via email to