aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Meissner <meissner@linux.ibm.com>2022-06-11 00:40:16 -0400
committerMichael Meissner <meissner@linux.ibm.com>2022-06-11 00:40:16 -0400
commitfddb7f65129a12dabb5ddc3c8082fe576f4af451 (patch)
tree26dd0ddc7e3b78af4607d570e3cd56b72431ea57
parentef1e4d80dd30e7c46849fbb8b1ac49e672df1bbd (diff)
downloadgcc-fddb7f65129a12dabb5ddc3c8082fe576f4af451.zip
gcc-fddb7f65129a12dabb5ddc3c8082fe576f4af451.tar.gz
gcc-fddb7f65129a12dabb5ddc3c8082fe576f4af451.tar.bz2
Disable generating load/store vector pairs for block copies.
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.
-rw-r--r--gcc/config/rs6000/rs6000.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.cc b/gcc/config/rs6000/rs6000.cc
index 0af2085..59481d9 100644
--- a/gcc/config/rs6000/rs6000.cc
+++ b/gcc/config/rs6000/rs6000.cc
@@ -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;