From: Aaron Sawdey Date: Thu, 10 Sep 2020 20:12:49 +0000 (-0500) Subject: [PATCH][PR96791] disable POImode ld/st for memcpy X-Git-Tag: upstream/12.2.0~13823 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=848e74bea1e8031925d3efe2d85b555a3cf8db38;p=platform%2Fupstream%2Fgcc.git [PATCH][PR96791] disable POImode ld/st for memcpy This is a (hopefully temporary) fix to PR96791. This will make the default be -mno-block-ops-vector-pair even on power10, so we will not hit the issue of DSE trying to truncate a POImode register. I am still concerned it will be possible to hit this because the MMA builtins will also generate POImode stores, but I think any example of that will be somewhat more contrived. gcc/ChangeLog: * config/rs6000/rs6000.c (rs6000_option_override_internal): Change default. --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index f6a3ff6..9908830 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4020,10 +4020,11 @@ 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) - rs6000_isa_flags |= OPTION_MASK_BLOCK_OPS_VECTOR_PAIR; - else - rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR; + /* When the POImode issues of PR96791 are resolved, then we can + once again enable use of vector pair for memcpy/memmove on + P10 if we have TARGET_MMA. For now we make it disabled by + default for all targets. */ + rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR; } /* Use long double size to select the appropriate long double. We use