https://gcc.gnu.org/g:10ad8c5ff72a79baac49b26eeb7d1b4d4dfbd789

commit 10ad8c5ff72a79baac49b26eeb7d1b4d4dfbd789
Author: Michael Meissner <[email protected]>
Date:   Tue Oct 27 13:00:32 2026 -0400

    Print fp debug information
    
    2026-10-27  Michael Meissner  <[email protected]>
    
    gcc/
    
            * config/rs6000/rs6000.cc (rs6000_debug_fp_mode): New function.
            (rs6000_debug_reg_global): Print debug information about floating 
point
            modes.

Diff:
---
 gcc/config/rs6000/rs6000.cc | 54 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index e708d6334f4d..184026f1bee1 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -2256,6 +2256,20 @@ rs6000_debug_print_mode (ssize_t m)
 #define DEBUG_FMT_WX  DEBUG_FMT_ID "%#.12" HOST_WIDE_INT_PRINT "x: "
 #define DEBUG_FMT_S   DEBUG_FMT_ID "%s\n"
 
+/* Print interesting floating point information.  */
+static void
+rs6000_debug_fp_mode (machine_mode m)
+{
+  fprintf (stderr,
+          DEBUG_FMT_ID "nan: %c, snan: %c, inf: %c, -0: %c, size: %2d\n",
+          GET_MODE_NAME (m),
+          HONOR_NANS (m)         ? 'y' : 'n',
+          HONOR_SNANS (m)        ? 'y' : 'n',
+          HONOR_INFINITIES (m)   ? 'y' : 'n',
+          HONOR_SIGNED_ZEROS (m) ? 'y' : 'n',
+          (int) GET_MODE_SIZE (m));
+}
+
 /* Print various interesting information with -mdebug=reg.  */
 static void
 rs6000_debug_reg_global (void)
@@ -2663,6 +2677,46 @@ rs6000_debug_reg_global (void)
       fprintf (stderr, DEBUG_FMT_S, "_Float16", "disabled");
       fprintf (stderr, DEBUG_FMT_S, "__bf16", "disabled");
     }
+
+  if (TARGET_HARD_FLOAT)
+    {
+      rs6000_debug_fp_mode (SFmode);
+      rs6000_debug_fp_mode (DFmode);
+
+      if (rs6000_long_double_type_size == 128)
+       rs6000_debug_fp_mode (TFmode);
+
+      if (TARGET_FLOAT128_TYPE)
+       {
+         rs6000_debug_fp_mode (KFmode);
+         rs6000_debug_fp_mode (IFmode);
+       }
+
+      if (TARGET_DFP)
+       {
+         rs6000_debug_fp_mode (SDmode);
+         rs6000_debug_fp_mode (DDmode);
+         rs6000_debug_fp_mode (TDmode);
+       }
+
+      if (TARGET_FLOAT16)
+       {
+         rs6000_debug_fp_mode (BFmode);
+         rs6000_debug_fp_mode (HFmode);
+       }
+
+      if (TARGET_VSX)
+       {
+         rs6000_debug_fp_mode (V4SFmode);
+         rs6000_debug_fp_mode (V2DFmode);
+
+         if (TARGET_FLOAT16)
+           {
+             rs6000_debug_fp_mode (V8BFmode);
+             rs6000_debug_fp_mode (V8HFmode);
+           }
+       }
+    }
 }

Reply via email to