https://gcc.gnu.org/g:08732a265833d82dfcbc679a73c04cf14875e2ad

commit 08732a265833d82dfcbc679a73c04cf14875e2ad
Author: Michael Meissner <[email protected]>
Date:   Thu Oct 22 04:08:57 2026 -0400

    Update ChangeLog.*

Diff:
---
 gcc/ChangeLog.float | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gcc/ChangeLog.float b/gcc/ChangeLog.float
index 85f3acff34a4..68c6743fa286 100644
--- a/gcc/ChangeLog.float
+++ b/gcc/ChangeLog.float
@@ -1,3 +1,64 @@
+==================== Branch work269-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.
+
+This patch adds support in libgcc to build the normal conversion functions and 
a
+modified conversion that has a _gpr suffix, and are the functions called when
+-mfloat16-gpr-convert is one.
+
+This patch also does conversions between TFmode, KFmode, IFmode and BFmode or
+HFmode even if we do not have hardware support for BFmode or HFmode.
+
+2026-10-22  Michael Meissner  <[email protected]>
+
+gcc/
+
+       * config/rs6000/float16.md
+       (extend<FP16_HW:mode><FP16_FLOAT_CONVERT:mode>2): Allow insn even if we
+       do not have hardware support.
+       (trunc<FP16_FLOAT_CONVERT:mode><FP16_HW:mode>2): Likewise.
+       * 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 the function name if it exists and if the
+       function is a library function when -mdebug=ag is used.
+       * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Print 16-bit
+       floating point information if -mdebug=reg.
+       (init_float16): New function.  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/convert-16bit-fp-extend: New file.
+       * config/rs6000/convert-16bit-fp-fix: Likewise.
+       * config/rs6000/convert-16bit-fp-float: Likewise.
+       * config/rs6000/convert-16bit-fp-trunc: Likewise.
+       * config/rs6000/ppc-eqbf2.c: Likewise.
+       * config/rs6000/ppc-eqhf2.c: Likewise.
+       * config/rs6000/ppc-fixbfbitint.c: Likewise.
+       * config/rs6000/ppc-fixhfbitint.c: Likewise.
+       * config/rs6000/ppc-floatbitintbf.c: Likewise.
+       * config/rs6000/ppc-floatbitinthf.c: Likewise.
+       * config/rs6000/ppc-truncbfhf2.c: Likewise.
+       * config/rs6000/ppc-trunchfbf2.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.
+
+
 ==================== Branch work269-float, patch #210 ====================
 
 Add _Float16 and __bf16 tests.

Reply via email to