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 { } {
