https://gcc.gnu.org/g:27df533c52ac1d72dce22c405ef17fe0b5ea4e79
commit 27df533c52ac1d72dce22c405ef17fe0b5ea4e79 Author: Michael Meissner <[email protected]> Date: Thu Oct 1 21:10:44 2026 -0400 Update ChangeLog.* Diff: --- gcc/ChangeLog.float | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/gcc/ChangeLog.float b/gcc/ChangeLog.float index 311dfcea8783..96e303bfa681 100644 --- a/gcc/ChangeLog.float +++ b/gcc/ChangeLog.float @@ -1,3 +1,75 @@ +==================== Branch work266-float, patch #211 ==================== + +Pass and return 16-bit fp library values in GPRs + +This patch changes all of the 16-bit floating point library functions to pass +and return 16-bit floating point values as unsigned short. The intention is to +prepare for modifying the calling sequence so that the values are converted to +32/64-bit scalar floating point. However, we can't call the library functions +which are used to do the conversion if we have to convert the argument on a +machine that does not have native conversion instructions. + +2026-09-30 Michael Meissner <[email protected]> + +gcc/ + + * config/rs6000/rs6000-call.cc (FP16_USE_GPR): New macro. + (USE_FP_FOR_ARG_P) Add support for 16-bit fp library functions passing + 16-bit fp in GPR registers. + (init_cumulative_args): Print name and if it is a library function if + -mdebug=ag. + * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Print 16-bit + floating point information if -mdebug=reg. + (init_float16): Mark all of the 16-bit floating point library functions + as passing/returning 16-bit floating point values in GPR registers and + change the name to have a '_gpr' suffix. + (rs6000_init_libfuncs): Likewise. + (rs6000_opt_vars): Add -mfloat16-gpr-convert switch. + * config/rs6000/rs6000.opt (-mfloat16-gpr-convert): New switch. + +libgcc/ + + * config/rs6000/extendbf-sfdf2.c: New file. + * config/rs6000/extendhf-sfdf2.c: Likewise. + * config/rs6000/ppc-eqbf2.c: Likewise. + * config/rs6000/ppc-eqhf2.c: Likewise. + * config/rs6000/ppc-fixbfbitint.c: Likewise. + * config/rs6000/ppc-fixbfdi.c: Likewise. + * config/rs6000/ppc-fixbfdi.c: Likewise. + * config/rs6000/ppc-fixbfdi.c: Likewise. + * config/rs6000/ppc-fixhfbitint.c: Likewise. + * config/rs6000/ppc-fixhfdi.c: Likewise. + * config/rs6000/ppc-fixhfsi.c: Likewise. + * config/rs6000/ppc-fixhfti.c: Likewise. + * config/rs6000/ppc-fixunsbfdi.c: Likewise. + * config/rs6000/ppc-fixunsbfsi.c: Likewise. + * config/rs6000/ppc-fixunsbfti.c: Likewise. + * config/rs6000/ppc-fixunshfdi.c: Likewise. + * config/rs6000/ppc-fixunshfsi.c: Likewise. + * config/rs6000/ppc-fixunshfti.c: Likewise. + * config/rs6000/ppc-floatbitintbf.c: Likewise. + * config/rs6000/ppc-floatbitinthf.c: Likewise. + * config/rs6000/ppc-floatdibf.c: Likewise. + * config/rs6000/ppc-floatdihf.c: Likewise. + * config/rs6000/ppc-floatsibf.c: Likewise. + * config/rs6000/ppc-floatsihf.c: Likewise. + * config/rs6000/ppc-floattibf.c: Likewise. + * config/rs6000/ppc-floattihf.c: Likewise. + * config/rs6000/ppc-floatundibf.c: Likewise. + * config/rs6000/ppc-floatundihf.c: Likewise. + * config/rs6000/ppc-floatunsibf.c: Likewise. + * config/rs6000/ppc-floatunsihf.c: Likewise. + * config/rs6000/ppc-floatuntibf.c: Likewise. + * config/rs6000/ppc-floatuntihf.c: Likewise. + * config/rs6000/ppc-truncbfhf2.c: Likewise. + * config/rs6000/sfp-machine.h: Add declarations for declaring the *_gpr + library functions. + * config/rs6000/t-float16: Build all of the new 16-bit floating point + conversion functions that pass and return 16-bit floating point in GPR + registers. + * config/rs6000/truncsfdf-bf2.c: New file. + * config/rs6000/truncsfdf-hf2.c: Likewise. + ==================== Branch work266-float, patch #210 ==================== Add conversions between 128-bit integers and 16-bit floating point
