]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Disable generating load/store vector pairs for block copies.
authorMichael Meissner <meissner@linux.ibm.com>
Sat, 11 Jun 2022 04:40:16 +0000 (00:40 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Sat, 11 Jun 2022 04:40:16 +0000 (00:40 -0400)
Testing has found that using load and store vector pair for block copies
can result in a slow down on power10.  This patch disables using the
vector pair instructions for block copies if we are tuning for power10.

2022-06-11   Michael Meissner  <meissner@linux.ibm.com>

gcc/
* config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
not generate block copies with vector pair instructions if we are
tuning for power10.

gcc/config/rs6000/rs6000.cc

index 0af2085adc0e486fd5bab6fd36358dccc9a94260..59481d9ac7082fe664e0e8b7773288756747b2df 100644 (file)
@@ -4141,7 +4141,10 @@ rs6000_option_override_internal (bool global_init_p)
 
   if (!(rs6000_isa_flags_explicit & OPTION_MASK_BLOCK_OPS_VECTOR_PAIR))
     {
-      if (TARGET_MMA && TARGET_EFFICIENT_UNALIGNED_VSX)
+      /* Do not generate lxvp and stxvp on power10 since there are some
+        performance issues.  */
+      if (TARGET_MMA && TARGET_EFFICIENT_UNALIGNED_VSX
+         && rs6000_tune != PROCESSOR_POWER10)
        rs6000_isa_flags |= OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
       else
        rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;