]> gcc.gnu.org Git - gcc.git/commitdiff
Do not enable -mblock-ops-vector-pair.
authorMichael Meissner <meissner@linux.ibm.com>
Wed, 3 Aug 2022 21:52:31 +0000 (17:52 -0400)
committerMichael Meissner <meissner@linux.ibm.com>
Wed, 3 Aug 2022 21:52:31 +0000 (17:52 -0400)
Testing has shown that using the load vector pair and store vector pair
instructions for block moves has some performance issues on power10.

A patch on June 11th modified the code so that GCC would not set
-mblock-ops-vector-pair by default if we are tuning for power10, but it would
set the option if we were tuning for a different machine and have load and store
vector pair instructions enabled.

This patch eliminates the code setting -mblock-ops-vector-pair.  If you want to
generate load vector pair and store vector pair instructions for block moves,
you must use -mblock-ops-vector-pair.

2022-08-03   Michael Meissner  <meissner@linux.ibm.com>

gcc/

* config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
setting -mblock-ops-vector-pair.

gcc/config/rs6000/rs6000.cc

index 4b727d2a500a74d120ea22dd2867441e6e7065ba..df491bee2ea7bc42896e54803ce7503ece5d74a8 100644 (file)
@@ -4094,17 +4094,6 @@ rs6000_option_override_internal (bool global_init_p)
        rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_UNALIGNED_VSX;
     }
 
-  if (!(rs6000_isa_flags_explicit & OPTION_MASK_BLOCK_OPS_VECTOR_PAIR))
-    {
-      /* 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;
-    }
-
   /* Use long double size to select the appropriate long double.  We use
      TYPE_PRECISION to differentiate the 3 different long double types.  We map
      128 into the precision used for TFmode.  */
This page took 0.083637 seconds and 5 git commands to generate.