]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com>
authoracsawdey <acsawdey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Nov 2018 03:56:14 +0000 (03:56 +0000)
committeracsawdey <acsawdey@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 29 Nov 2018 03:56:14 +0000 (03:56 +0000)
* 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

gcc/ChangeLog
gcc/config/rs6000/rs6000-string.c

index 6607cd7c7102021c6121b0f9d2eab0b2178a8dfd..98f4f3fe3a8599f8f66bb0d539d8b85b923ef85d 100644 (file)
@@ -1,3 +1,8 @@
+2018-11-28  Aaron Sawdey  <acsawdey@linux.ibm.com>
+
+       * config/rs6000/rs6000-string.c (expand_block_clear): Change how
+       we determine if unaligned vsx is ok.
+
 2018-11-28  Jan Hubicka  <jh@suse.cz>
 
        * predict.c (determine_unlikely_bbs): Forward declare; also determine
index 620be2b7325e9dfc507b47d1aca900a6287877e9..bc5bec2045e639c3069a481f8de8dfee159c3a82 100644 (file)
@@ -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;