[gcc r13-1953] Do not enable -mblock-ops-vector-pair.

Michael Meissner meissner@gcc.gnu.org
Wed Aug 3 21:53:23 GMT 2022


https://gcc.gnu.org/g:1e4a8c782e5574ed5ee0ea24d869a118a441bf0a

commit r13-1953-g1e4a8c782e5574ed5ee0ea24d869a118a441bf0a
Author: Michael Meissner <meissner@linux.ibm.com>
Date:   Wed Aug 3 17:52:31 2022 -0400

    Do not enable -mblock-ops-vector-pair.
    
    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.

Diff:
---
 gcc/config/rs6000/rs6000.cc | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 4b727d2a500..df491bee2ea 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -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.  */


More information about the Gcc-cvs mailing list