https://gcc.gnu.org/g:5f06c0d10d9d37497f750ee6a84e3841574bc244

commit 5f06c0d10d9d37497f750ee6a84e3841574bc244
Author: Michael Meissner <[email protected]>
Date:   Sat Oct 31 01:03:37 2026 -0400

    Revert patches 411 and 412
    
    Revert the following patches.
    
    2026-10-29  Michael Meissner  <[email protected]>
    
            * config/rs6000/rs6000.cc (POWERPC_FLOAT16_DEFAULT): Set if the 
user did
            not configure a specific default.
            (POWERPC_FLOAT16_DISABLE_WARNING): Likewise.
            (POWERPC_FLOAT16_LIBGCC_GPR): Likewise.
            (rs6000_option_override_internal): Move defaults for 
POWERPC_FLOAT16* to
            the toplevel.
    
    2026-10-30  Michael Meissner  <[email protected]>
    
    gcc/testsuite/
    
            * lib/target-supports.exp (add_options_for_float16): Add -mfloat16
            -mno-float16-warn-call-return to tests for _Float16 and __bf16 
types.
            (add_options_for_bfloat16): Likewise.
            (check_effective_target_powerpc_float16): Likewise.

Diff:
---
 gcc/config/rs6000/rs6000.cc           | 38 ++++++++++-------------------------
 gcc/testsuite/lib/target-supports.exp | 24 ----------------------
 2 files changed, 11 insertions(+), 51 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 22e6f1752e50..86df6a874477 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -103,32 +103,6 @@ static tree rs6000_mangle_decl_assembler_name (tree, tree);
 #endif
 #endif
 
-/* Set up 16-bit floating point defaults if the user did not configure any
-   special options.  */
-
-/* Only enable float16 on 64-bit little endian Linux.  */
-#ifndef POWERPC_FLOAT16_DEFAULT
-#if (defined(DEFAULT_ARCH64_P)                                         \
-     && DEFAULT_ARCH64_P                                               \
-     && defined (POWERPC_LINUX)                                                
\
-     && (TARGET_DEFAULT & MASK_LITTLE_ENDIAN))
-
-#define POWERPC_FLOAT16_DEFAULT                        1
-#else
-#define POWERPC_FLOAT16_DEFAULT                        0
-#endif
-#endif
-
-/* Warn when 16-bit floating point is passed or returned.  */
-#ifndef POWERPC_FLOAT16_DISABLE_WARNING
-#define POWERPC_FLOAT16_DISABLE_WARNING                0
-#endif
-
-/* Use the _gpr variant of the libgcc 16-bit floating point support.  */
-#ifndef POWERPC_FLOAT16_LIBGCC_GPR
-#define POWERPC_FLOAT16_LIBGCC_GPR             1
-#endif
-
 /* Don't enable PC-relative addressing if the target does not support it.  */
 #ifndef PCREL_SUPPORTED_BY_OS
 #define PCREL_SUPPORTED_BY_OS  0
@@ -4108,9 +4082,11 @@ rs6000_option_override_internal (bool global_init_p)
      16-bit floating point.  */
   if ((rs6000_isa_flags_explicit & OPTION_MASK_FLOAT16) == 0)
     {
-      if (POWERPC_FLOAT16_DEFAULT && TARGET_FLOAT16_MIN_HARDWARE)
+#if POWERPC_FLOAT16_DEFAULT
+      if (TARGET_FLOAT16_MIN_HARDWARE)
        rs6000_isa_flags |= OPTION_MASK_FLOAT16;
       else
+#endif
        rs6000_isa_flags &= ~OPTION_MASK_FLOAT16;
     }
 
@@ -4129,11 +4105,19 @@ rs6000_option_override_internal (bool global_init_p)
 
   /* Enable/disable warnings given when 16-bit floating point values
      are passed as arguments or returned from functions.  */
+#ifndef POWERPC_FLOAT16_DISABLE_WARNING
+#define POWERPC_FLOAT16_DISABLE_WARNING                0
+#endif
+
   if (TARGET_FLOAT16_WARN_CALL_RETURN < 0)
     TARGET_FLOAT16_WARN_CALL_RETURN = (POWERPC_FLOAT16_DISABLE_WARNING == 0);
 
   /* Enable or disable whether float16 values are passed and returned
      in GPR registers when calling libgcc functions.  */
+#ifndef POWERPC_FLOAT16_LIBGCC_GPR
+#define POWERPC_FLOAT16_LIBGCC_GPR             1
+#endif
+
   if (TARGET_FLOAT16_LIBGCC_GPR < 0)
     TARGET_FLOAT16_LIBGCC_GPR = POWERPC_FLOAT16_LIBGCC_GPR;
 
diff --git a/gcc/testsuite/lib/target-supports.exp 
b/gcc/testsuite/lib/target-supports.exp
index b25fe7c99a36..a6ef7c28503e 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -4604,9 +4604,6 @@ proc add_options_for_float16 { flags } {
     if { [check_effective_target_x86] } {
        return "$flags -msse2 -mfpmath=sse"
     }
-    if { [check_effective_target_powerpc_float16] } {
-       return "$flags -mfloat16 -mno-float16-warn-call-return";
-    }
     return "$flags"
 }
 
@@ -4682,9 +4679,6 @@ proc add_options_for_bfloat16 { flags } {
     if { [check_effective_target_x86] } {
        return "$flags -msse2"
     }
-    if { [check_effective_target_powerpc_float16] } {
-       return "$flags -mfloat16 -mno-float16-warn-call-return";
-    }
     return "$flags"
 }
 
@@ -8562,24 +8556,6 @@ proc check_effective_target_ppc_float128_insns { } {
     }]
 }
 
-# Return 1 if this is a PowerPC target supporting -mfloat16
-
-proc check_effective_target_powerpc_float16 { } {
-    if { [istarget powerpc*-*-*]
-        || [istarget rs6000-*-*] } {
-       return [check_no_compiler_messages powerpc_float16_ok object {
-           _Float16 a, b, c;
-           int main (void) {
-               a = b + c;
-               return 0;
-           }
-       } "-mfloat16 -mno-float16-warn-call-return"]
-    } else {
-       return 0
-    }
-}
-
-
 # Return 1 if current options generate VSX instructions, 0 otherwise.
 
 proc check_effective_target_powerpc_vsx { } {

Reply via email to