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