From: acsawdey Date: Thu, 29 Nov 2018 03:56:14 +0000 (+0000) Subject: 2018-11-28 Aaron Sawdey X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9bee8a420438b140e51e9c9edce80ee118ed4bf2;p=thirdparty%2Fgcc.git 2018-11-28 Aaron Sawdey * config/rs6000/rs6000-string.c (expand_block_clear): Change how we determine if unaligned vsx is ok. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266599 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6607cd7c7102..98f4f3fe3a85 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-11-28 Aaron Sawdey + + * config/rs6000/rs6000-string.c (expand_block_clear): Change how + we determine if unaligned vsx is ok. + 2018-11-28 Jan Hubicka * predict.c (determine_unlikely_bbs): Forward declare; also determine diff --git a/gcc/config/rs6000/rs6000-string.c b/gcc/config/rs6000/rs6000-string.c index 620be2b7325e..bc5bec2045e6 100644 --- a/gcc/config/rs6000/rs6000-string.c +++ b/gcc/config/rs6000/rs6000-string.c @@ -85,14 +85,15 @@ expand_block_clear (rtx operands[]) if (! optimize_size && bytes > 8 * clear_step) return 0; + bool unaligned_vsx_ok = (bytes >= 32 && TARGET_EFFICIENT_UNALIGNED_VSX); + for (offset = 0; bytes > 0; offset += clear_bytes, bytes -= clear_bytes) { machine_mode mode = BLKmode; rtx dest; if (TARGET_ALTIVEC - && ((bytes >= 16 && align >= 128) - || (bytes >= 32 && TARGET_EFFICIENT_UNALIGNED_VSX))) + && (bytes >= 16 && (align >= 128 || unaligned_vsx_ok))) { clear_bytes = 16; mode = V4SImode;