On 1/4/23 3:20 AM, Kewen.Lin via Gcc-patches wrote:
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 88c865b6b4b..6fa084c0807 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -4378,9 +4378,15 @@ rs6000_option_override_internal (bool global_init_p)
rs6000_isa_flags &= ~OPTION_MASK_MMA;
}
- if (TARGET_POWER10
- && (rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION) == 0)
- rs6000_isa_flags |= OPTION_MASK_P10_FUSION;
+ /* Enable power10 fusion if we are tuning for power10, even if we aren't
+ generating power10 instructions. */
+ if (!(rs6000_isa_flags_explicit & OPTION_MASK_P10_FUSION))
+ {
+ if (processor_target_table[tune_index].processor == PROCESSOR_POWER10)
You can use (rs6000_tune == PROCESSOR_POWER10) at this point.
-Pat
+ rs6000_isa_flags |= OPTION_MASK_P10_FUSION;
+ else
+ rs6000_isa_flags &= ~OPTION_MASK_P10_FUSION;
+ }