Returning a REGMODE_NATURAL_SIZE of 4 for DFmode in 64-bit mode is asking for trouble because sub-word SUBREGs are always treated differently than the others, in particular by the register allocator. Bootstrapped/regtested on SPARC64/Linux and SPARC/Solaris, applied on the mainline. 2021-03-10 Eric Botcazou * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for float and vector integer modes only if the mode is not larger. -- Eric Botcazou